您的位置:首页 > 移动开发 > Android开发

Android应用原码编译大致过程概括

2015-10-16 11:12 211 查看
编译过程

第一步:

工具:aapt

输入:assets目录,AndroidManifest.xml,res目录

输出:resources.ap_,R.java

其中,resources.ap_其实就是一个压缩文件,将其重命名为resources.zip,解压后可看到内容包括

assets目录(保持原样),

res目录(类型为res/animator、res/anim、res/color、res/drawable(非Bitmap文件,即非.png、.9.png、.jpg、.gif文件)、res/layout、res/menu、res/values和res/xml的资源文件会转换为二进制文件,图片等保持原样),

AndroidManifest.xml(已转换为二进制文件),

resources.arsc(资源索引表,二进制文件,存放的时xml资源的地址,位于寄存器中,便于快速高效访问)。

gen目录下生成R.java文件,赋予每一个非assets资源一个ID值,这些ID值以常量的形式定义在一个R.java文件中

参考下图:





第二步:

工具aidl工具

输入:aidl文件

输出:对应的.java文件

第三步:

工具:javac

输入:程序的.java文件,第一步生成的R.java文件,第二步aidl生成的相关.java文件,引入的包(.jar)等

输出:.class文件

第四步:

工具:dx.bat工具

输入:第三步生成的所有.class文件

输出:一个classes.dex文件

第五步:打包签名

输入:第一步resources.ap_中的四个文件(assets目录,res目录,AndroidManifest.xml,resources.arsc),第四步的classes.dex文件,libs目录(.so文件等)

输出:.apk文件

.apk文件解压后发现多了个META-INF目录,这是存放签名信息的目录

如下图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: