仓酷云
标题:
带来一篇对Android平台Linux部分的开端了解
[打印本页]
作者:
逍遥一派
时间:
2015-1-16 13:58
标题:
带来一篇对Android平台Linux部分的开端了解
学习python,无论你是打算拿他当主要开发语言,还是当辅助开发语言,你都应该学习他,因为有些时间我们耗不起。
Android是基于Linux内核的,关于喜好研讨底层的伴侣来讲,天然不会放过弄分明Linux层面上一些器材的时机。固然,终极目标仍是要弄分明Linux是怎样和下层lib和假造机分离的,可是这得等Google完整开源Android以后了。良多关于Linux运转的细节,都能够经由过程adb的shell来看到。
起首用emulatorconsole来启动摹拟器并进进shell界面,试一试,发明固然良多命令不克不及用,好比find,可是ls之类的基础操纵仍是能够的。然后echo$PATH察看一下有哪些详细的可用使用程序,发明可用的都会合在/sbin,/system/sbin,/system/bin中。
看看/sbin
-rwxr-xr-xrootroot2287761970-01-0100:00recovery
-rwxr-xr-xrootroot1028321970-01-0100:00adbd
adbd不必说,应当是保卫程序,用于和你内部的adb通讯的,这点从前面对历程的检察也能推想出来。至于recovery,应当是某种修复程序,可是今朝还不克不及断定其详细用法。并且这个目次下的程序,应当都是体系本身依据立即情形挪用的,不会让用户亲身挪用。
再往/system目次下,发明没有sbin目次,有bin目次,底下有良多使用程序,除toolbox供应的经常使用Linux命令路程序外,就是Google本人的用于Android开辟的程序。总的来讲,Android自带的toolbox仍是对照大略的,假如你不喜好这类操纵起来束手束脚的感到,不妨,经由过程adbpush的共同,我们能够把busybox安装到Android平台上,这是后话,这里先不谈这个。
持续,用ps看看历程:
root10252164c00822400000ab0cS/init
root2000c0048eac00000000Skthreadd
root3200c003acf000000000Sksoftirqd/0
root4200c0045e5c00000000Sevents/0
root5200c0045e5c00000000Skhelper
root8200c0045e5c00000000Ssuspend/0
root33200c0045e5c00000000Skblockd/0
root36200c0045e5c00000000Scqueue/0
root38200c0150c4400000000Skseriod
root74200c005bed000000000Spdflush
root75200c005bed000000000Spdflush
root76200c005f88000000000Skswapd0
root77200c0045e5c00000000Saio/0
root199200c014e2f400000000Smtdblockd
root215200c0045e5c00000000Skmmcd
root229200c0045e5c00000000Srpciod/0
root44614416216ffffffff0000ceb4S/sbin/adbd
root44712816284ffffffffafe08b9cS/system/bin/usbd
root4481636212c017c114afe08e9cS/system/bin/debuggerd
root449112576580ffffffffafe08b9cS/system/bin/rild
root45015657614776c01dc388afe083dcSzygote
root4511185282064ffffffffafe0861cS/system/bin/runtime
bluetooth45211200756c0082240afe0947cS/system/bin/dbus-daemon
root46145010779219320ffffffffafe0861cSsystem_server
app_45024507429214436ffffffffafe09604Scom.google.android.home
phone5034507483215044ffffffffafe09604Scom.google.android.phone
app_05314507462014400ffffffffafe09604Scom.google.process.content
app_56084507378011760ffffffffafe09604Slk.test
app_76624508201213124ffffffffafe09604Scom.google.android.lunarlander
app_08094507420415780ffffffffafe09604Scom.google.android.maps
app_68284507684414600ffffffffafe09604Scom.google.android.samples
system8734507646413028ffffffffafe09604Scom.google.android.development
root971446720292c00386a4afe092acS/system/bin/sh
root273697192830800000000afe083dcRps
一样,有各类线程,体系本人挪用的程序,和用户本人的程序历程,好比lk.test和com.google.android.lunarlander是我在工程中运转的,com.google.android.maps,com.google.android.phone这类就是Android摹拟器运转时你瞥见的那些程序。成心思的是,从历程中有/system/bin/usbd来看,仿佛客户真个调试都是经由过程USB的,固然不是如今拉,如今你只是在用摹拟器罢了。恩,今后真正配套硬件出来了,USB调试器会很贵么?嘿嘿。
最初看看文件体系,mount一下:
rootfs/rootfsrw00
/dev/pts/dev/ptsdevptsrw00
/proc/procprocrw00
/sys/syssysfsrw00
/dev/block/mtdblock0/systemyaffs2rw,nodev,noatime,nodiratime00
/dev/block/mtdblock1/datayaffs2rw,nodev,noatime,nodiratime00
没甚么有新意的,和台式机对照一下,一个就是没有假造内存文件体系,根文件体系间接就是摹拟器从SDK安装目次下的/tools/lib/images/ramdisk.img加载的。而体系所用的是yaffs2文件体系,system和data分离都是64MB年夜,并且都用了快要一半了。详细体系的映像是SDK安装目次下的tools/lib/image/system.img。
从下面的剖析看,这个Linux仍是对照一般的。另有一个成心思的话题,就是今朝安装软件,大概说是Package的体例在developergroup上遭到很多人的斥责,次要是Google今朝对Android的程序安装没有尺度的Install程序,也没有一个堆栈申明,如今一些小程序,能够经由过程剖析Android的文件变更失掉大抵的安装体例,可是今后有甚么年夜型工程的话,最好仍是定一个对照尺度的安装体例划定规矩,不克不及老依附Eclipse来帮我们弄吧,呵呵。
经由过程上面的步骤,能够大抵剖析出今朝的安装形式
安装软件前:
1.emulator-wipe-data
2.adbpushbusybox./
3.adbshell./busyboxtar-cf/tmp/data.tar/data
4.adbpull/tmp/data.tar.
5.mkdiroriginal
6.cdoriginal
7.tar-xf../data.tar
安装软件后:
1.adbshell./busyboxtar-cf/tmp/data.tar/data
2.adbpull/tmp/data.tar.
3.mkdirafter_install
4.cdafter_install
5.tar-xf../data.tar
详细的区分,今朝来看,就是/data/app和data/data下多了两个相干文件,同时在/data/system/packages.xml中增添了安装的程序信息。仿佛菜单也是从这个文件中失掉是不是新安装程序,和怎样显现相干信息好比称号甚么的
</p>
当你经过一段时间的学习后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令。
作者:
小魔女
时间:
2015-1-18 11:34
首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。
作者:
若天明
时间:
2015-1-25 15:23
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
作者:
蒙在股里
时间:
2015-2-2 23:33
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
作者:
仓酷云
时间:
2015-2-8 19:38
我想即使Linux高手也很难快速准确精练的回答你。
作者:
灵魂腐蚀
时间:
2015-2-26 00:14
如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。
作者:
不帅
时间:
2015-3-8 10:57
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
作者:
金色的骷髅
时间:
2015-3-15 22:24
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
欢迎光临 仓酷云 (http://ckuyun.com/)
Powered by Discuz! X3.2