我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情

第一代打包

  • 方法
    直接点击运行按钮,系统在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

APP打包的几种方法相关推荐

  1. Linux平台应用打包的几种方法(qt/dll --> exec|appimage)

    首先,linux平台常用的打包方式,就是通过ldd查看依赖库,然后将依赖库的依赖复制过来,然后写一个脚本,让用户在运行的时候,运行这个脚本,然后这个脚本设置好环境变量(主要是将依赖库添加到环境变量中) ...

  2. App打包的两种方式

    在HBuilder上对APP提供了两种打包方式,云打包和本地打包,下面主要对这两种打包方式做个介绍 两者的区别:云打包相对简单,但是每天最多只能打包五次,而且在高峰期打包时间可能会很长,本地打包相对比 ...

  3. Android TV 智能电视/盒子 APP 开发焦点控制 两种方法实例

    感谢分享 http://www.7po.com/thread-564068-1-1.html 第一种方法: 采用Android自带的直接控制焦点上下左右的方法.这种方法的前提是必须知道每个view的i ...

  4. App渠道打包的两种方法

    我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买. 书籍详情请见:https://blog.csdn.net/ddnosh/article/ ...

  5. Android实时打印kernel和App log(两种方法)

    1.第一种 #!/system/bin/sh while [ 1 ] do sleep 1 dmesg >> kernel.log && logcat -v time &a ...

  6. day04 爬取豌豆荚app数据的两种方法

    今日内容:方法一 bs4爬取豌豆荚 爬取豌豆荚: 1.访问游戏主页 https://www.wandoujia.com/category/6001 2.点击查看更多,观察network内的请求 - 请 ...

  7. 利用IDEA将项目打包(两种方法)

    IDEA将java和scala混合打包 1.首先需要创建maven项目 2.在maven项目管理中要加上相关依赖,我这里把所有的东西都贴上来 <?xml version="1.0&qu ...

  8. android app 镜像的几种方法

    目录 1.概述 2.镜像相关问题的分析 3.镜像功能的相关实现 3.1 Rotate3dAnimation的镜像方法

  9. android 服务 重启,Android APP重启的几种方法

    项目开发过程中需要实现重启App的功能,常用的可行方案有: 1. 使用 FLAG_ACTIVITY_CLEAR_TOP : new Handler().postDelayed(new Runnable ...

最新文章

  1. 15-数据结构探险系列-图篇
  2. python编程入门经典 评分-关于 Python 的经典入门书籍有哪些?
  3. Linux显示5 9行的数据,Linux复习
  4. AndroidManifest.xml中Activity ConfigChanges属性的用法
  5. 数据结构(5) -- 图
  6. 16年微软/腾讯云/华为云MVP是怎样炼成的
  7. 程序员一定要提升技术之外的能力
  8. docker安装的PHPFPM容器Redis扩展
  9. vuex commit 模块_一分钟上手Vuex
  10. freecplus框架,Linux平台下C/C++程序员提高开发效率的利器
  11. 数据库基本SQL语句大全
  12. java hmget 最大值,【Redis】基本数据类型及命令操作(超详细)
  13. 项目owner看这里,MaxCompute全表扫描新功能,给你“失误”的机会
  14. Chrome历史版本下载地址
  15. linux snoop抓包命令,snoop抓包简介
  16. OKR-Periods of Words
  17. 2013 HTML5 峰会,HTML5 守望者的盛宴
  18. 238页(15万字)BH XXX县10MW渔光互补可研报告_V1.1
  19. 图书管理系统 (C语言数据结构)
  20. 电磁场学习一__导论

热门文章

  1. WIN10修改时间到2050年以后,出现屏幕闪烁资料搜索
  2. 鸿蒙osbeta版本审核要多久,已有版主回复我,鸿蒙2.0beta版审核周期,大家耐心等待吧...
  3. 小妲己智能机器人要连接wifi吗_科沃斯扫地机器人怎么连接wifi
  4. sqlyog如何查看mysql的版本_【转】烂泥:查看MySql版本号命令
  5. js去除html空格字符,js去掉html标签和去掉字符串文本的所有的空格
  6. C++封装一个音乐播放按钮
  7. 基于Windows API的VC++串口通信详解
  8. 佳能发布19um像素的全高清视频传感器
  9. 几款常用的SSH工具
  10. 用Redis作为消息队列的使用方法——附C#源码