apk构建过程

1、首先我们知道Android运行的是dex文件,java是.class文件,而且我们通过分析apk包括以下几个部分

那么哪个部分先生成呢?程序肯定是从dex文件中获取执行的数据的,而我们编写代码的时候经常会引用.R的报名,所以在打包dex前自然对应的r.java已经生成,还有resources.arsc是我们引用比如图片名称的id对应部分,不然我们在构建中如果图片不存在就无法编译通过(以上是个人理解)所以第一步是生成这两个部分:R.java和resources.arsc,生成的工具是aapt,比如我们常用命令 aapt dump badging apkPath查看apk的信息

2、从上图看出了dex其他的都是已经存在的资源,所以就是要生成dex,但是我们知道aidl只是描述性语言,其代码是自动生成的,所以在编译dex之前需要生成代码,生成工具是aidl

3、上面也说了java是.class文件,Android应用层 代码也是java,所以会先转换为.class文件,这个大家就比较熟悉了经常会用javac 命令,来生成可运行的java程序,与之对应的经常用javap -v 来查看运行的字节码指令

4、用dex工具生产成dex

5、apk所有的组成部分都有了自然是将上面的打包在一起了,apkbuilder

6、我们安装的程序每个人都可以用相同的包名,而包名是区分程序的标识,那么怎么区分呢,自然是加上签名了,jarsingner将签名打入

7、zipalign对apk齐处理,对齐处理后通过内存映射访问apk文件时会更快

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值