对Android平台Linux部分的初步理解
f afe09604 S com.google.android.development
root 971 446 720 292 c00386a4 afe092ac S /system/bin/sh root 2736 971 928 308 00000000 afe083dc R ps
同样,有各种线程,系统自己调用的程序,以及用户自己的程序进程,比如lk.test和 com.google.android.lunarlander是我在工程中运行的,com.google.android.maps,com.google.android.phone这种就是Android模拟器运行时你看见的那些程序.有意思的是,从进程中有/system/bin/usbd来看,似乎客户端的调试都是通过USB的,当然不是现在拉,现在你只是在用模拟器而已.恩,以后真正配套硬件出来了,USB调试器会很贵么?嘿嘿. 看看文件系统,mount一下: rootfs / rootfs rw 0 0 /dev/pts /dev/pts devpts rw 0 0 /proc /proc proc rw 0 0 /sys /sys sysfs rw 0 0 /dev/block/mtdblock0 /system yaffs2 rw,nodev,noatime,nodiratime 0 0 /dev/block/mtdblock1 /data yaffs2 rw,nodev,noatime,nodiratime 0 0 没什么有新意的,和台式机比较一下,一个就是没有虚拟内存文件系统,根文件系统直接就是模拟器从SDK安装目录下的/tools/lib /images/ramdisk.img加载的.而系统所用的是yaffs2 文件系统,system和data分别都是64MB大,都用了将近一半了.具体系统的映像是SDK安装目录下的tools/lib/image /system.img. 从上面的分析看,这个Linux还是比较正常的.还有一个有意思的话题,就是目前安装软件,或者说是Package的方式在developer group上受到不少人的谴责,主要是Google目前对Android的程序安装没有标准的Install程序,也没有一个仓库说明,现在一些小程序,可以通过分析Android的文件变化得到大致的安装方式,但是以后有什么大型工程的话,最好还是定一个比较标准的安装方式规则,不能老依赖 Eclipse来帮我们搞吧,呵呵. 通过下面的步骤,可以大致分析出目前的安装模式 安装软件前: 1. emulator -wipe-data 2. adb push busybox ./ 3. adb shell ./busybox tar -cf /tmp/data.tar /data 4. adb pull /tmp/data.tar . 5. mkdir original 6. cd original 7. tar -xf ../data.tar 安装软件后: 1. adb shell ./busybox tar -cf /tmp/data.tar /data 2. adb pull /tmp/data.tar . 3. mkdir after_install 4. cd after_install 5. tar -xf ../data.tar 具体的区别,目前来看,就是/data/app和data/data下多了两个相关文件,同时在/data/system/packages.xml中增加了安装的程序信息.似乎菜单也是从这个文件中得到是否新安装程序,以及如何显示相关信息比如名称什么的. |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |