build Variants创建不同配置的app(图文详解)
来源:互联网 发布:淘宝到家怎么样 编辑:程序博客网 时间:2024/06/06 07:43
现象描述
开发一个app避免不了在多种环境下运行,比如开发环境、测试环境、正式环境,而根据不同环境要配置不同的变量,在以前,我都是通过注释相关代码实现的,显然这样比较麻烦。
进入正题,那么如何可以一键更改配置呢?
步骤一:配置build.gradle文件的productFlavors节点
productFlavors { moon {//配置的名称,可以随便取 // 具体配置,见后面讲解 } moon_test {//配置的名称,可以随便取 //具体配置,见后面讲解 } ...//还可以创建很多个 }
步骤二:创建不同的配置文件
在工程src目录下,创建以 配置名称 为名的包,并依此创建java.com.pengkv.moon 包
-moon -... -build -src -main -moon(配置名) -java.com.pengkv.moon -各种配置文件 -moon_test(配置名) -java.com.pengkv.moon - 各种配置文件(各个配置包下的对应名称要一样)
其中moon包下的LogUtil代码如下
public class LogUtil { public static void logTag() { Log.v("---->", "我是版本一"); }}
moon_test包下的LogUtil代码如下
public class LogUtil { public static void logTag() { Log.v("---->", "我是版本二"); }}
步骤三:在左侧菜单栏点击build Variants,并选择相应配置的版本运行
代码运行时可以发现,相同的代码运行却有不同结果
结果一:
结果二:
步骤四:配置AndroidManifest.xml文件
有些时候需要在AndroidManifest.xml里配置不同参数,比如应用名、版本号、应用ID等等,例如下图(生成不同应用名)
这个时候首先需要对productFlavors进行详细配置
productFlavors { moon { manifestPlaceholders = [BAIDU_SERVICE_VALUE: "zQDqX7GP3avIQTN0BoFSyhrF", APP_NAME : "@string/appName"] } moon_test { manifestPlaceholders = [BAIDU_SERVICE_VALUE: "kBONkZGEe0S2lYd6yOqq9MRx", APP_NAME : "@string/appName_test"] } }
然后在AndroidManifest.xml引用不同配置的值
<application android:icon="@mipmap/ic_launcher" android:label="${APP_NAME}"//引用productFlavors里面的配置值 android:theme="@style/AppTheme"> <activity> //... </activity> </application>
附:build.gradle说明图
3 0
- build Variants创建不同配置的app(图文详解)
- build Variants创建不同配置的app(图文详解)
- build Variants创建不同配置的app(图文详解)
- 安卓同一个程序通过build Variants创建不同的网络环境
- Build variants 的使用
- 使用Build Variants控制应用的多配置
- (九) Build Variants(构建变种版本)
- Android Studio 的build variants 没有 test artifact问题
- Android Studio 的build variants 找不到 test artifact问题
- Android Studio 的build variants 找不到 test artifact问题
- Gradle Plugin Samples 之 Gradle Build Variants(六)
- Gradle Plugin Samples 之 Gradle Build Variants(六)
- Gradle Plugin Samples 之 Gradle Build Variants(六)
- Android studio 修改 app的 build.gradle实现同一APP不同版本同时存在(同一APP安装N次)
- AndroidStudio1.4创建项目的build.gradle(Module:app)中的配置
- app目录下的build.gradle详解
- AndroidStudio打包全攻略---Gradle-Build Variants构建定制版App
- Android Studio打包全攻略----Gradle-Build Variants构建定制版App
- Linux修改U盘卷标方法
- 更好一点的Hello World
- 从一个匹配数字和字母密码的正则表达式的例子到零宽断言
- IOS中的XML解析之DOM和SAX
- 从K近邻算法、距离度量谈到KD树、SIFT+BBF算法
- build Variants创建不同配置的app(图文详解)
- 开始我的技术博客生涯
- Java一步一脚印—HashMap
- c++学习笔记(十二):C++编译器多态实现原理
- LeetCode:Reverse Integer
- Codeforces Round #327 (Div. 2) C - Median Smoothing
- 使用echarts时遇到的 function(){}()
- Windows下INF驱动安装文件内容分析
- Ubuntu关于build-essential