这里我们主要用到gradle文件中的buildTypes和productFlavors,今天我们主要研究下它俩。
先上图:
构建类型 默认情况下,Android插件自动为项目构建一个debug和一个release版本的应用。这两个版本的不同主要体现在在非开发机上的调试功能以及APK的签名方式。debug版本使用一个用公开的name/password创建的key来签名(这样构建的时候就不需要提示输入密码了)。release版本在构建的时候不会进行签名,而是稍后在做。
当然我们还可以定义其他类型,如preview版本等。
其属性有:
就不再一一介绍了,主要介绍一下常用的几个:
buildConfigField "boolean", "LOG_DEBUG", "false"
productFlavors顾名而思义,就是用于定义产品的特性,这是每个产品不同的地方。有了它我们可以用同一套代码创建不同的产品。设置productFlavors的方法如下:
在build.gradle中加入productFlavors结构
在其中每一种产品中可定义不用的属性,已创建不同的应用。
在每一种产品中,都可以类似defaultConfig进行属性设置,也有一些特殊属性,看个示例:
好了,我们一起使用productFlavors进行多渠道打包:
如果在各产品中声明不同的包名,那么它们就是不同的应用了,也就是说,可以同时安装在一个手机上。但我们不想这样,除了友盟渠道号不同外,其他都相同,所以我们只设置友盟渠道号:
Sync Now后,您就会发现,在Build Variants中:
您已经发现: 版本数=buildTypes* productFlavors
然后您就可以运行各渠道对应的应用了。
定义了umengkey和umengchannel有什么用呢,我们知道manifestPlaceholders中就是定义清单文件的站位变量,所以接下来一个在清单文件中运用:
今天只是简单的总结了下使用Gradle进行多渠道打包上线,有不对的地方希望大家指出。