Android创建不同的productFlavors

2021/01/20 09:21
阅读数 721

构建类型

构建类型 = productFlavors + buildTypes(就不翻译成中文了, 英文看着顺眼些)

productFlavors

flavorDimensions "api", "mode"

    productFlavors {
   
   
        demo {
   
   
            dimension "mode"
        }

        full {
   
   
            dimension "mode"
        }

        minApi24 {
   
   
            dimension "api"
            minSdkVersion 24
            versionCode 30000 + android.defaultConfig.versionCode
            versionNameSuffix "-minApi24"
        }

        minApi23 {
   
   
            dimension "api"
            minSdkVersion 23
            versionCode 20000 + android.defaultConfig.versionCode
            versionNameSuffix "-minApi23"
        }

        minApi21 {
   
   
            dimension "api"
            minSdkVersion 21
            versionCode 10000 + android.defaultConfig.versionCode
            versionNameSuffix "-minApi21"
        }

    }

flavorDimensions翻译为产品的维度,这里分为了api和mode,写在第一个的优先级最高
demo、full、minApi24、minApi23、minApi21这写产品必须属于上面的两种唯独

demo {
   
   
	dimension "mode"
}

例如demo属于mode纬度
现在有两种维度
[minApi24, minApi23, minApi21][Demo, Full]

buildTypes

buildTypes {
   
   
        release {
   
   
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
        }
        debug {
   
   
            debuggable true
            minifyEnabled false
            zipAlignEnabled false

        }
    }

整合

[minApi24, minApi23, minApi21][Demo, Full][Debug, Release]
在这里插入图片描述

为不同的构建类型配置代码

目录

在这里插入图片描述

结构

main

放置一些基础的东西
在这里插入图片描述

public class Config {
   
   
    public static boolean isDebug = false;
}

public class MainActivity extends BaseActivity {
   
   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
   
   
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = findViewById(R.id.tv);
        tv.setText(UrlTest.webUrl());
        TextView status = findViewById(R.id.status);
        com.yaoyan.scan.config.Config.setBug();
        status.setText(Config.isDebug + "");
    }
}

debug&release

在这里插入图片描述

release中设置为false

public class Config {
   
   
    public static void setBug() {
   
   
        com.yaoyan.scan.Config.isDebug = false;
    }
}

debug中设置为true

public class Config {
   
   
    public static void setBug() {
   
   
        com.yaoyan.scan.Config.isDebug = true;
    }
}

当切换在这里插入图片描述时会对代码进行不同的设置

代码合并规则

在这里插入图片描述

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部