打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Android gradle 中使用productFlavors

分渠道打包。

What

productFlavors是在gradle中配置多渠道的打包的工具。

Why

使用productFlavors区分不同的产品,定义不同的逻辑,使构建部分有差异的Android项目更加方便。

How

1.创建不同的产品

app:级别下的gradle文件中,加入productFlavors\

  1. android {
  2. compileSdkVersion 26
  3. buildToolsVersion "26.0.0"
  4. defaultConfig {
  5. ....
  6. }
  7. buildTypes {
  8. ....
  9. }
  10. sourceSets {
  11. ....
  12. }
  13. //创建productFlavors
  14. productFlavors {
  15. }
  16. }

2.创建不同的产品,并为不同产品分配专有属性

productFlavors下创建产品producttemp

  1. productFlavors {
  2. //新建产品product
  3. product {
  4. //程序包名
  5. applicationId "study.ung.differentsource.product"
  6. //不同渠道号
  7. manifestPlaceholders = [UMC:"product-Complete"]
  8. //versionName
  9. versionName "1.0.0"
  10. //versionCode
  11. versionCode 1
  12. }
  13. //新建产品temp
  14. temp {
  15. //程序包名
  16. applicationId "study.ung.differentsource.temp"
  17. //不同渠道号
  18. manifestPlaceholders = [UMC:"product-Temp"]
  19. //versionName
  20. versionName "2.1.1"
  21. //versionCode
  22. versionCode 2
  23. }
  24. //...Others

3.设置不同代码引用

如果项目中对不同产品区分不同的代码,比如服务器地址的区分,或者某些其他常量的区分。

1.先在src目录下简历对应的文件夹,比如java代码则建立,product/java,res文件夹则建立product/res

说明:当前选取的渠道文件夹颜色会与未选取的有差异

2.建立包名,建立Java类文件

注意:最好先切换到对应的产品类型,再建立包与类文件

3.在app-level下的gradle文件中设置sourceSets

  1. //不同产品不同的文件
  2. product {
  3. java.srcDirs = ['src/product/java']
  4. }
  5. temp {
  6. java.srcDirs = ['src/temp/java']
  7. }

4.设置不同的产品引入不同的包

使用方式:产品名Compile “xxx.xxx.xx”

  1. //不同产品引入不同的包
  2. productCompile "com.android.support:appcompat-v7:26.+"
  3. tempCompile "com.android.support.constraint:constraint-layout:1.0.2

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Android VersionName和VersionCode
Android几种多渠道打包
【AndroidManifest.xml详解】Manifest属性之versionCode,versionName
使用 Xcode 和 Android Studio 管理 iOS 和 Android 项目版本
Android系统内置应用更新或升级后被还原的原因
Android应用的自动升级、更新模块的实现
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服