转自:http://blog.csdn.net/shagoo/article/details/6709430


> 系统分区

# adb shell

# mount

rootfs / rootfs ro 0 0tmpfs /dev tmpfs rw,mode=755 0 0devpts /dev/pts devpts rw,mode=600 0 0proc /proc proc rw 0 0sysfs /sys sysfs rw 0 0none /acct cgroup rw,cpuacct 0 0tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0none /dev/cpuctl cgroup rw,cpu 0 0/dev/block/mtdblock0 /system yaffs2 ro 0 0/dev/block/mtdblock1 /data yaffs2 rw,nosuid,nodev 0 0/dev/block/mtdblock2 /cache yaffs2 rw,nosuid,nodev 0 0/dev/block/vold/179:0 /mnt/sdcard vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,err  ors=remount-ro 0 0/dev/block/vold/179:0 /mnt/secure/asec vfat rw,dirsync,nosuid,nodev,noexec,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf  8,errors=remount-ro 0 0tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0
<span style="font-family:Arial, Helvetica, sans-serif;"><span style="white-space: normal;"><span style="font-family:monospace;"><span style="white-space: pre;"></span></span></span></span>

以上就是 Android 系统的分区结构,可见其挂载方式和 Linux 非常类似,熟悉 Linux 的朋友应该能很容易的看出这些分区的作用大概是什么。

其中需要说明一下的可能是 /dev/block/mtdblock* 这几个核心分区(写入 ROM 的),他们都是使用 yaffs2 文件系统(基于 FLASH 存储),

其中是 /system 这个分区只有特殊的 ro 只读权限,由此可见 Android 在安全性设计方面所下的一些功夫。另外 /dev/block/vold 据说是设计

来替代 udev 的功能,主要用于支持一些热插拔设备。


> 目录概览

# ls -l

dr-x------ root     root              2011-08-18 10:36 configdrwxrwx--- system   cache             2011-06-21 05:32 cachelrwxrwxrwx root     root              2011-08-18 10:36 sdcard -> /mnt/sdcarddrwxr-xr-x root     root              2011-08-18 10:36 acctdrwxrwxr-x root     system            2011-08-18 10:36 mntlrwxrwxrwx root     root              2011-08-18 10:36 d -> /sys/kernel/debuglrwxrwxrwx root     root              2011-08-18 10:36 etc -> /system/etcdrwxr-xr-x root     root              2010-06-30 21:06 systemdrwxr-xr-x root     root              1970-01-01 00:00 sysdrwxr-x--- root     root              1970-01-01 00:00 sbindr-xr-xr-x root     root              1970-01-01 00:00 proc-rwxr-x--- root     root        12995 1970-01-01 00:00 init.rc-rwxr-x--- root     root         1677 1970-01-01 00:00 init.goldfish.rc-rwxr-x--- root     root       107412 1970-01-01 00:00 init-rw-r--r-- root     root          118 1970-01-01 00:00 default.propdrwxrwx--x system   system            2011-08-12 06:54 datadrwx------ root     root              2010-01-28 00:59 rootdrwxr-xr-x root     root              2011-08-18 10:36 dev

以上是 Android 根目录下文件目录,根据之前的分区结构可以大致看出每个目录的所处位置和大致功能,

以下是几个重要目录/文件的说明:

  1、mnt 挂载点目录

  2、etc 系统主要配置文件

  3、system Android 系统文件

  4、sys Linux 内核文件/驱动文件

  5、proc 运行时文件

  6、init.rc 启动脚本

  7、default.prop 系统属性配置文件

  8、data 用户程序目录

  9、dev 设备文件


system目录:

# ls -l /system

drwxr-xr-x root     root              2010-06-30 21:03 usrdrwxr-xr-x root     root              2010-06-30 21:07 appdrwxr-xr-x root     root              2010-06-30 21:05 libdrwxr-xr-x root     root              2010-06-30 21:07 etcdrwxr-xr-x root     root              2010-06-30 21:06 framework-rw-r--r-- root     root         1532 2010-06-30 20:58 build.propdrwxr-xr-x root     shell             2010-06-30 21:04 xbindrwxr-xr-x root     root              2010-06-30 21:00 ttsdrwxr-xr-x root     root              2010-06-30 21:00 mediadrwxr-xr-x root     root              2010-06-30 21:00 fontsdrwxr-xr-x root     shell             2010-06-30 21:04 bindrw-rw-rw- root     root              2011-08-18 10:36 lost+found

以上是 system 目录下面的主要文件目录下面也简单介绍一下:

  1、usr 用户文件夹,包含共享、键盘布局、时间区域文件等

  2、app 常规下载的应用程序,这些 apk 包都是受保护的哦

  3、lib 系统底层库,如平台运行时库等

  4、etc 系统的配置文件,比如APN接入点设置等核心配置等

  5、framework Android 系统平台核心 framework 的文件

  6、build.prop Android 系统属性配置文件

  7、xbin 常用开发工具,比如 tcpdump/sqlite3 等

  8、bin 系统工具,比如 ps/cp/pm 等


data目录:

# ls -l /data

drwx------ root     root              2011-06-22 02:32 propertydrwxrwx--t system   misc              2011-06-21 05:32 miscdrwxrwx--x shell    shell             2011-06-21 05:32 localdrwxrwx--x system   system            2011-06-21 05:32 app-privatedrwx------ system   system            2011-06-21 05:33 backupdrwxrwxr-x system   system            2011-08-12 06:54 anrdrwxrwx--x system   system            2011-08-20 06:50 appdrwxrwx--x system   system            2011-08-20 06:50 datadrwxr-x--- root     log               2011-06-21 05:32 dontpanicdrwxrwx--x system   system            2011-08-20 06:50 dalvik-cachedrwxrwxr-x system   system            2011-08-22 06:40 systemdrwxrwx--- root     root              2011-06-21 05:32 lost+found

可以看到 /data 目录下结构都和应用有关,平时安装的用户应用/游戏程序,对应APP的数据,

都被安装在 /data/app 下就可以了。

查看系统变量:

# set

ANDROID_ASSETS=/system/appANDROID_BOOTLOGO=1ANDROID_DATA=/dataANDROID_PROPERTY_WORKSPACE=9,32768ANDROID_ROOT=/systemASEC_MOUNTPOINT=/mnt/asecBOOTCLASSPATH=/system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jarEXTERNAL_STORAGE=/mnt/sdcardIFS=''LD_LIBRARY_PATH=/system/libOPTIND=1PATH=/sbin:/system/sbin:/system/bin:/system/xbinPS1='# 'PS2='> 'PS4='+ 'PWD=/_=/system/xbin

从系统变量我们也可以看到一些系统使用中的重要目录。

> 进程分析

# ps

USER     PID   PPID  VSIZE  RSS     WCHAN    PC         NAMEroot      1     0     312    220   c009b74c 0000ca4c S /initroot      2     0     0      0     c004e72c 00000000 S kthreaddroot      3     2     0      0     c003fdc8 00000000 S ksoftirqd/0root      4     2     0      0     c004b2c4 00000000 S events/0... ...root      27    1     740    196   c0158eb0 afd0d8ac S /system/bin/shsystem    28    1     808    204   c01a94a4 afd0db4c S /system/bin/servicemanagerroot      29    1     3736   372   ffffffff afd0e1bc S /system/bin/voldroot      30    1     3716   336   ffffffff afd0e1bc S /system/bin/netd... ...system    59    33    183396 25580 ffffffff afd0db4c S system_serverapp_0     108   33    134184 14876 ffffffff afd0eb08 S com.android.inputmethod.pinyinradio     112   33    147300 15804 ffffffff afd0eb08 S com.android.phoneapp_25    122   33    149408 19932 ffffffff afd0eb08 S com.android.launchersystem    124   33    136708 13172 ffffffff afd0eb08 S com.android.settingsapp_0     148   33    148892 18044 ffffffff afd0eb08 S android.process.acore

从这里我们可以看出和 Linux 一样所有进程的入口都是 init,接下来的系统进程也和 Linux 类似,

再接下来就是一些系统的守护程序(Native Service),最后是系统重要的应用程序。

通过这个列表大家也可以看出 Android 启动过程的一些端倪。



更多相关文章

  1. Android string.xml文件中使用格式化符号%
  2. Android 获取系统时间及时间戳转换
  3. android 系统提示对话框(AlertDialog)的使用
  4. android camera系统介绍(kernel部分)
  5. android电池管理系统从上层的java到底层驱动的调用(转载)

随机推荐

  1. Android中使用广播机制退出多个Activity
  2. Android 华为应用角标
  3. 版本更新简要
  4. Android中悬浮按钮的实现(记录)
  5. Android 横竖屏幕切换监听
  6. Fragment?????
  7. asynchttpclient的post方法发送json格式
  8. Android 获取当前activity所在类SimpleNa
  9. Android指纹识别
  10. Android简单的调用系统相机和相册