- 浏览: 230706 次
- 性别:
- 来自: 湖南
最新评论
-
yuxuejun1123:
为什么没有powerPC,个人觉得这篇文章把mips和powe ...
ARM MIPS PowerPC比较 -
yy232:
我刚学这个,有点疑问,希望你能为我解答 你说 “任何人只 ...
centos的用户、组权限、添加删除用户等操作的详细操作命令 -
wstxdz1023:
就那么几句代码,全是问题
socket 心跳
经过这几天在网上搜索关于Android
文件
系统
的相关资料,发现已经有很多高手
分析了Android的文件系统,这些高手多从不同的方面分析了其文件系统的结构和运行原理。我这里就写一下自己的理解。
首先是Android的文件系统根目录的结构:
# 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文件系统占有及其重要的位置,基本上所有的工具
和应用程序
都在这个目录下,我看来是一个真正的root
fs。他在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目录的结构的结构就简单分析到这里.
发表评论
-
Linux x86 编译 Android 遭遇 gnu/stubs-64.h
2011-08-19 10:43 1800这两天心血来潮,执行完 repo sync 后,顺手来了一下 ... -
使用Cygwin下载Android代码树
2011-03-16 20:45 1535--官方说明-- To set up y ... -
Cygwin在win下下载android源代码
2011-03-16 20:43 1038首先下载cygwin,cygwin是一个类linux平台。即在 ... -
Android NDK 环境搭建 - 安装配置 Cygwin
2011-03-16 20:40 29181. NDK 下载 最新版 Android NDK 开发工具包 ... -
Android-触感反馈和声音反馈的效果实现
2011-03-15 12:07 28861)只有系统设置中打开触感反馈选项,方法performHa ... -
socket的服务端框架
2011-03-07 14:17 2658最近查了不少java下面nio ... -
android UI 优化系列之 创建RGB565的缓存
2011-03-05 16:42 1851关于如何优化activity的 ... -
SocketChannel 和 DatagramChannel
2011-03-05 16:19 1887SocketChannel 叫套接字通道,面向流,就是通 ... -
Android 调试工具集
2011-03-05 13:25 12101.TraceView1)功能:用于热点分析和性 ... -
Android 中文API (33) —— Checkable
2011-03-03 17:45 1071声明 欢迎转载,但请保留文章原始出处:) ... -
Toast 和 Looper
2011-03-03 09:02 1096Toast 和 Looper,一个属于 android.w ... -
Activity 与 Main Loope
2011-03-03 08:59 989上文抛出了一个疑问:UI 线程是在哪里绑定 Looper ... -
Class loading in Android : Begin with PathClassLoader
2011-03-03 08:56 1141Google 在 Android 文档里的《What is ... -
Linux x86 编译 Android 遭遇 gnu/stubs-64.h
2011-03-03 08:54 1213这两天心血来潮,执行完 repo sync 后,顺手来了一 ... -
读《Multitasking the Android Way》(一)
2011-03-03 08:50 1134Android Developers Blog 发表了一篇 ... -
从 Remote Service Binding 学习 AIDL 与 IPC
2011-03-03 08:47 1479默认情况下,一个应用不管有多少个 Activity、Ser ... -
Android SDK Add-on Configure, Compile and Release
2011-03-03 08:44 1830SDK Add-on 是一个比较小众的话题,一是通常厂商不 ... -
Activity Task 与 Intent Filter Flag
2011-03-03 08:42 1207接触 Android 以来,一直觉得对 task、affi ... -
android的原理,不需要太多的剩余内存
2011-03-02 16:05 891不用在意剩余内存的大 ... -
Android IPC框架分析 Binder,Service,Service manager
2011-03-02 15:19 1331我首先从宏观的角度 ...
相关推荐
android根文件系统分析总结android根文件系统分析总结androidw根文件系统分析总结
Android 根文件系统分析
网上找的一篇关于Android 根文件系统启动过程的分析,这方面的东西不多。Android 根文件系统启动过程.doc
经过这几天在网上搜索关于Android文件系统的相关资料,发现已经有很多高手分析了Android的文件系统,这些高手多从不同的方面分析了其文件系统的结构和运行原理。我这里就写一下自己的理解。 首先是Android的文件系统...
《Android核心技术与实例详解》PPT ...Android根文件系统分析总结.pdf Android入门之HelloWorld.pdf Android系统开发--HAL层开发基础(1).doc Android硬件驱动开发关键技术和HAL移植要领.pdf HAL_sensor模型分析.doc
Android系统源代码情景分析光盘资料 目录 第1篇初识Android系统 第1章 准备知识................................................................ 2 1.1 Linux内核参考书籍......................................
《Android系统源代码情景分析》随书光盘内容(源代码) 目录如下: 第1篇 初识Android系统 第1章 准备知识 1.1 Linux内核参考书籍 1.2 Android应用程序参考书籍 1.3 下载、编译和运行Android源代码 ...
《Android系统源代码情景分析》随书光盘内容(源代码) 目录如下: 第1篇 初识Android系统 第1章 准备知识 1.1 Linux内核参考书籍 1.2 Android应用程序参考书籍 1.3 下载、编译和运行Android源代码 1.3.1 下载...
这一联盟将会支持 Google 发布的 Android 手机操作系统或者应用软件,共同开发名为 Android 的 开 放源代码的移动系统。开放手机联盟包括手机制造商、手机芯片厂商和移动运营商几类。目前,联盟成员 数 量已经达到了...
1. ListView背景 2 1. ListView 被选中item的背景颜色 2 2.ListView自定义背景颜色 2 2. android根文件系统目录分析 4
4.21 查找程序根目录下所有文件 134 4.22 加载手机磁盘里的图片文件 137 4.23 动态放大缩小imageview里的图片 139 4.24 动态旋转图片 142 4.25 猜猜我在想什么 145 4.26 离开与关闭程序的弹出窗口 ...
4.21 查找程序根目录下所有文件 4.22 加载手机磁盘里的图片文件 4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭程序的弹出窗口 4.27 隐藏式抽屉 4.28 手机桌面上的小...
4.21 查找程序根目录下所有文件 4.22 加载手机磁盘里的图片文件 4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭程序的弹出窗口 4.27 隐藏式抽屉 4.28 手机桌面上的小...
4.21 查找程序根目录下所有文件 4.22 加载手机磁盘里的图片文件 4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭程序的弹出窗口 4.27 隐藏式抽屉 4.28 手机桌面上的小...
4.21 查找程序根目录下所有文件 4.22 加载手机磁盘里的图片文件 4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭程序的弹出窗口 4.27 隐藏式抽屉 4.28 手机桌面上的小...
4.21 查找程序根目录下所有文件 4.22 加载手机磁盘里的图片文件 4.23 动态放大缩小ImageView里的图片 4.24 动态旋转图片 4.25 猜猜我在想什么 4.26 离开与关闭程序的弹出窗口 4.27 隐藏式抽屉 ...
Android升级包update.zip的生成过程分析1) 对于update.zip包的制作有两种方式,即手动制作和命令生成。 第一种手动制作:即按照update.zip的目录结构手动创建我们需要的目录。然后将对应的文件拷贝到相应的目录下,...
在Android内核源代码中分析系统调用。 这是Amrita Vishwa Vidyapeetham完成的论文工作的一部分。 该脚本以一个参数执行。 该参数对应于kerenl源的路径。 该脚本要求Android源代码的根目录中存在pattern.txt。 该...
压缩包中提供了ubuntu20.04 tftp服务器的安装流程和FS4412编译后的内核、设备树、根文件系统以及后期简单的Android应用开发,有简约的页面设计。 FS4412开发板配置过程中有任何问题,可以一起交流!