三、android系统目录简析
android系统内部文件夹保存着系统运行的关键数据,android系统是基于linux内核的,
所以会看到他的文件系统设置还是有很大的linux的影子。
一个完整的ROM根目录下会有几个文件夹及文件,一般会有下面的:
\system是一个很重要的目录,系统中的大部分东西都在这里了
\sdcard是SD卡中的FAT32文件系统挂载的目录
\cache缓存目录
\etc指向 /system/etc ,众所周知的配置文件存放目录
\sys :用于挂载 sysfs文件系统。 在设备模型中,sysfs文件系统用来表示设备的结构.将设备的层次结构形象的反应到用户空间中,
用户空间可以修改sysfs中的文件属性来修改设备的属性值 。
\sbin: 只放了一个用于调试的adbd程序。
\proc :/proc 文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。
\data :存放用户安装的软件以及各种数据。
\root :这个目前还不清楚。
\mnt 系统提供这个目录是让用户临时挂载其他的文件系统。
\dev :不用多说了,设备节点文件的存放地。
下面介绍非目录的文件:
runme.sh用于 SD 卡中 EXT2文件系统的自动挂载动作的脚本。
init.trout.rc,init.rc,init.goldfish.rc 是初始化文件.
init是系统启动到文件系统的时候第一个运行的程序。
\system\app
这个里面主要存放的是常规下载的应用程序,可以看到都是以APK格式结尾的文件,在这个文件夹下的程序为系统默认的组件,自己安装的软件将不会出现在这里,而是\data\文件夹中。例如:
\system\app\AlarmClock.apk 闹钟
\system\app\AlarmClock.odex
\system\app\Browser.apk 浏览器
\system\app\Browser.odex
\system\bin
这个目录下的文件都是系统的本地程序,从bin文件夹名称可以看出是binary二进制的程序,里面主要是Linux系统自带的组件,例如:
\system\bin\akmd
\system\bin\am
\system\bin\app_process 系统进程
\system\bin\dalvikvm Dalvik虚拟机宿主
\system\bin\dbus-daemon 系统BUS总线监控
\system\etc
从文件夹名称来看保存的都是系统的配置文件,比如APN接入点设置等核心配置。例如:
\system\etc\apns-conf.xml APN接入点配置文件
\system\etc\AudioFilter.csv 音频过滤器配置文件
\system\etc\AudioPara4.csv
\system\etc\bookmarks.xml 书签数据库
\system\fonts
字体文件夹,除了标准字体和粗体、斜体外可以看到文件体积最大的可能是中文字库,或一些unicode字库,从T-Mobile G1上可以清楚的看到显示简体中文正常,其中DroidSansFallback.ttf文件大小。例如:
\system\fonts\DroidSans-Bold.ttf
\system\fonts\DroidSans.ttf
\system\fonts\DroidSansFallback.ttf
\system\framework
framework主要是一些核心的文件,从后缀名为jar可以看出是是系统平台框架。
\system\framework\am.jar
\system\framework\am.odex
\system\framework\android.awt.jar AWT库
\system\framework\android.awt.odex
\system\lib
lib目录中存放的主要是系统底层库,主要是C/C++库。如平台运行时库。
\system\lib\libaes.so
\system\lib\libagl.so
\system\lib\libandroid_runtime.so Android运行时库
\system\lib\libandroid_servers.so 系统服务组件
\system\lib\libaudio.so 音频处理
\system\media
铃声音乐文件夹,除了常规的铃声外还有一些系统提示事件音
\system\sounds
默认的音乐测试文件,仅有一个test.mid文件,用于播放测试的文件。
\system\usr
用户文件夹,包含共享、键盘布局、时间区域文件等。