Android平台根目錄文件


> 系統分區

# adb shell

# mount

rootfs / rootfs ro 0 0 tmpfs /dev tmpfs rw,mode=755 0 0 devpts /dev/pts devpts rw,mode=600 0 0 proc /proc proc rw 0 0 sysfs /sys sysfs rw 0 0 none /acct cgroup rw,cpuacct 0 0 tmpfs /mnt/asec tmpfs rw,mode=755,gid=1000 0 0 none /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 0 tmpfs /mnt/sdcard/.android_secure tmpfs ro,size=0k,mode=000 0 0

 

  以上就是 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 config drwxrwx--- system   cache             2011-06-21 05:32 cache lrwxrwxrwx root root 2011-08-18 10:36 sdcard -> /mnt/sdcard drwxr-xr-x root     root              2011-08-18 10:36 acct drwxrwxr-x root     system            2011-08-18 10:36 mnt lrwxrwxrwx root root 2011-08-18 10:36 d -> /sys/kernel/debug lrwxrwxrwx root root 2011-08-18 10:36 etc -> /system/etc drwxr-xr-x root     root              2010-06-30 21:06 system drwxr-xr-x root     root              1970-01-01 00:00 sys drwxr-x--- root     root              1970-01-01 00:00 sbin dr-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.prop drwxrwx--x system   system            2011-08-12 06:54 data drwx------ root     root              2010-01-28 00:59 root drwxr-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 usr drwxr-xr-x root     root              2010-06-30 21:07 app drwxr-xr-x root     root              2010-06-30 21:05 lib drwxr-xr-x root     root              2010-06-30 21:07 etc drwxr-xr-x root     root              2010-06-30 21:06 framework -rw-r--r-- root     root         1532 2010-06-30 20:58 build.prop drwxr-xr-x root     shell             2010-06-30 21:04 xbin drwxr-xr-x root     root              2010-06-30 21:00 tts drwxr-xr-x root     root              2010-06-30 21:00 media drwxr-xr-x root     root              2010-06-30 21:00 fonts drwxr-xr-x root     shell             2010-06-30 21:04 bin drw-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 property drwxrwx--t system   misc              2011-06-21 05:32 misc drwxrwx--x shell    shell             2011-06-21 05:32 local drwxrwx--x system   system            2011-06-21 05:32 app-private drwx------ system   system            2011-06-21 05:33 backup drwxrwxr-x system   system            2011-08-12 06:54 anr drwxrwx--x system   system            2011-08-20 06:50 app drwxrwx--x system   system            2011-08-20 06:50 data drwxr-x--- root     log               2011-06-21 05:32 dontpanic drwxrwx--x system   system            2011-08-20 06:50 dalvik-cache drwxrwxr-x system   system            2011-08-22 06:40 system drwxrwx--- root     root              2011-06-21 05:32 lost+found 

  可以看到 /data 目錄下結構都和應用有關,平時安裝的用戶應用/游戲程序,對應APP的數據,

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

查看系統變量:

# set

ANDROID_ASSETS=/system/app ANDROID_BOOTLOGO=1 ANDROID_DATA=/data ANDROID_PROPERTY_WORKSPACE=9,32768 ANDROID_ROOT=/system ASEC_MOUNTPOINT=/mnt/asec BOOTCLASSPATH=/system/framework/core.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/android.policy.jar:/system/framework/services.jar EXTERNAL_STORAGE=/mnt/sdcard IFS=' ' LD_LIBRARY_PATH=/system/lib OPTIND=1 PATH=/sbin:/system/sbin:/system/bin:/system/xbin PS1='# ' PS2='> ' PS4='+ ' PWD=/ _=/system/xbin

從系統變量我們也可以看到一些系統使用中的重要目錄。

> 進程分析

# ps

USER PID PPID VSIZE RSS WCHAN PC NAME root 1     0     312    220   c009b74c 0000ca4c S /init root 2     0     0      0     c004e72c 00000000 S kthreadd root 3     2     0      0     c003fdc8 00000000 S ksoftirqd/0 root 4     2     0      0     c004b2c4 00000000 S events/0 ... ... root 27    1     740    196   c0158eb0 afd0d8ac S /system/bin/sh system 28    1     808    204   c01a94a4 afd0db4c S /system/bin/servicemanager root 29    1     3736   372   ffffffff afd0e1bc S /system/bin/vold root 30    1     3716   336   ffffffff afd0e1bc S /system/bin/netd ... ... system 59    33    183396 25580 ffffffff afd0db4c S system_server app_0 108   33    134184 14876 ffffffff afd0eb08 S com.android.inputmethod.pinyin radio 112   33    147300 15804 ffffffff afd0eb08 S com.android.phone app_25 122   33    149408 19932 ffffffff afd0eb08 S com.android.launcher system 124   33    136708 13172 ffffffff afd0eb08 S com.android.settings app_0 148   33    148892 18044 ffffffff afd0eb08 S android.process.acore

  從這里我們可以看出和 Linux 一樣所有進程的入口都是 init,接下來的系統進程也和 Linux 類似,

再接下來就是一些系統的守護程序(Native Service),最后是系統重要的應用程序。

通過這個列表大家也可以看出 Android 啟動過程的一些端倪。

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM