首页 > 代码库 > Android开发:《Gradle Recipes for Android》阅读笔记(翻译)3.1——使用Build Types

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)3.1——使用Build Types

问题:

你想要自定义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”设置里面查看完整的版本名。

技术分享

 

Android开发:《Gradle Recipes for Android》阅读笔记(翻译)3.1——使用Build Types