码迷,mamicode.com
首页 > 移动开发 > 详细

【安卓进阶】Product Flavor基础玩法

时间:2019-08-30 17:26:56      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:安卓   用法   com   str   oid   var   ctf   玩法   lan   

在安卓项目开发中,大多时候总是有测试环境、生产环境之类的区别,在不使用Product Flavor时,我们一般都是通过手工改动代码来实现测试环境、生产环境的切换。

 

这样就造成了项目管理上的不便,频繁的手工在测试、生产代码中注释相关代码来切换环境,效率低下不说,而且从工程角度来说是不专业的。

 

Product Flavor

Product Flavor的出现解决了我们切换环境的问题,而且还拥有更加强大的功能,下面先了解一下最基本的使用方法,例如想建立一份测试环境、生产环境的构建变体。

 

在模块的build.gradle下的 android { } 内增加:

flavorDimensions "dev"
productFlavors {
    ceshi {
        dimension "dev"
        buildConfigField("String", "URL", "\"https://abc.com\"")
    }

    prod{
        dimension "dev"
        buildConfigField("String", "URL", "\"https://dfg.com\"")
    }
}

 

然后Sync Project with Gradle Files,在Android Studio的Build Variants下即可看到增加了4个构建变体

技术图片

 

下面来讲解一下上面的相关知识点:

(1)buildConfigField在构建的时候在环境中加入静态变量,在代码中通过BuildConfig类的属性进行访问,上面我们在两个环境中都添加了变量名为URL的变量,而且两个环境中的变量的值均不相同,在项目的代码中我们可以使用BuildConfig.URL进行访问。

(2)为什么会出现4个构建变体:

    > 构建变体 = [风格维度的风格数1]  * [风格维度的风格数2] * ......   * [Release | Debug],上面我们定义了一个风格纬度:dev,其中的风格数是:ceshi、prod,所以 [ceshi | prod] * [Release | Debug] 等于4个构建变体。

(3)可以定义多个风格纬度吗?

    > 可以,例如定义两个风格维度:flavorDimensions "dev", "lan",那么构建变体的数目:[dev维度的风格数] *  [lan维度的风格数]  * [Release | Debug]

 

通过上面的基础用法,已经能处理好测试环境、生产环境切换麻烦的问题,而且每个环境都能定义不同的变量值,这样就能使工程的代码更加简洁。

【安卓进阶】Product Flavor基础玩法

标签:安卓   用法   com   str   oid   var   ctf   玩法   lan   

原文地址:https://www.cnblogs.com/nicojerry/p/11435968.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!