问题:

你想要自定义debug和release的build types,并且新建一些新的types。

解决方案:

使用buildTypes块配置build types。

讨论:

build type决定了app如何被打包。默认的,android的gradle插件支持两种build type:debug和release。两种都在模块的build.gradle文件中的buildTypes块下定义。在新的项目下的buildTypes块如下:

例子中值显示了release的build,但是想要编辑默认配置可以很容易的增加debug块。每个块都可以支持一些列的属性。完整的属性和方法可以在http://google.github.io/android-gradle-dsl/current/index.html上查看。

在release里面,minifyEnaled和自动去除包里面没有用到的资源有关。如果设置为true,gradle也会去除没有用到的依赖库。这只有在shrinkrResources属性也被设置为true的时候才生效。

更多的细节可以查看https://developer.android.com/studio/build/shrink-code.html页面。

在buildtypes里面还有个属性叫debuggable。debug builds自动设置debuggable为true,其他builds都默认为false。

为了在同一个设备上安装不同build types的同一app,Android必须能够区分他们的应用ID。applicationIDsuffix属性可以允许gradle生成多个拥有不同id的apk。

android {
buildTypes {
debug {
applicationIDsuffix '.debug'
versionNameSuffix '-debug'
}
}
}

现在同一个设备上可以同时安装release和debug版本的app。如果你能看到设备配置,在Apps里面,你可以看到debug和release版本是同一个app。

如果要区分它们,可以分别选择每个版本在“App info”设置里面查看完整的版本名。

最新文章

  1. WCF学习之旅—实现支持REST服务端应用(二十三)
  2. JavaScript生成新标签的三个方法(摘抄自留)
  3. (Hibernate进阶)Hibernate映射——多对一单向关联映射(四)
  4. R语言中的循环函数(Grouping Function)
  5. html内容写入到文件中的时候出现‘TypeError: expected a character buffer object’错误
  6. 详解C#break ,continue, return
  7. 在SharePoint中无代码开发InfoPath应用: 获取当前用户信息
  8. 用C#实现RSS的生成和解析,支持RSS2.0和Atom格式
  9. Nginx/Apache图片缩略图技术
  10. 汉诺塔III 递推题
  11. DOM中的NodeList与HTMLCollection
  12. java对象引用传递和值传递的一些总结
  13. Python爬虫从入门到放弃(二十)之 Scrapy分布式原理
  14. 17089 最大m子段和
  15. 1086. Tree Traversals Again (25)
  16. java 对同一个文件进行读写操作
  17. 【webpack】流行的前端模块化工具webpack初探
  18. vue axios 简单封装以及思考
  19. Shiro入门 - 通过自定义Realm连数数据库进行授权
  20. 2017-2018-2 20165325 实验一《Java开发环境的熟悉》实验报告

热门文章

  1. 警惕rapidxml的陷阱(二):在Android上默认内存池分配数组过大,容易导致栈溢出
  2. chrome护眼模式
  3. uva 11584 Partitioning by Palindromes 线性dp
  4. Microsoft.VisualC 命名空间包含支持用 c + + 语言的代码生成和编译的类。 混合编程中使用COM接口指针
  5. Unity多媒体展示项目经验分享-ImageEffect+动态绑定
  6. html checkbox 实现全选/取消全选
  7. Python绘制分段函数
  8. 错误: ISO C++ 不同意在类内初始化很量静态成员
  9. js - 模块化开发的兼容exports的套路
  10. Atitit.播放系统规划新版本 and 最近版本回顾 v3  pbf.doc