多渠道打包gradle配置
android studio 多渠道打包配置
在build.gradle 文件中配置信息
plugins {alias(libs.plugins.android.application)
}android {namespace 'com.example.mydemo'compileSdk 36defaultConfig {applicationId "com.example.mydemo"minSdk 29targetSdk 36versionCode 1versionName "1.0"testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"}buildTypes {debug {minifyEnabled false}release {minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'}}android.buildFeatures.buildConfig = trueflavorDimensions "app"productFlavors {base {applicationId "com.example.mydemo"dimension "app"versionCode 1versionName "1.0.0"//配置字段,在项目可能需要判断不同品牌兼容代码buildConfigField('String','brand','"BASE"')buildConfigField('boolean','isHello','true')buildConfigField('int','baseFieldInt','50')}huawei {applicationId "com.example.mydemo"dimension "app"versionCode 2versionName "1.0.1"buildConfigField('String','brand','"HUAWEI"')buildConfigField('boolean','isHello','true')buildConfigField('int','baseFieldInt','40')}xiaomi {applicationId "com.example.mydemo"dimension "app"versionCode 3versionName "1.0.2"buildConfigField('String','brand','"XIAOMI"')buildConfigField('boolean','isHello','true')buildConfigField('int','baseFieldInt','30')}}signingConfigs {base {storeFile file('../xxx.jks')storePassword 'saic_oimt'keyPassword 'saic_oimt'keyAlias = 'saic'}huawei {storeFile file('../xxx.jks')storePassword 'saic_oimt'keyPassword 'saic_oimt'keyAlias = 'saic'}xiaomi {storeFile file('../xxx.jks')storePassword 'saic_oimt'keyPassword 'saic_oimt'keyAlias = 'saic'}}compileOptions {sourceCompatibility JavaVersion.VERSION_11targetCompatibility JavaVersion.VERSION_11}applicationVariants.all { variant ->variant.outputs.all {//指定apk输出名称outputFileName = "Android_${variant.productFlavors[0].name}_v${variant.productFlavors[0].versionName}_${variant.buildType.name}_${buildTime()}.apk"}}
}static def buildTime() {def createTime = new Date().format("YYYYMMdd", TimeZone.getTimeZone("GMT+08:00"))return "${createTime}"
}dependencies {implementation libs.appcompatimplementation libs.materialtestImplementation libs.junitandroidTestImplementation libs.ext.junitandroidTestImplementation libs.espresso.core
}
public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//获取build.gradle中配置的品牌字段信息if (BuildConfig.brand.equals("BASE")){}}
}