Android使用Gradle实现多渠道打包

这里我们主要用到gradle文件中的buildTypesproductFlavors,今天我们主要研究下它俩。

先上图:

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进行多渠道打包上线,有不对的地方希望大家指出。

获取更多精彩内容,请关注我的微信公众号——Android机动车

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值