Android Studio多渠道打包如何使用不同的資源,依賴和java程式碼
阿新 • • 發佈:2019-01-31
第一步:在build.gradle檔案中,設定productFlavors實現多渠道
//例項
productFlavors {
baidu {
applicationId "cn.fangz.baidu"
// 對resValue在java程式碼中的使用:String app_id = getResources().getString(R.string.app_id);
resValue("string", "app_id", "50074")
resValue("string", "app_start" , "1")
// 對manifestPlaceholders中資源的使用:在AndroidManifest.xml檔案中的application節點下
// andorid:icon="${icon}"
// android:app_name="${app_name}"
manifestPlaceholders = [app_name: "@string/app_name_agiledata", icon: "@drawable/ic_launcher"]
}
wandoujia {
applicationId "cn.fangz.wandoujia"
resValue("string", "app_id", "50032")
resValue("string", "app_start", "0")
manifestPlaceholders = [app_name: "@string/app_name_michelin", icon: "@drawable/ic_launcher"]
}
weixin {
applicationId "cn.fangz.weixin"
resValue("string" , "app_id", "50079")
resValue("string", "app_start", "1")
manifestPlaceholders = [app_name: "@string/app_name_citic", icon: "@drawable/ic_launcher"]
}
}
第二步:實現不同的渠道用不同的jar包或者依賴
// 註釋掉這一句,這句的作用是自動載入libs裡的所有的.jar檔案
// compile fileTree(include: ['*.jar'], dir: 'libs')
// 不同渠道依賴不同的包的格式:渠道名+Compile,如wandoujiaCompile就是wandoujia獨有的,完整例項
wandoujiaCompile files('libs/libammsdk_weixin.jar')
wandoujiaCompile files('libs/open_sdk_r5509_qq_lite.jar')
第三步:在專案的src資料夾下建立跟渠道名同名的資料夾
如建立michelin資料夾,級別跟main同級,在渠道資料夾下有兩種型別的檔案會被用到,一種是資原始檔,一種的java程式碼檔案,資原始檔跟在main中的資原始檔使用的方式方法是一樣的,有不同的資原始檔時,只要命名跟main檔案中的資源命名是樣的,就會自動替換掉main中的資原始檔,不過java資料夾下面的java檔案不太一樣,不會自動替換掉main中的java檔案,所以使用的時候,如果是渠道獨有的java檔案的話,在main中就不要存在該java檔案就行,否則會報檔案重複的錯誤。