Android使用Gradle实现多渠道打包
这里我们主要用到gradle文件中的buildTypes和productFlavors,今天我们主要研究下它俩。
先上图:
buildTypes
构建类型 默认情况下,Android插件自动为项目构建一个debug和一个release版本的应用。这两个版本的不同主要体现在在非开发机上的调试功能以及APK的签名方式。debug版本使用一个用公开的name/password创建的key来签名(这样构建的时候就不需要提示输入密码了)。release版本在构建的时候不会进行签名,而是稍后在做。
当然我们还可以定义其他类型,如preview版本等。
其属性有:
就不再一一介绍了,主要介绍一下常用的几个:
- debuggable:标志是否可以debug调试
- signingConfig:标志签名配置
- proguardFiles:标志混淆文件
- minifyEnabled:标志是否开启混淆
- buildConfigField:自定义全局变量,供BuildConfig中创建和调用,其格式为:
buildConfigField "boolean", "LOG_DEBUG", "false"
productFlavors
productFlavors顾名而思义,就是用于定义产品的特性,这是每个产品不同的地方。有了它我们可以用同一套代码创建不同的产品。设置productFlavors的方法如下:
在build.gradle中加入productFlavors结构
在其中每一种产品中可定义不用的属性,已创建不同的应用。
在每一种产品中,都可以类似defaultConfig进行属性设置,也有一些特殊属性,看个示例:
- applicationId: 应用包名
- versionCode:版本号
- versionName:版本名
- buildConfigField:自定义属性,和buildTypes中类似
- manifestPlaceholders:manifest文件中属性
好了,我们一起使用productFlavors进行多渠道打包:
1、gradle中创建各产品:
如果在各产品中声明不同的包名,那么它们就是不同的应用了,也就是说,可以同时安装在一个手机上。但我们不想这样,除了友盟渠道号不同外,其他都相同,所以我们只设置友盟渠道号:
2、Sync Now
Sync Now后,您就会发现,在Build Variants中:
您已经发现:
版本数=buildTypes* productFlavors
然后您就可以运行各渠道对应的应用了。
3、清单文件中使用
定义了umeng_key和umeng_channel有什么用呢,我们知道manifestPlaceholders中就是定义清单文件的站位变量,所以接下来一个在清单文件中运用:
4、打包上线即可
今天只是简单的总结了下使用Gradle进行多渠道打包上线,有不对的地方希望大家指出。
获取更多精彩内容,请关注我的微信公众号——安卓干货营!
上一篇: PHP MemCached 高级缓存配置
下一篇: Java文件操作
推荐阅读
-
Android使用Gradle实现多渠道打包
-
Android 使用Gradle进行多渠道打包详解
-
Android多渠道打包
-
Gradle在Android Studio中的简单使用
-
Android Gradle 多渠道打包
-
Android Gradle多渠道打包
-
Android Studio中Gradle使用详解
-
Android 项目打包aar,使用aar文件
-
AndroidStudio工程中的build.gradle中的buildTypes、productFlavors的多构建、多渠道打包APK
-
Android Studio 使用Gradle创建远程本地仓库,解决打包AAR包时丢失所有dependencies库