Android打包流程图

一.先来看下官网最新构建流程,比较简约.但是隐藏了很多过程.

  1. 编译器将您的源代码转换成 DEX(Dalvik Executable) 文件(其中包括运行在 Android 设备上的字节码),将所有其他内容转换成已编译资源。
  2. APK 打包器将 DEX 文件和已编译资源合并成单个 APK。不过,必须先签署 APK,才能将应用安装并部署到 Android 设备上。
  3. APK 打包器使用调试或发布密钥库签署您的 APK: a. 如果您构建的是调试版本的应用(即专用于测试和分析的应用),打包器会使用调试密钥库签署您的应用。Android Studio 自动使用调试密钥库配置新项目。 b. 如果您构建的是打算向外发布的发布版本应用,打包器会使用发布密钥库签署您的应用。要创建发布密钥库,请阅读在 Android Studio 中签署您的应用
  4. 在生成最终 APK 之前,打包器会使用 zipalign 工具对应用进行优化,减少其在设备上运行时的内存占用。

二.以下是官网的老图,构建过程,包含了比较详细的细节

打包过程大概概括为以下几步:

  1. 通过aapt打包res资源文件,生成R.java、resources.arsc和res文件(二进制&非二进制如res/raw和pic保持原样)。resources.arsc保存的是一个资源索引表,可以理解为一个map映射表,map的key是R.java中的资源ID,而value就是其对应的资源所在路径;R.java定义了各个资源ID常量,这两者结合就可以在代码中找到对应的资源引用。
  2. 处理.aidl文件,生成对应的Java接口文件
  3. 通过Java Compiler编译R.java、Java接口文件、Java源文件,生成.class文件
  4. 通过dex工具,将.class文件和第三方库中的.class文件处理生成classes.dex
  5. 通过apkbuilder工具,将aapt生成的resources.arsc和res文件、assets文件、动态库.so文件、AndroidManifest.xml 清单文件和classes.dex一起打包生成apk
  6. 通过jarsigner对上面的apk进行debug或者release签名
  7. 通过zipalign工具,将签名后的apk进行对齐处理
相关推荐
叽哥1 小时前
Kotlin学习第 1 课:Kotlin 入门准备:搭建学习环境与认知基础
android·java·kotlin
风往哪边走2 小时前
创建自定义语音录制View
android·前端
用户2018792831672 小时前
事件分发之“官僚主义”?或“绕圈”的艺术
android
用户2018792831672 小时前
Android事件分发为何喜欢“兜圈子”?不做个“敞亮人”!
android
Kapaseker4 小时前
你一定会喜欢的 Compose 形变动画
android
QuZhengRong4 小时前
【数据库】Navicat 导入 Excel 数据乱码问题的解决方法
android·数据库·excel
zhangphil5 小时前
Android Coil3视频封面抽取封面帧存Disk缓存,Kotlin(2)
android·kotlin
程序员码歌12 小时前
【零代码AI编程实战】AI灯塔导航-总结篇
android·前端·后端
书弋江山13 小时前
flutter 跨平台编码库 protobuf 工具使用
android·flutter
来来走走15 小时前
Flutter开发 webview_flutter的基本使用
android·flutter