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

编译过程
第一步:
工具: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目录,这是存放签名信息的目录

如下图:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值