我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情
第一代打包
- 方法
直接点击运行按钮,系统在app\build\outputs\apk下生成了apk文件,然后直接拿这个apk文件就对外发版了。
原因是buildTypes里面的release和debug都用得同一个release版本的key。 - 优点
简单、粗暴、快速、高效 - 缺点
- 编译出来的都是debug版本的,代码里面如果需要根据debug和release版本进行区分则做不到
- debug和release的keystore未做区分
- 打包出来的app未能从表面上区分正式版还是测试版
第二代打包
- 方法
将打包过程用文档记录流程正规化管理起来,区分debug版本和release版本的打包方式,引入区分正式服和正式服apk标签,引入proguard混淆功能、引入第三方资源优化打包工具AndResGuard。 - 优点
- Debug:Build-Build APK, Release:Build-Generate Signed APK
- 根据不同的res区分正式服、测试服
- 完善混淆脚本
- 对接第三方打包优化工具
- 缺点
- application和library之间未做到自动关联,需要手工操作
- 没有使用flavor方式进行多渠道打包
第三代打包
- 方法
继续优化打包脚本,将application和library之间的配置文件自动关联起来,并且使用flavor完善多渠道打包 - 优点
- 将application和library自动关联,无需在application和library之间进行手工配置
- 引入flavor,规范化多渠道打包流程
- 缺点
- 第三方打包优化工具存在一定的bug需要特别留意,比如:
https://github.com/shwenzhang/AndResGuard/issues/162