仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 470|回复: 7
打印 上一主题 下一主题

[其他Linux] 带来一篇对Android平台Linux部分的开端了解

[复制链接]
逍遥一派 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 13:58:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学习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:39 | 只看该作者
首先Linux是开源的,这也是最主要的原因,想学windows,Unix,对不起我们没源代码。也正是因为这样,Linux才能够像滚雪球一样越滚越大,发展到现在这种规模。
若天明 该用户已被删除
板凳
发表于 2015-1-25 15:23:47 | 只看该作者
Linux的成功就在于用最少的资源最短的时间实现了所有功能,这也是符合人类进化的,相信以后节能问题会日益突出。
蒙在股里 该用户已被删除
地板
发表于 2015-2-2 23:33:12 | 只看该作者
任何人都可以根据自己的喜好来定制适合自己的操作系统,Linux?是抢占式多任务多用户操作系统.
5#
发表于 2015-2-8 19:38:38 | 只看该作者
我想即使Linux高手也很难快速准确精练的回答你。
灵魂腐蚀 该用户已被删除
6#
发表于 2015-2-26 00:14:29 | 只看该作者
如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。
不帅 该用户已被删除
7#
发表于 2015-3-8 10:57:43 | 只看该作者
尽量不要提问纯属是扯蛋.学习Linux特别是自己一个人初学入手的时候没人教很困难.当然如果可以的话平时多去买些Linux书...对学习Linux很有帮助.
金色的骷髅 该用户已被删除
8#
发表于 2015-3-15 22:24:32 | 只看该作者
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 04:31

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表