好库网 好库网首页 | 我的好库
安卓专栏

Android开发技巧:Android 文件系统

发布者:android
发布日期:2012/2/21 21:51:55   更新日期:2012/2/21 21:51:55
阅读次数:4439
评分:4.80
介绍:sqlite_stmt_journals:一个根目录下的tmpfs 文件系统,用於存放临时文件数据。 cache : 是缓存临时文件夹,据说是除了T-mobile 的OTA 更新外,别无用处。 sdcard:是SD 卡中的FAT32 文件系统挂载的目录 etc :指向 /system/etc ,众所周知的配置文件存放目录 system :是一个很重要的目录,系统中的大部分东西都在这里了
正文:

作者:craining

 

# pwd && ls -a -l

/

drwxrwxrwt root root 2009-06-10 09:53 sqlite_stmt_journals

drwxrwx--- system cache 2008-09-06 22:51 cache

d---rwxrwx system system 1970-01-01 08:00 sdcard

lrwxrwxrwx root root 2009-06-09 22:11 etc -> /system/etc

drwxr-xr-x root root 2008-09-06 22:45 system

drwxr-xr-x root root 1970-01-01 08:00 sys

drwxr-x--- root root 1970-01-01 08:00 sbin

-rw-r--r-- root root 117 1970-01-01 08:00 runme.sh

dr-xr-xr-x root root 1970-01-01 08:00 proc

-rwxr-x--- root root 1704 1970-01-01 08:00 init.trout.rc

-rwxr-x--- root root 9329 1970-01-01 08:00 init.rc

-rwxr-x--- root root 1677 1970-01-01 08:00 init.goldfish.rc

-rwxr-x--- root root 106636 1970-01-01 08:00 init

-rw-r--r-- root root 118 1970-01-01 08:00 default.prop

drwxrwx--x system system 2008-09-06 22:51 data

drwx------ root root 2009-06-07 16:29 root

drwxr-xr-x root root 2009-06-09 22:11 dev

sqlite_stmt_journals:一个根目录下的tmpfs 文件系统,用於存放临时文件数据。

cache : 是缓存临时文件夹,据说是除了T-mobile 的OTA 更新外,别无用处。

sdcard:是SD 卡中的FAT32 文件系统挂载的目录

etc :指向 /system/etc ,众所周知的配置文件存放目录

system :是一个很重要的目录,系统中的大部分东西都在这里了,以下是目录结构:

# ls -a -l /system

drwxr-xr-x root 208 1970-01-01 08:00 xbin

drwxr-xr-x root root 1970-01-01 08:00 modules

drwxr-xr-x root root 2008-08-01 20:00 framework

drwxr-xr-x root root 2008-08-01 20:00 fonts

drwxr-xr-x root root 2008-08-01 20:00 etc

-rw-r--r-- root root 2197 2008-08-01 20:00 build.prop

drwxr-xr-x root root 2008-08-01 20:00 media

drwxr-xr-x root shell 2008-08-01 20:00 bin

drwxr-xr-x root root 2008-08-01 20:00 usr

drwxr-xr-x root root 2008-08-01 20:00 app

drwxr-xr-x root root 2008-09-06 22:45 lost+found

drwxr-xr-x root root 2008-08-01 20:00 lib

drwxr-xr-x root root 2008-08-01 20:00 sd

-rw-r--r-- root root 145 2008-08-01 20:00 init.rc

sys :用於挂载 sysfs 文件系统。 在设备模型中,sysfs 文件系统用来表示设备的结构.将设备的层次结构形象的反应到用户空间中.用户空间可以修改sysfs 中的文件属性来修改设备的属性值

sbin: 只放了一个用於调试的adbd 程序。

proc :/proc 文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。

data :存放用户安装的软件以及各种数据。

root :什么都没有。

dev :不用多说了,设备节点文件的存放地。

下面介绍非目录的文件:

runme.sh 用於 SD 卡中 EXT2 文件系统的自动挂载动作的脚本。

init.trout.rc,init.rc,init.goldfish.rc 是初始化文件.

init 是系统启动到文件系统的时候第一个运行的程序。

从以上的根目录分析来看,Android 的根文件系统并非标准的Linux 文件系统,所以以後还得仔细分析一下启动过程,才能认识Android 系统。

今天要来分析一下Android 文件系统的/system 目录的结构。

/system 目录是在Android 文件系统占有及其重要的位置,基本上所有的工具和应用程序都在这个目录下,我看来是一个真正的rootfs。他在Android 手机中存放在nandflash 的mtd3

中,是一个yaffs2 文件系统,在启动时被挂载在root 的/system 目录下,其中包含有:

# pwd && ls -a -l

/system

drwxr-xr-x root 208 1970-01-01 08:00 xbin

drwxr-xr-x root root 1970-01-01 08:00 modules

drwxr-xr-x root root 2008-08-01 20:00 framework

drwxr-xr-x root root 2008-08-01 20:00 fonts

drwxr-xr-x root root 2008-08-01 20:00 etc

-rw-r--r-- root root 2197 2008-08-01 20:00 build.prop

drwxr-xr-x root root 2008-08-01 20:00 media

drwxr-xr-x root shell 2008-08-01 20:00 bin

drwxr-xr-x root root 2008-08-01 20:00 usr

drwxr-xr-x root root 2008-08-01 20:00 app

drwxr-xr-x root root 2008-09-06 22:45 lost+found

drwxr-xr-x root root 2008-08-01 20:00 lib

drwxr-xr-x root root 2008-08-01 20:00 sd

-rw-r--r-- root root 145 2008-08-01 20:00 init.rc

下面逐个分析其中的目录:

xbin :下放了很多系统管理工具,这些工具不是到toolbox 的链接,每个都是可执行程序。如果你看到这些命令你会发现他们根本不常用,他们都是为系统管理员准备的,是一些系统管理和配置工具。这个文件夹的作用相当於标准Linux 文件系统中的 /sbin。我的手机此目录下有busybox,肯定是改过的,应该是破解者加上的。

modules:使用来存放内核模块(主要是fs 和net)和模块配置文件的地方。

framework: 是JAVA 平台的一些核心文件,属於JAVA 平台系统框架文件。里面的文件都是.jar 和.odex 文件。

备注:什么是odex 文件? odex 是被优化过的JAVA 程序文件,体积通常是.jar 的4 倍左右。执行效率比.jar 高。

fonts :很显然,这是字体库文件的存放目录。

etc :这里存放了系统中几乎所有的配置文件,根目录下的/etc 就链结於此。

build.prop :是一个属性文件,在Android 系统中.prop 文件很重要,记录了系统的设置和改变,类似於/etc 中的文件。

media :里面主要是存放了系统的铃声的,分为 notifications(通知)、ui(界面)、alarms(警告)和ringtones(铃声),里面都是.ogg 音频文件。

bin :众所周知,是存放用户常用的工具程序的,其中大部分是到toolbox 的链接(类似嵌入式Linux 中的busybox)。toolbox 应该是google 简化版的busybox,我还没深入研究过。

usr :用户的配置文件,如键盘布局、共享、时区文件等等。您可以cat 来看看。

app :顾名思义,存放的是Android 系统自带的JAVA 应用程序。

lost+found :yaffs 文件系统固有的,类似回收站的文件夹,只有是yaffs 文件系统都会有。

lib :存放几乎所有的共享库(.so)文件。

sd :SD 卡中的EXT2 分区的挂载目录

init.rc :一个初始化脚本,用於将/system/modules 和/system/xbin 挂载为cramfs,避免系统被无意破坏。

好了,/system 目录的结构的结构就简单分析到这里.

 


评论 [发表评论]
账号 密码 还没帐号呢,现在注册一个?

免责声明:好库网所展示的信息由买卖双方自行提供,其真实性、准确性和合法性由信息发布人负责。好库网不提供任何保证,并不承担任何法律责任。