http://blog.csdn.net/HKjinzhao/archive/2009/03/19/4005793.aspx
1、android文件系统的结构
android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中,
ramdisk.img是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数
据,emulator加载这3个映像文件后,会把 system和 userdata分别加载到 ramdisk文件系统中的system和
userdata目录下。因此,我们可以把ramdisk.img里的所有文件复制出来,system.img和userdata.img分别解压到
ramdisk文件系统中的system和 userdata目录下。
2、分离android文件系统出来
system.img,ramdisk.img,userdata.img映像文件是采用cpio打包、gzip压缩的,可以通过file命令验证:
file ramdisk.img,输出:
ramdisk.img: gzip compressed data, from Unix, last modified: Wed Mar 18 17:16:10 2009
Android源码编译后除了生成system.img,userdata.img之外还生成system和
userdata文件夹,因此不需要解压它们。Android源码编译后还生成root文件夹,其实root下的文件与 ramdisk.img
里的文件是一样的,不过这里还是介绍怎样把 ramdisk.img解压出来:
将ramdisk.img复制一份到任何其他目录下,将其名称改为ramdisk.img.gz,并使用命令
gunzip ramdisk.img.gz
然后新建一个文件夹,叫ramdisk吧,进入,输入命令
cpio -i -F ../ramdisk.img
这下,你就能看见并操作ramdisk里面的内容了。
然后把Android源码编译后生成的system和 userdata里的文件复制到 ramdisk/system和 ramdisk/userdata下。这样就得到一个文件系统了。
3、使用网络文件系统方式挂载android文件系统
因此,我们需要建立/nfsroot目录,再建立/nfsroot/androidfs目录,把刚才的android文件系统改名为androidfs,并链接到/nfsroot/androidfs
4、android内核引导文件系统
android内核挂载/nfsroot/androidfs之后,根据init.rc,init.goldfish.rc来初始化并装载系统库、程序等直到开机完成。init.rc脚本包括了文件系统初始化、装载的许多过程。init.rc的工作主要是:
1)设置一些环境变量
2)创建system、sdcard、data、cache等目录
3)把一些文件系统mount到一些目录去,如,mount tmpfs tmpfs /sqlite_stmt_journals
4)设置一些文件的用户群组、权限
5)设置一些线程参数
6)设置TCP缓存大小
分享到:
相关推荐
对Android的文件系统结构进程初步梳理,并初步分析其引导过程
同时,Android源代码的组织结构清晰地展示了系统各个组成部分之间的关系,这对于理解整个Android系统的构建和运行机制非常重要。了解这些内容不仅有助于开发者更好地调试和优化系统,也为进一步研究Android平台提供...
Android 技术体系结构是 Android 操作系统的核心架构,它由四个主要部分组成:Linux Kernel、Android Runtime、Libraries 和 Applications。 一、Linux Kernel Linux Kernel 是 Android 操作系统的底层支撑系统...
* bootable:启动引导相关代码,负责 Android 系统的启动过程。 * build:存放系统编译规则及 generic 等基础开发包配置。 * cts:Android 兼容性测试套件标准,用于测试 Android 设备的兼容性。 * dalvik:dalvik ...
### 最全的Android源码目录结构详解 ...以上就是Android源码目录结构的详细介绍,通过理解这些目录的作用和包含的组件,开发者可以更深入地掌握Android系统的内部机制,从而提升开发效率和应用质量。
下面将详细介绍如何在Android中实现文件复制以及在复制过程中显示`ProgressDialog`。 首先,让我们来看看文件复制的过程。在Android中,你可以使用Java的I/O流来实现文件复制。以下是一个基本的文件复制方法: ```...
Android系统体系结构是一种分层结构,包括应用层、框架层、中间件和运行时环境、内核和驱动等。这个体系结构是逻辑上的,而源代码则是水平的、静态的。源代码不直接对应体系结构的层次,而是以文件和目录的形式存在...
当你导入项目时,`android.iml`文件可以帮助Android Studio理解项目的结构和设置,从而正确地构建和运行应用。将这个文件放置在源码根目录下,意味着整个项目被视为一个模块。 其次,`android.ipr`文件是Android ...
在Android系统中,将exFAT(Extended File Allocation Table)文件系统进行移植是一个重要的过程,尤其是在需要处理大容量存储设备如SDXC(Secure Digital eXtended Capacity)卡时。exFAT是一种优化了FAT32文件系统...
Android源代码结构分析 Android源代码结构分析是Android操作系统的源代码...通过对Android源代码结构的分析,我们可以了解Android操作系统的内部机制和工作流程,从而更好地理解Android操作系统的实现原理和设计思想。
通过分析源码,我们可以更深入地理解Android文件系统的工作原理以及如何进行文件操作。 首先,文件管理器的核心是文件系统的操作接口。在Android中,`java.io.File`类提供了基本的文件操作功能,如创建、删除、...
art: Android Runtime,一种App运行模式,区别于传统的Dalvik虚拟机,旨在提高Android系统的流畅性.PDF bionic:系统C库源代码,Android改造的C或C++库.pdf bootable:启动引导相关代码,适合各种bootloader的通用...
在Unity引擎中开发游戏或应用并将其部署到Android平台时,理解正确的目录结构至关重要,因为这直接影响到构建过程和最终APK的性能。本篇将详细介绍Unity导出Android项目的目录结构及其重要性。 首先,Unity在导出...
"Android系统启动过程详解" Android 系统启动过程是指从 Linux 内核启动到 Android 系统完全启动的整个过程。下面我们将从 Android 4.0 源码中,了解和总结 Android 系统启动过程。 Init 进程的启动 Init 进程是 ...
【Android系统概述】 Android系统,由Google公司主导开发,是一款开源的移动操作系统,主要应用于智能手机、平板电脑以及近年来逐渐兴起的智能电视等领域。Android以其开放性和灵活性,吸引了众多开发者和用户,...
文件浏览器需要理解这些文件系统的结构和特性,以便有效地进行文件操作。 2. **SQLite数据库**:Android应用的数据存储通常依赖于SQLite,文件浏览器可能需要展示SQLite数据库文件,或者提供查看和编辑数据库内容的...