APP打包演化史

第一代打包

  • 方法
    直接点击运行按钮,系统在app\build\outputs\apk下生成了apk文件,然后直接拿这个apk文件就对外发版了。
    原因是buildTypes里面的release和debug都用得同一个release版本的key。
  • 优点
    简单、粗暴、快速、高效
  • 缺点
    1. 编译出来的都是debug版本的,代码里面如果需要根据debug和release版本进行区分则做不到
    2. debug和release的keystore未做区分
    3. 打包出来的app未能从表面上区分正式版还是测试版

第二代打包

  • 方法
    将打包过程用文档记录流程正规化管理起来,区分debug版本和release版本的打包方式,引入区分正式服和正式服apk标签,引入proguard混淆功能、引入第三方资源优化打包工具AndResGuard。
  • 优点
    1. Debug:Build-Build APK, Release:Build-Generate Signed APK
    2. 根据不同的res区分正式服、测试服
    3. 完善混淆脚本
    4. 对接第三方打包优化工具
  • 缺点
    1. application和library之间未做到自动关联,需要手工操作
    2. 没有使用flavor方式进行多渠道打包

第三代打包

  • 方法
    继续优化打包脚本,将application和library之间的配置文件自动关联起来,并且使用flavor完善多渠道打包
  • 优点
    1. 将application和library自动关联,无需在application和library之间进行手工配置
    2. 引入flavor,规范化多渠道打包流程
  • 缺点
    1. 第三方打包优化工具存在一定的bug需要特别留意,比如:
      https://github.com/shwenzhang/AndResGuard/issues/162

猜你喜欢

转载自blog.csdn.net/ddnosh/article/details/79597626