productFlavors的使用

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/f552126367/article/details/86502481

一、前言

productFlavors是多版本打包的实现方式,正常开发中一般不会用到,但是项目中如果需要打包多个不同包名的版本,笨方法就是多个工程,但是维护起来实在是太麻烦了,但可以使用productFlavors,可以对APP名称、APP加载内容、APP中显示的文字进行分别编译。

二、实现代码

1、在build中配置

productFlavors {
    //新建产品ApkTest 
    apktest {
        //程序包名
        applicationId "com.wmj.a"
        //不同渠道号
        manifestPlaceholders = [UMC:"product-Complete"]
        //versionName
        versionName "1.0.0"
        //versionCode
        versionCode 1
        //APP名称,可以在androidMainfest中引用
        resValue "string", "app_name", "测试APK"
        //可以在程序中通过buildConfig引用
        buildConfigField "String", "TITLE", '"测试APK"'

    }
    //新建产品BTest 
    BTest {
        //程序包名
        applicationId "com.wmj.b"
        //不同渠道号
        manifestPlaceholders = [UMC:"product-Temp"]
        //versionName
        versionName "2.1.1"
        //versionCode
        versionCode 2
        //APP名称,可以在androidMainfest中引用
        resValue "string", "app_name", "正式APK"
        //可以在程序中通过buildConfig引用
        buildConfigField "String", "TITLE", '"正式APK"'
    }

2、引用build中的resValue方式

相当于在res--values下的引用方式相同

3、引用资源文件方式:

需要在src下创建资源文件夹,如下图所示,则会根据文件名称自动引入不同的图片。

4、如果有debug和release的不同版本的配置文件,可以配置在defaultConfig或buildType中配置Mainfestplacehoders:

android {
    compileSdkVersion 23
    buildToolsVersion '25.0.0'
    defaultConfig {
        manifestPlaceholders = [STAT_KEY    : "1111111111111",
                                STAT_CHANNEL: "rrrrF"]
    }

5、引用方式:在androidMainfest.xml中如下代码

 android:value="${STAT_KEY}"

猜你喜欢

转载自blog.csdn.net/f552126367/article/details/86502481