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文件管理器 FileManager 源代码》 在Android平台上,文件管理器是用户与设备文件系统交互的重要工具,它允许用户查看、创建、删除、移动和复制文件及目录。本篇将深入探讨一个名为"文件管理器File...
《深入剖析Android 开发小应用里的大智慧》是由张泳和葛丽娜编著的一本专业书籍,2014年出版。这本书是为那些希望深入理解Android应用程序开发的开发者们精心编写的,旨在揭示在小巧的应用程序背后所蕴含的复杂技术...
本篇文章将对标题为"Java编写的安卓系统优化软件源代码.rar"的项目进行深入剖析,揭示其在优化安卓系统、清理垃圾等方面的实现原理。 首先,我们需要理解Java在安卓开发中的核心地位。Android系统基于Linux内核,但...
Android内核剖析首先会介绍Linux内核的基础,包括进程管理、内存管理、文件系统等。 2. Android窗口管理系统 窗口管理系统是用户界面的重要组成部分,负责管理应用程序窗口的创建、销毁以及窗口间的切换和布局。在...
笔者认为,本书最大的特点在于,较全面、系统、深入地讲解了Android系统中的几大重要组成部分的工作原理,旨在通过直接剖析源代码的方式,引领读者一步步深入于诸如Binder、 Zygote、Audio、Surface、Vold、Rild...
- Android内核支持多种文件系统,如ext4、F2FS等,这些文件系统针对移动设备进行了优化,提高了数据读写速度并降低了功耗。 - 同时,为了满足移动设备多样化的需求,Android内核还支持虚拟文件系统(VFS),可以...
根据提供的文件信息,实际内容与标题“深入理解android telephony原理剖析与最佳实践”以及描述并不相符。然而,为了满足您的需求,以下将基于标题和描述来生成相关的Android Telephony的知识点。 ### 深入理解...
《深入剖析小米文件管理器源码——Android编程实践与解析》 小米文件管理器作为一款广泛应用在Android设备上的系统工具,其源码对于我们理解Android系统的文件管理机制、UI设计以及性能优化等方面具有重要的学习...
这篇文章将逐步揭示Android应用程序背后的设计思想,从基本的 APK 文件结构到更复杂的系统组件和编程模型。 首先,让我们深入了解 APK 文件。APK 是 Android 应用程序的基本打包格式,实质上是一个被压缩的 ZIP ...
### Android系统深入浅出之Binder机制分析 #### 一、 Binder机制概览 在深入探讨Binder之前,我们首先需要理解其在Android系统中的核心地位。Binder机制是Android平台实现跨进程通信(Inter-Process Communication...
至于Android的Linux内核与驱动程序,【Android系统原理与开发要点详解】03_Android的Linux内核与驱动程序(1).pdf和【Android系统原理与开发要点详解】03_Android的Linux内核与驱动程序.pdf两份文档将详细剖析Android...
本文将对"Android 小米文件管理器源码"进行深入剖析,旨在揭示其背后的编程理念和技术实现。 首先,小米文件管理器的核心功能是文件的浏览和操作。在源码中,我们可以看到它使用了Android的ContentProvider机制来...
本文将围绕“Android网上点餐系统源码”这一主题,深入剖析其核心功能和实现原理。 首先,一个完整的Android网上点餐系统通常由前端界面、后端服务器和数据库三大部分构成。前端界面是用户直接接触的部分,通常采用...
2. **Linux内核**:作为Android的基础,Linux内核提供了进程管理、内存管理、文件系统、网络协议栈等核心服务。内核还支持各种驱动程序,使硬件功能得以充分利用。Android对Linux内核进行了一些定制,例如添加特定的...
Android.mk 是Android构建系统中的关键文件,它定义了如何编译和构建Android项目的特定部分,如APK程序、Java库、C/C++应用程序、静态库和动态库。这份文档将详细介绍Android.mk的各个方面,帮助你深入理解其功能和...
《Android剖析和机理》是一本深入探讨Android操作系统内核及运行机制的宝贵资料,对于想要深入了解Android系统、进行系统优化或开发工作的人员来说,具有极高的参考价值。该资源包含了一个PDF文件,名为"Android剖析...
2. **Linux内核基础**:Android内核剖析会涵盖Linux内核的基本概念,如进程管理、内存管理、中断与异常处理、文件系统等。理解这些基础对于深入理解Android内核至关重要。 3. **Android特定内核模块**:书中将详细...
本研究针对当前市场上流行的多种移动操作系统(如Symbian、Windows Mobile、Mac OS X和RIM等)进行深入分析,并将重点放在了Android平台上。Android作为一款开源操作系统,凭借其灵活性和强大的开发者社区支持,在...
最后,本卷可能还涵盖了Dalvik的性能调优、内存管理策略、异常处理机制以及与硬件平台的交互等内容,这些都是开发者深入理解Android系统并提升应用性能的关键知识点。通过阅读《Android Dalvik虚拟机结构及机制剖析...
- **文件系统**:设计和实现自定义文件系统(FAT16),涉及数据存储和访问策略。 - **GUI子系统**:开发图形用户界面,提高用户体验。 - **应用程序开发框架**:构建一套完整的应用程序开发框架,简化应用程序的开发...