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文件是运行时真正需要的文件。
命令行中输入emulator -image system.img -data userdata.img -ramdisk ramdisk.img 进入模拟器。
分享到:
相关推荐
1. **理解Android.bp文件结构**:`Android.bp`文件由一系列模块定义组成,每个模块定义了特定类型的构建目标(如库、应用、可执行文件等)。每个模块都有自己的属性,这些属性控制着编译行为。 2. **引入条件编译**...
对于Android P源码编译项目,`.ipr`文件确保了Android Studio能正确识别项目结构并进行编译。 接着,我们来看`.iml`文件。`.iml`文件代表IntelliJ IDEA Module,同样是以XML格式存储,它记录了单个模块的详细信息,...
本篇文章将深入探讨Android编译文件树的主要组成部分,尤其是根目录下的关键元素。 首先,`Android.bp`文件是Android构建系统的蓝图,用于描述模块的构建规则。它是用一种特定的语言编写的,类似于Makefile,但更...
整体来说,这份文档是高通提供给开发者的一份详尽的指导手册,旨在帮助开发者在高通平台上顺利搭建Android编译环境,完成系统编译和固件刷写等操作。开发者通过遵循文档中的指导,可以更加高效地进行开发工作,并且...
在Android平台上,APK文件是由Java代码经过编译、打包和签名后形成的。通过反编译,我们可以查看这些代码,尽管不是原始的Java源码,但可以得到类似于源码的可读格式。 在这个最完整的Android反编译工具包中,可能...
在Android开发领域,有时我们需要对APK文件进行逆向工程,以分析其内部结构、查看源代码或修改功能。这通常涉及到使用各种Android反编译工具。这些工具可以帮助开发者、安全研究人员或者逆向工程师理解已编译的...
在深入探讨Android编译过程之前,首先需要理解的是Android系统的开放性使得开发者和制造商能够根据特定硬件需求定制操作系统。例如,小米、LePhone和M9等品牌就利用这一特性为自家设备打造独特的用户体验。要对...
### Android编译过程详解 #### 一、概览 Android作为一个全球范围内广泛应用的操作系统平台,其内部机制和构建流程对于开发者来说非常重要。本文将以Android 2.1版本为基础,使用华清远见研发的FS_S5PC100A8开发板...
在Android开发中,有时我们需要利用C或C++的性能优势,这时就需要用到Android Studio的NDK(Native Development Kit)来编译C/C++代码,生成SO(Shared Object)动态链接库文件。这篇博客详细介绍了如何在Android ...
从源码下载、环境配置到编译和镜像制作,每个环节都需要开发者具备扎实的Linux基础、Git操作技能以及对Android系统结构的深刻理解。通过不断地实践和学习,开发者不仅能提升技术水平,还能更好地定制和优化Android...
`apktool`是一个开源的Android反编译工具,它能够帮助我们解包APK,反编译其中的XML和布局文件(layout),并提供重新打包和签名的功能,以实现对APK的分析和修改。 首先,`apktool`的基本使用流程如下: 1. **...
该命令会根据 `Android.mk` 和 `Application.mk` 文件中定义的规则,编译出适用于 Android 平台的静态库文件 `libprotobuf.a`。 #### 六、总结 通过上述步骤,我们可以在 Windows 平台上成功地为 Android 设备编译...
在Android开发领域,有时我们需要对已有的APK文件进行反编译,以便了解其内部结构、查看源代码或进行二次开发。"Android反编译-全部工具包"提供了一个便捷的方式,将所有必要的反编译工具集合在一起,使得开发者无需...
在Android应用开发中,"android反编译资源获取"是一个重要的技术话题,它涉及到对APK文件的逆向工程,以便获取其中的资源文件,如图片、布局文件等。APKTool是这个过程中常用的一款工具,它允许开发者解包、反编译、...
这通常涉及到配置编译环境,包括设置目标体系结构(如arm或aarch64)、指定交叉编译工具链(如arm-linux-androideabi-gcc),以及确保所有依赖项和库都适合目标平台。 【BusyBox在Android中的应用】 在Android的...
本文将深入探讨“Android APK反编译文件”这一主题,包括如何进行反编译,以及反编译过程中的关键知识点。 首先,让我们了解什么是APK反编译。APK反编译是将已编译的APK文件转换回其源代码形式,以便分析和理解其...
解压后,你会看到项目的目录结构,包含源码文件、构建脚本等。 2. **配置Android NDK**: 安装并配置Android NDK,这是编译C/C++原生代码的必备工具。确保NDK路径已添加到系统环境变量中。 3. **设置构建环境**:...
1. **APK结构**:APK是Android应用的打包格式,包含DEX(Dalvik Executable)文件,这是Java字节码的优化版本,用于在Android虚拟机上运行。 2. **DEX文件**:DEX文件包含应用的类定义、方法和数据。通过反编译,...