安卓进阶Product Flavor基础玩法

Posted nicojerry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓进阶Product Flavor基础玩法相关的知识,希望对你有一定的参考价值。

在安卓项目开发中,大多时候总是有测试环境、生产环境之类的区别,在不使用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基础玩法的主要内容,如果未能解决你的问题,请参考以下文章

安卓自定义View进阶 - Path之完结篇(伪)

干货: 在 Flutter 项目下安卓 flavor 打包配置实践 | 开发者说·DTalk

干货: 在 Flutter 项目下安卓 flavor 打包配置实践 | 开发者说·DTalk

游戏下载 | 安卓公测明日开启,全新玩法丰厚福利数不过来!

安卓自定义View进阶-分类与流程

[17]Android视频教程 安卓开发工程师基础到进阶 全套含资料 高清视频教程[35G]