当前位置: 代码迷 >> Android >> Android原码构造分析(转载)
  详细解决方案

Android原码构造分析(转载)

热度:82   发布时间:2016-05-01 17:23:10.0
Android原码结构分析(转载)

以下内容转载于网上论坛。正确性未一一验证,但是看了部分结构解释正确。

Google提供的Android手机开发平台包含了原始Android的目标机代码,主机编译工具、仿真环境,代码包经过解压缩后,第一级别的目录和文件如下所示:?
.?
|-- Makefile? ?? ???(全局的Makefile)?
|-- bionic? ?? ?? ? (Bionic C库)?
|-- bootloader? ?? ?(引导相关代码)?
|-- build? ?? ?? ???(build目录中的内容不是目标所用的代码,而是编译和配置所需要的脚本和工具)?
|-- cts? ?? ?? ???(Android兼容性测试套件标准)?
|-- dalvik? ?? ?? ? (JAVA虚拟机)?
|-- development? ???(程序开发所需要的模板和工具)?
|-- external? ?? ???(目标机器使用的一些库,android使用的一些开源的模组)?
|-- frameworks? ?? ?(应用程序的框架层 核心框架)?
|-- fw_tools
|-- hardware? ?? ???(部分厂家开源的硬解适配层HAL代码)?
|-- out? ?? ?? ?? ?? ?? ?? ? (编译完成后的代码输出与此目录)?
|-- kernel? ?? ?? ? (Linux2.6的源代码)?
|-- packages? ?? ???(Android的各种应用程序)?
|-- prebuilt? ?? ???(Android在各种平台下编译的预置脚本)?
|-- sdk? ?? ?(sdk及模拟器)?
|-- system? ?? ?? ? (底层文件系统库、应用及组件——C语言)?
`-- vendor? ?? ?? ? (厂商定制代码)?

bionic目录展开一个级别的目录如下所示:?
bionic 目录?
|-- libc? ?? ?? ?? ?? ?? ?? ?? ?(C库)?
|? ?|-- arch-arm? ?? ???(ARM架构,包含系统调用汇编实现)?
|? ?|-- arch-x86? ?? ???(x86架构,包含系统调用汇编实现)?
|? ?|-- bionic? ?? ?? ?? ?? ? (由C实现的功能,架构无关)?
|? ?|-- docs? ?? ?? ?? ?? ? (文档)?
|? ?|-- include? ?? ?? ?? ?? ? (头文件)?
|? ?|-- inet? ?? ?? ?? ?? ? (?inet相关,具体作用不明)?
|? ?|-- kernel? ?? ?? ?? ?? ? (Linux内核中的一些头文件)?
|? ?|-- netbsd? ?? ?? ?? ?? ? (?nesbsd系统相关,具体作用不明)?
|? ?|-- private? ?? ?? ?? ?? ? (?一些私有的头文件)?
|? ?|-- stdio? ?? ?? ?? ?? ? (stdio实现)?
|? ?|-- stdlib? ?? ?? ?? ?? ? (stdlib实现)?
|? ?|-- string? ?? ?? ?? ?? ? (string函数实现)?
|? ?|-- tools? ?? ?? ?? ?? ? (几个工具)?
|? ?|-- tzcode? ?? ?? ?? ?? ? (时区相关代码)?
|? ?|-- unistd? ?? ?? ?? ?? ? (unistd实现)?
|? ?`-- zoneinfo? ?? ???(时区信息)?
|-- libdl? ?? ?? ?? ?? ?? ?? ?? ?(libdl实现,dl是动态链接,提供访问动态链接库的功能)?
|-- libm? ?? ?? ?? ?? ?? ?? ?? ?(libm数学库的实现,)?
|? ?|-- alpha? ?? ?? ?? ?? ? (apaha架构)?
|? ?|-- amd64? ?? ?? ?? ?? ? (amd64架构)?
|? ?|-- arm? ?? ?? ?? ?? ? (arm架构)?
|? ?|-- bsdsrc? ?? ?? ?? ?? ? (?bsd的源码)?
|? ?|-- i386? ?? ?? ?? ?? ? (i386架构)?
|? ?|-- i387? ?? ?? ?? ?? ? (i387架构?)?
|? ?|-- ia64? ?? ?? ?? ?? ? (ia64架构)?
|? ?|-- include? ?? ?? ?? ?? ? (头文件)?
|? ?|-- man? ?? ?? ?? ?? ? (数学函数,后缀名为.3,一些为freeBSD的库文件)?
|? ?|-- powerpc? ?? ???(powerpc架构)?
|? ?|-- sparc64? ?? ?? ?? ?? ? (sparc64架构)?
|? ?`-- src? ?? ?? ?? ?? ? (源代码)?
|-- libstdc++? ?? ?? ?? ?? ? (libstdc++ C++实现库)?
|? ?|-- include? ?? ?? ?? ?? ? (头文件)?
|? ?`-- src? ?? ?? ?? ?? ? (源码)?
|-- libthread_db? ?? ???(多线程程序的调试器库)?
|? ?`-- include? ?? ?? ?? ?? ? (头文件)?
`-- linker? ?? ?? ?? ?? ?? ?? ?? ?(动态链接器)?
`-- arch? ?? ?? ?? ?? ? (支持arm和x86两种架构)?


bootloader目录展开的两个级别目录:?
bootloader/?
.?
|-- bootloader? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(适合各种bootloader的通用代码)?
|? ?`-- legacy? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(估计不能直接使用,可以参考)?
|? ?? ? |-- arch_armv6? ?? ?? ?? ?? ? (V6架构,几个简单的汇编文件)?
|? ?? ? |-- arch_msm7k? ?? ?? ?? ?? ? (高通7k处理器架构的几个基本驱动)?
|? ?? ? |-- include? ?? ?? ?? ?? ?? ?? ?? ?(通用头文件和高通7k架构头文件)?
|? ?? ? |-- libboot? ?? ?? ?? ?? ?? ?? ?? ?(启动库,都写得很简单)?
|? ?? ? |-- libc? ?? ?? ?? ?? ?? ?? ?? ?(一些常用的c函数)?
|? ?? ? |-- nandwrite? ?? ?? ?? ?? ? (nandwirte函数实现)?
|? ?? ? `-- usbloader? ?? ?? ?? ?? ? (usbloader实现)?
|-- diskinstaller? ?? ?? ?? ?? ?? ?? ?? ?(android镜像打包器,x86可生产iso)?
`-- recovery? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(系统恢复相关)?
|-- edify? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(升级脚本使用的edify脚本语言)?
|-- etc? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(init.rc恢复脚本)?
|-- minui? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(一个简单的UI)?
|-- minzip? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(一个简单的压缩工具)?
|-- mtdutils? ?? ?? ?? ?? ?? ?? ?? ?(mtd工具)?
|-- res? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(资源)?
|? ?`-- images? ?? ?? ?? ?? ?? ?? ?? ?(一些图片)?
|-- tools? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(工具)?
|? ?`-- ota? ?? ?? ?? ?? ?? ?? ?? ?(OTA Over The Air Updates升级工具)?
`-- updater? ?? ?? ?? ?? ?? ?? ?? ?(升级器)?



build目录展开的一个级别的目录如下所示:?
.?
|-- bootloader? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(适合各种bootloader的通用代码)?
|? ?`-- legacy? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(估计不能直接使用,可以参考)?
|? ?? ? |-- arch_armv6? ?? ?? ?? ?? ? (V6架构,几个简单的汇编文件)?
|? ?? ? |-- arch_msm7k? ?? ?? ?? ?? ? (高通7k处理器架构的几个基本驱动)?
|? ?? ? |-- include? ?? ?? ?? ?? ?? ?? ?? ?(通用头文件和高通7k架构头文件)?
|? ?? ? |-- libboot? ?? ?? ?? ?? ?? ?? ?? ?(启动库,都写得很简单)?
|? ?? ? |-- libc? ?? ?? ?? ?? ?? ?? ?? ?(一些常用的c函数)?
|? ?? ? |-- nandwrite? ?? ?? ?? ?? ? (nandwirte函数实现)?
|? ?? ? `-- usbloader? ?? ?? ?? ?? ? (usbloader实现)?
|-- diskinstaller? ?? ?? ?? ?? ?? ?? ?? ?(android镜像打包器,x86可生产iso)?
`-- recovery? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(系统恢复相关)?
|-- edify? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(升级脚本使用的edify脚本语言)?
|-- etc? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(init.rc恢复脚本)?
|-- minui? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(一个简单的UI)?
|-- minzip? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(一个简单的压缩工具)?
|-- mtdutils? ?? ?? ?? ?? ?? ?? ?? ?(mtd工具)?
|-- res? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(资源)?
|? ?`-- images? ?? ?? ?? ?? ?? ?? ?? ?(一些图片)?
|-- tools? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(工具)?
|? ?`-- ota? ?? ?? ?? ?? ?? ?? ?? ?(OTA Over The Air Updates升级工具)?
`-- updater? ?? ?? ?? ?? ?? ?? ?? ?(升级器)?

build目录?

|-- core? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(核心编译规则)?
|-- history? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(历史记录)?
|-- libs? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???
|? ?`-- host? ?? ?? ?? ?? ?? ?? ?? ?(主机端库,有android “cp”功能替换)?
|-- target? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(目标机编译对象)?
|? ?|-- board? ?? ?? ?? ?? ?? ?? ?? ?(开发平台)?
|? ?|? ?|-- emulator? ?? ???(模拟器)?
|? ?|? ?|-- generic? ?? ?? ?? ?? ? (通用)?
|? ?|? ?|-- idea6410? ?? ???(自己添加的)?
|? ?|? ?`-- sim? ?? ?? ?? ?? ? (最简单)?
|? ?`-- product? ?? ?? ?? ?? ? (开发平台对应的编译规则)?
|? ?? ? `-- security? ?? ???(密钥相关)?
`-- tools? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(编译中主机使用的工具及脚本)?
|-- acp? ?? ?? ?? ?? ?? ?? ?? ?(Android "acp" Command)?
|-- apicheck? ?? ?? ?? ?? ? (api检查工具)?
|-- applypatch? ?? ?? ?? ?? ? (补丁工具)?
|-- apriori? ?? ?? ?? ?? ?? ?? ?? ?(预链接工具)?
|-- atree? ?? ?? ?? ?? ?? ?? ?? ?(tree工具)?
|-- bin2asm? ?? ?? ?? ?? ? (bin转换为asm工具)?
|-- check_prereq? ?? ???(检查编译时间戳工具)?
|-- dexpreopt? ?? ?? ?? ?? ? (模拟器相关工具,具体功能不明)?
|-- droiddoc? ?? ?? ?? ?? ? (?作用不明,java语言,网上有人说和JDK5有关)?
|-- fs_config? ?? ?? ?? ?? ? (This program takes a list of files and directories)?
|-- fs_get_stats? ?? ?? ?? ?? ? (获取文件系统状态)?
|-- iself? ?? ?? ?? ?? ?? ?? ?? ?(判断是否ELF格式)?
|-- isprelinked? ?? ?? ?? ?? ? (判断是否prelinked)?
|-- kcm? ?? ?? ?? ?? ?? ?? ?? ?(按键相关)?
|-- lsd? ?? ?? ?? ?? ?? ?? ?? ?(List symbol dependencies)?
|-- releasetools? ?? ?? ?? ?? ? (生成镜像的工具及脚本)?
|-- rgb2565? ?? ?? ?? ?? ? (rgb转换为565)?
|-- signapk? ?? ?? ?? ?? ? (apk签名工具)?
|-- soslim? ?? ?? ?? ?? ?? ?? ?? ?(strip工具)?
`-- zipalign? ?? ?? ?? ?? ? (zip archive alignment tool)?



其中,core中的Makefile是整个Android编译所需要的真正的Makefile,它被顶层目录的Makefile引用。?
envsetup.sh是一个在使用仿真器运行的时候,用于设置环境的脚本。?
dalvik目录用于提供Android JAVA应用程序运行的基础————JAVA虚拟机。?
development目录展开的一个级别的目录如下所示:?
|-- apps? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(一些核心应用程序)?
|? ?|-- BluetoothDebug? ?? ???(蓝牙调试程序)?
|? ?|-- CustomLocale? ?? ???(自定义区域设置)?
|? ?|-- Development? ?? ???(开发)?
|? ?|-- Fallback? ?? ?? ?? ?? ? (和语言相关的一个程序)?
|? ?|-- FontLab? ?? ?? ?? ?? ? (字库)?
|? ?|-- GestureBuilder? ?? ???(手势动作)?
|? ?|-- NinePatchLab? ?? ???(?)?
|? ?|-- OBJViewer? ?? ?? ?? ?? ? (OBJ查看器)?
|? ?|-- SdkSetup? ?? ?? ?? ?? ? (SDK安装器)?
|? ?|-- SpareParts? ?? ?? ?? ?? ? (高级设置)?
|? ?|-- Term? ?? ?? ?? ?? ?? ?? ?? ?(远程登录)?
|? ?`-- launchperf? ?? ?? ?? ?? ? (?)?
|-- build? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(编译脚本模板)?
|-- cmds? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(有个monkey工具)?
|-- data? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(配置数据)?
|-- docs? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(文档)?
|-- host? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(主机端USB驱动等)?
|-- ide? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(集成开发环境)?
|-- ndk? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(本地开发套件——c语言开发套件)?
|-- pdk? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(Plug Development Kit)?
|-- samples? ?? ?? ?? ?? ?? ?? ?? ?(例程)?
|? ?|-- AliasActivity? ?? ???(?)?
|? ?|-- ApiDemos? ?? ?? ?? ?? ? (API演示程序)?
|? ?|-- BluetoothChat? ?? ???(蓝牙聊天)?
|? ?|-- BrowserPlugin? ?? ???(浏览器插件)?
|? ?|-- BusinessCard? ?? ???(商业卡)?
|? ?|-- Compass? ?? ?? ?? ?? ? (指南针)?
|? ?|-- ContactManager? ?? ???(联系人管理器)?
|? ?|-- CubeLiveWallpaper? ?? ???(动态壁纸的一个简单例程)?
|? ?|-- FixedGridLayout? ?? ???(像是布局)?
|? ?|-- GlobalTime? ?? ?? ?? ?? ? (全球时间)?
|? ?|-- HelloActivity? ?? ???(Hello)?
|? ?|-- Home? ?? ?? ?? ?? ?? ?? ?? ?(Home)?
|? ?|-- JetBoy? ?? ?? ?? ?? ?? ?? ?? ?(jetBoy游戏)?
|? ?|-- LunarLander? ?? ???(貌似又是一个游戏)?
|? ?|-- MailSync? ?? ?? ?? ?? ? (邮件同步)?
|? ?|-- MultiResolution? ?? ???(多分辨率)?
|? ?|-- MySampleRss? ?? ???(RSS)?
|? ?|-- NotePad? ?? ?? ?? ?? ? (记事本)?
|? ?|-- RSSReader? ?? ?? ?? ?? ? (RSS阅读器)?
|? ?|-- SearchableDictionary? ?? ???(目录搜索)?
|? ?|-- SimpleJNI? ?? ?? ?? ?? ? (JNI例程)?
|? ?|-- SkeletonApp? ?? ???(空壳APP)?
|? ?|-- Snake? ?? ?? ?? ?? ?? ?? ?? ?(snake程序)?
|? ?|-- SoftKeyboard? ?? ???(软键盘)?
|? ?|-- Wiktionary? ?? ?? ?? ?? ? (?维基)?
|? ?`-- WiktionarySimple(?维基例程)?
|-- scripts? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(脚本)?
|-- sdk? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(sdk配置)?
|-- simulator? ?? ?? ?? ?? ?? ?? ?? ?(?模拟器)?
|-- testrunner? ?? ?? ?? ?? ?? ?? ?? ?(?测试用)?
`-- tools? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???(一些工具)?



在emulator目录中qemud是使用QEMU仿真时目标机器运行的后台程序,skins是仿真时手机的界面。?
samples中包含了很多Android简单工程,这些工程为开发者学习开发Android程序提供了很大便利,可以作为模板使用。?
external目录展开的一个级别的目录如下所示:?
external/?
|-- aes?
|-- apache-http?
|-- bluez?
|-- clearsilver?
|-- dbus?
|-- dhcpcd?
|-- dropbear?
|-- elfcopy?
|-- elfutils?
|-- emma?
|-- esd?
|-- expat?
|-- fdlibm?
|-- freetype?
|-- gdata?
|-- giflib?
|-- googleclient?
|-- icu4c?
|-- iptables?
|-- jdiff?
|-- jhead?
|-- jpeg?
|-- libffi?
|-- libpcap?
|-- libpng?
|-- libxml2?
|-- netcat?
|-- netperf?
|-- neven?
|-- opencore?
|-- openssl?
|-- oprofile?
|-- ping?
|-- ppp?
|-- protobuf?
|-- qemu?
|-- safe-iop?
|-- skia?
|-- sonivox?
|-- sqlite?
|-- srec?
|-- strace?
|-- tagsoup?
|-- tcpdump?
|-- tinyxml?
|-- tremor?
|-- webkit?
|-- wpa_supplicant?
|-- yaffs2?
`-- zlib?



在external中,每个目录表示Android目标系统中的一个模块,可能有一个或者若干个库构成。其中:?
opencore为PV(PacketVideo),它是Android多媒体框架的核心。?
webkit是Android网络浏览器的核心。?
sqlite是Android数据库系统的核心。?
openssl是Secure Socket Layer,一个网络协议层,用于为数据通讯提供安全支持。?
frameworks目录展开的一个级别的目录如下所示:?
frameworks/?
|-- base?
|-- opt?
`-- policies?



frameworks是Android应用程序的框架。?
hardware是一些与硬件相关的库?
kernel是Linux2.6的源代码?

packages目录展开的两个级别的目录如下所示:?
packages/?
|-- apps?
|? ?|-- AlarmClock?
|? ?|-- Browser?
|? ?|-- Calculator?
|? ?|-- Calendar?
|? ?|-- Camera?
|? ?|-- Contacts?
|? ?|-- Email?
|? ?|-- GoogleSearch?
|? ?|-- HTMLViewer?
|? ?|-- IM?
|? ?|-- Launcher?
|? ?|-- Mms?
|? ?|-- Music?
|? ?|-- PackageInstaller?
|? ?|-- Phone?
|? ?|-- Settings?
|? ?|-- SoundRecorder?
|? ?|-- Stk?
|? ?|-- Sync?
|? ?|-- Updater?
|? ?`-- VoiceDialer?
`-- providers?
|-- CalendarProvider?
|-- ContactsProvider?
|-- DownloadProvider?
|-- DrmProvider?
|-- GoogleContactsProvider?
|-- GoogleSubscribedFeedsProvider?
|-- ImProvider?
|-- MediaProvider?
`-- TelephonyProvider?



packages中包含两个目录,其中apps中是Android中的各种应用程序,providers是一些内容提供者(在Android中的一个数据源)。?
packages中两个目录的内容大都是使用JAVA编写的程序,各个文件夹的层次结构是类似的。?
prebuilt目录展开的一个级别的目录如下所示:?
prebuilt/?
|-- Android.mk?
|-- android-arm?
|-- common?
|-- darwin-x86?
|-- linux-x86?
`-- windows?



system目录展开的两个级别的目录如下所示:?
system/?
|-- bluetooth?
|? ?|-- bluedroid?
|? ?`-- brfpatch?
|-- core?
|? ?|-- Android.mk?
|? ?|-- README?
|? ?|-- adb?
|? ?|-- cpio?
|? ?|-- debuggerd?
|? ?|-- fastboot?
|? ?|-- include? ?? ?? ?? ?(各个库接口的头文件)?
|? ?|-- init?
|? ?|-- libctest?
|? ?|-- libcutils?
|? ?|-- liblog?
|? ?|-- libmincrypt?
|? ?|-- libnetutils?
|? ?|-- libpixelflinger?
|? ?|-- libzipfile?
|? ?|-- logcat?
|? ?|-- logwrapper?
|? ?|-- mkbootimg?
|? ?|-- mountd?
|? ?|-- netcfg?
|? ?|-- rootdir?
|? ?|-- sh?
|? ?`-- toolbox?
|-- extras?
|? ?|-- Android.mk?
|? ?|-- latencytop?
|? ?|-- libpagemap?
|? ?|-- librank?
|? ?|-- procmem?
|? ?|-- procrank?
|? ?|-- showmap?
|? ?|-- showslab?
|? ?|-- sound?
|? ?|-- su?
|? ?|-- tests?
|? ?`-- timeinfo?
`-- wlan?
`-- ti?

Android编译完成后的代码结构?
Android编译完成后,将在根目录中生成一个out文件夹,所有生成的内容均放置在这个文件夹中。out文件夹如下所示:?

out/?

|-- CaseCheck.txt?

|-- casecheck.txt?

|-- host?

|? ?|-- common?

|? ?`-- linux-x86?

`-- target?

|-- common?

`-- product?



主要的两个目录为host和target,前者表示在主机(x86)生成的工具,后者表示目标机(模认为ARMv5)运行的内容。?



host目录的结构如下所示:?

out/host/?

|-- common?

|? ?`-- obj? ?? ?? ?? ???(JAVA库)?

`-- linux-x86?

|-- bin? ?? ?? ?? ???(二进制程序)?

|-- framework? ?? ???(JAVA库,*.jar文件)?

|-- lib? ?? ?? ?? ???(共享库*.so)?

`-- obj? ?? ?? ?? ???(中间生成的目标文件)?

host目录是一些在主机上用的工具,有一些是二进制程序,有一些是JAVA的程序。?



target目录的结构如下所示:?

out/target/?

|-- common?

|? ?|-- R? ?? ?? ???(资源文件)?

|? ?|-- docs?

|? ?`-- obj? ?? ?? ?(目标文件)?

`-- product?

`-- generic?

其中common目录表示通用的内容,product中则是针对产品的内容。?

在common目录的obj中,包含两个重要的目录:?

APPS??中包含了JAVA应用程序生成的目标,每个应用程序对应其中一个子目录,将结合每个应用程序的原始文件生成Android应用程序的APK包。?

JAVA_LIBRARIES??中包含了JAVA的库,每个库对应其中一个子目录。?



在默认的情况下,Android编译将生成generic目录,如果选定产品还可以生成其他的目录。generic包含了以下内容:?

out/target/product/generic/?

|-- android-info.txt?

|-- clean_steps.mk?

|-- data?

|-- obj?

|-- ramdisk.img?

|-- root?

|-- symbols?

|-- system?

|-- system.img?

|-- userdata-qemu.img?

`-- userdata.img?



在generic/obj/APPS目录中包含了各种JAVA应用,与common/APPS相对应,但是已经打成了APK包。?

system目录是主要的文件系统,data目录是存放数据的文件系统。?

obj/SHARED_LIBRARIES中存放所有动态库。?

obj/STATIC_LIBRARIES中存放所有静态库。?

几个以img为结尾的文件是几个目标映像文件,其中ramdisk是作为内存盘的根文件系统映像,system.img是主要文件系统的映像,这是一个比较大的文件,data.img是数据内容映像。这几个image文件是运行时真正需要的文件。

  相关解决方案