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

build Variants创建不同配置的app(图文详解)

时间:2015-10-26 15:37:24      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:build   variants   不同配置   不同版本   配置环境   

现象描述

开发一个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说明图

技术分享

版权声明:本文为博主原创文章,未经博主允许不得转载。

build Variants创建不同配置的app(图文详解)

标签:build   variants   不同配置   不同版本   配置环境   

原文地址:http://blog.csdn.net/pengkv/article/details/49423797

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