實際開發(fā)中蛤奥,我們可能需要對項目進行多版本打包,比較笨的方法是需要打什么包就修改相關配置净薛,打出來就行了,但是
這種做法太過于笨重俘闯。下面講下多版本打打包的實現(xiàn)方法
多版本打包
需求場景:同一個手機安裝同一個apk的不同版本潭苞。比如安裝兩個不同生產環(huán)節(jié)的apk忽冻、beta版及pro版等真朗。
實現(xiàn):
首先打開app下的build.gradle 找到defaultConfig
defaultConfig{
applicationId"com.zhangkx.androidprinter"
minSdkVersion15
targetSdkVersion25
versionCode1
versionName"1.0"
testInstrumentationRunner"android.support.test.runner.AndroidJUnitRunner"}
這里的defaultConfig就是默認的版本配置,也就是主配置僧诚,如果想要配置多版本的話需要添加新的配置遮婶,
下面給出配置代碼
//配置更多版本的apk
productFlavors{
//beta版
Beta{
applicationId"com.zhangkx.androidprinter.beta"
//獲取string.xml文件總stryKey的值java代碼context.getResources().getString(R.string.versionKey);
resValue("string","versionKey","version_beta");}
//Pro版
Pro{
applicationId"com.zhangkx.androidprinter.pro"
//獲取string.xml文件總stryKey的值java代碼context.getResources().getString(R.string.versionKey);
resValue("string","versionKey","version_pro");
}
}
這樣在打包的時候就可以選擇打不通版本代碼,并且能安裝兩個不同版本的代碼到手機中
如果需要對不同版本設置不同的icon的話 可以這樣實現(xiàn)
android:allowBackup="true"
android:icon="${icon}" ? ///注意這里的寫法 ? 這里可以使用引用的icon?
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
gradle 這樣配置就可以了
//配置更多版本的apk
productFlavors{
//beta版
Beta{
applicationId"com.zhangkx.androidprinter.beta"
manifestPlaceholders=[app_name:"com.zhangkx.androidprinter.beta",icon:"@mipmap/icon"] //這里是設置對應版本的icon的?
//獲取string.xml文件總stryKey的值java代碼context.getResources().getString(R.string.versionKey);
resValue("string","versionKey","version_beta");
}
//Pro版
Pro{
applicationId"com.zhangkx.androidprinter.pro"
manifestPlaceholders=[app_name:"com.zhangkx.androidprinter.beta",icon:"@mipmap/ic_launcher_round"]
//獲取string.xml文件總stryKey的值java代碼context.getResources().getString(R.string.versionKey);
resValue("string","versionKey","version_pro");
}
}
當然湖笨,如果不同版本有特殊的標記或者api不一樣的話旗扑,也可以通過這種方式進行更改,到此慈省,多版本打包已經完成了