前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Gradle实现多渠道打包

使用Gradle实现多渠道打包

作者头像
蜻蜓队长
发布2018-08-03 14:16:54
4410
发布2018-08-03 14:16:54
举报
文章被收录于专栏:Android机动车Android机动车

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

先上图:

buildTypes

构建类型 默认情况下,Android插件自动为项目构建一个debug和一个release版本的应用。这两个版本的不同主要体现在在非开发机上的调试功能以及APK的签名方式。debug版本使用一个用公开的name/password创建的key来签名(这样构建的时候就不需要提示输入密码了)。release版本在构建的时候不会进行签名,而是稍后在做。

当然我们还可以定义其他类型,如preview版本等。

其属性有:

就不再一一介绍了,主要介绍一下常用的几个:

  • debuggable:标志是否可以debug调试
  • signingConfig:标志签名配置
  • proguardFiles:标志混淆文件
  • minifyEnabled:标志是否开启混淆
  • buildConfigField:自定义全局变量,供BuildConfig中创建和调用,其格式为:
代码语言:javascript
复制
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、清单文件中使用

定义了umengkey和umengchannel有什么用呢,我们知道manifestPlaceholders中就是定义清单文件的站位变量,所以接下来一个在清单文件中运用:

4、打包上线即可

今天只是简单的总结了下使用Gradle进行多渠道打包上线,有不对的地方希望大家指出。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Android机动车 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • buildTypes
  • productFlavors
  • 1、gradle中创建各产品:
  • 2、Sync Now
  • 3、清单文件中使用
  • 4、打包上线即可
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档