1粒氧、配置 gradle 文件
./app/build.gradle
android {
defaultConfig {
flavorDimensions "default"
}
// 多應(yīng)用打包
productFlavors {
// 默認
defaults {
manifestPlaceholders = [app_name:"默認名稱",app_icon:"@mipmap/ic_launcher"]
applicationId "com.example.xxx.defaults"
// 設(shè)置 resValue 環(huán)境變量
resValue("string","product_value","defaults")
}
test1 {
manifestPlaceholders = [app_name:"名稱1",app_icon:"@mipmap/ic_launcher1"]
applicationId "com.example.xxx.test1"
resValue("string","product_value","test1");
}
test2 {
manifestPlaceholders = [app_name:"名稱2",app_icon:"@mipmap/ic_launcher2"]
applicationId "com.example.xxx.test2"
resValue("string","product_value","test2")
}
}
// 打包不檢查錯誤
lintOptions {
checkReleaseBuilds false
abortOnError false
}
}
2肆资、配置 AndroidManifest.xml
android:authorities
設(shè)置為唯一
<application
android:icon="${app_icon}"
android:label="${app_name}">
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.fileProvider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/>
</provider>
</application>
3、注釋或刪除 strings.xml
./app/src/main/res/values/strings.xml
<resources>
<!-- <string name="app_name">xxx</string>-->
</resources>
4锤岸、導(dǎo)入多個圖標(biāo)
可使用 iconfont 圖標(biāo)下載透明 png 圖標(biāo)擦秽,使用 Image Asset 導(dǎo)入圖標(biāo)
選中 res 目錄右鍵 -> New -> Image Asset -> Foreground Layer(配置前景圖標(biāo)) -> Background Layer(配置背景顏色) -> Next
5、在代碼中獲取版本數(shù)據(jù)
// 獲取 resValue
String product_value = getResources().getString(R.string.product_value);
// 判斷版本
if(BuildConfig.FLAVOR.equals("defaults")) {
// ...
}
6暮的、生成 apk
Build -> Generate Signed Bundle or APK -> APK -> 選擇多個 Debug - Finish