Android 中Gradle客户化参数配置
16lz
2021-01-23
场景:
不同的客户可能初始化的baseUrl不同,如果每次打包都去修改constant里的baseUrl配置就很麻烦。
做法:
- 在app的gradle里android标签下增加productFlavors标签,来罗列不同客户(渠道)。
android { ... flavorDimensions 'version'//命名维度需要加上 productFlavors{ normal{//客户1 buildConfigField('String','BASE_URL_ADDR','"http://www.normal.com"')//注意这里字符串值写法 dimension 'version' } axb{//客户2 buildConfigField('String','BASE_URL_ADDR','"http://www.axb.com"') dimension 'version' } }}
- Sync Now Gradle后,会自动生成一个BuildConfig文件
/** * Automatically generated file. DO NOT MODIFY */package com.example.activity;public final class BuildConfig { public static final boolean DEBUG = Boolean.parseBoolean("true"); public static final String APPLICATION_ID = "com.example.activity"; public static final String BUILD_TYPE = "debug"; public static final String FLAVOR = "normal"; public static final int VERSION_CODE = 3; public static final String VERSION_NAME = "1.0"; // Fields from product flavor: normal public static final String BASE_URL_ADDR = "http://www.normal.com";}
- 在代码中使用。我把项目用的常量放在了Constant类,把BuildConfig.BASE_URL_ADDR赋值给BASE_URL
import static com.example.activity.BuildConfig.BASE_URL_ADDR;/** */public class Constant { public static final String BASE_URL = BASE_URL_ADDR;}
- 打包时,选择相应的flavor就可以了。
想深入了解Gradle?官方Gradle Tips在此
更多相关文章
- PhoneGap系列专题之二:使用PhoneGap云服务在线打包应用到Android
- Android IntentFilter data标签
- 在Android上使用Http客户端的选择(译文)
- Android 自定义标签属性设置及使用
- Android UI优化之include标签的使用
- 模仿android新浪微博手机客户端项目
- android客户端首次进入轮播引导图(一)
- android --- listview 优化+复杂UI 《中航信android客户端实战
- H5案例分享:使用JS判断客户端、浏览器、操作系统类型