1. 程式人生 > >Android Studio多渠道打包如何使用不同的資源,依賴和java程式碼

Android Studio多渠道打包如何使用不同的資源,依賴和java程式碼

第一步:在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檔案就行,否則會報檔案重複的錯誤。