Apk安装和打包流程

Apk打包流程

1.aapt阶段:aapt工具编译res资源文件,把大部分xml文件编译成二进制文件(图片文件除外),同时生成R.Java文件和resources.arsc文件,里面保存了资源的ID和在APK中的路径。

2.aidl阶段:如果项目中有使用AIDL,那么就会把.aidl文件编译成.java文件。

3.javaCompiler阶段:将所有.java文件(包括R文件和AIDL生成的.java文件),通过javac工具生成class文件。

4.dex阶段:将生成的.class文件和第三方库的.class文件通过dx工具生成classes.dex文件(如果有分包,那么可能有多个)。

5.apkBuilder阶段:aapt阶段中的资源文件、dex文件和第三方的非java资源包(.so),通过apkbuilder工具生成未签名的apk包。

6.jarSigner阶段:签名,jarsigner工具,如果是debug模式用默认签名,release模式用开发者的签名。

7.zipAligin阶段:对齐,通过zipalign工具对apk中的未压缩资源(图片、视频)进行“对齐操作”,让资源按4字节的边界进行对齐,使得资源访问速度更快


Apk安装

Adroid的应用安装涉及到如下几个目录:

  • /data/app:存放用户安装的APK的目录,安装时,把APK拷贝于此。
  • /data/data:应用安装完成后,在/data/data目录下自动生成和APK包名(packagename)一样的文件夹,用于存放应用程序的数据。
  • /data/dalvik-cache:存放APK的odex文件,便于应用启动时直接执行。

具体安装过程如下:

  1. 复制APK安装包到/data/app下,然后校验APK的签名是否正确,检查APK的结构是否正常,进而解压并且校验APK中的dex文件。
  2. 确定dex文件没有被损坏后,再把dex优化成odex,使得应用程序启动时间加快。
  3. 同时在/data/data目录下建立于APK包名相同的文件夹,如果APK中有lib库,系统会判断这些so库的名字,查看是否以lib开头,是否以.so结尾,再根据CPU的架构解压对应的so库到/data/data/packagename/lib下。

Ref:

Android APK文件结构 完整打包编译的流程 APK安装过程 详解

(备注:这篇是摘了ref引用到的文章的一些知识点,仅起到做个简单笔记的作用。)

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值