variants
现象描述
开发一个app避免不了在多种环境下运行,比如开发环境、测试环境、正式环境,而根据不同环境要配置不同的变量,在以前,我都是通过注释相关代码实现的,显然这样比较麻烦。
进入正题,那么如何可以一键更改配置呢?
步骤一:配置build.gradle文件的productFlavors节点
productFlavors {
moon {//配置的名称,可以随便取
// 具体配置,见后面讲解
}
moon_test {//配置的名称,可以随便取
//具体配置,见后面讲解
}
...//还可以创建很多个
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
步骤二:创建不同的配置文件
在工程src目录下,创建以 配置名称 为名的包,并依此创建Java.com.pengkv.moon 包
-moon
-...
-build
-src
-main
-moon(配置名)
-java.com.pengkv.moon
-各种配置文件
-moon_test(配置名)
-java.com.pengkv.moon
- 各种配置文件(各个配置包下的对应名称要一样)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
其中moon包下的LogUtil代码如下
public class LogUtil {
public static void logTag() {
Log.v("---->", "我是版本一");
}
}
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
moon_test包下的LogUtil代码如下
public class LogUtil {
public static void logTag() {
Log.v("---->", "我是版本二");
}
}
- 1
- 2
- 3
- 4
- 5
- 1
- 2
- 3
- 4
- 5
步骤三:在左侧菜单栏点击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"]
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
然后在AndroidManifest.xml引用不同配置的值
<application
android:icon="@mipmap/ic_launcher"
android:label="${APP_NAME}"//引用productFlavors里面的配置值
android:theme="@style/AppTheme">
<activity>
//...
</activity>
</application>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
附:build.gradle说明图
相关阅读
本文转自:https://blog.csdn.net/misayaaaaa/article/details/53786215第一章全部题目(第一章基础较多)http://blog.csdn.net/misa
Handler是 Android中用来更新UI 的一套消息处理机制。Handler 允许线程间发送Message或Runnable对象进行通信。在Android中UI修改
由于项目需要,需要在国产系统(银河麒麟系统--飞腾cpu-arm64)上用firefox加载一个npapi插件,而firefox是一个32位的浏览器,而银河
textfile,sequencefile和rcfile的使用与区别详解
hive在创建表时默认存储格式是textfile,或者显示自定义的stored as textfile.很多人知道hive常用的存储格式有三种,textfile,seque
DNS协议详解及报文格式分析 Posted on 2017-06-18 by Jocent — No Comments ↓ 目录一. DNS协议理论知识 1.1. 域名结构1.2. 域