场景:

不同的客户可能初始化的baseUrl不同,如果每次打包都去修改constant里的baseUrl配置就很麻烦。

做法:

  1. 在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'        }    }}
  1. 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";}
  1. 在代码中使用。我把项目用的常量放在了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;}
  1. 打包时,选择相应的flavor就可以了。

想深入了解Gradle?官方Gradle Tips在此

更多相关文章

  1. PhoneGap系列专题之二:使用PhoneGap云服务在线打包应用到Android
  2. Android IntentFilter data标签
  3. 在Android上使用Http客户端的选择(译文)
  4. Android 自定义标签属性设置及使用
  5. Android UI优化之include标签的使用
  6. 模仿android新浪微博手机客户端项目
  7. android客户端首次进入轮播引导图(一)
  8. android --- listview 优化+复杂UI 《中航信android客户端实战
  9. H5案例分享:使用JS判断客户端、浏览器、操作系统类型

随机推荐

  1. 一种基于Android智能手机的远程视频监控
  2. Android的API Demos
  3. android自定义ListView背景
  4. Android图形图像使用总结
  5. 【笔记】VisionMobile:扁平、扩展、挖掘,Go
  6. Android(安卓)Butterknife 框架源码解析(2
  7. Android(安卓)解决hellocharts与ViewPage
  8. Android一个页码的导航条
  9. 2012-04-10 16:32 android与WEB服务器交
  10. Android(安卓)UI之ImageView