Android Studio多渠道打包
我們開發一個APP在上傳應用市場之前,有時候會遇到要根據不同平台打多個apk包的問題。由於Android的應用市場比較多,主流的應用市場就有應用寶,百度手機小幫手,豌豆莢等等,還不包括其他的。一個一個打包非常麻煩,但通常打多個包主要是因為有的應用市場平台對引導頁有特殊要求,或者第二屏廣告頁要加上他們的logo(申請應用市場首發的時候)所以多渠道打包是必須要做的一個任務,今天我就來講一下我學習和實現多渠道打包的過程。1.首先建立一個小工程,並且建立一個類“TheSecondActivty(第二屏廣告頁)”和它的布局檔案“activity_second”,然後開啟資訊清單檔,加上一個“meta-data”,如
其中的“XIAO_GUIDANCE”就是我們後面要在代碼中用來判斷的一個依據,而“XIAO_GUIDANCE_VALUE”在下面的build.gradle檔案中要用到。如果還有其他渠道的引導頁要單獨設定的話就新增一個類似的met-data即可;2.開啟app下面的build.gradle檔案,注意是圖中選中的這個,而不是底部的那個:開啟之後,在這個設定檔中添加下面這兩段代碼,舉例如:productFlavors {
渠道名稱 {}
}
productFlavors.all {
flavor -> flavor.manifestPlaceholders = [資訊清單檔中的meta-data設定的value名稱: name]
}3.開啟第二屏廣告頁的類,通過ApplicationInfo擷取到這個meta-data,通過判斷meta-data是否包含“xiaomi”,這裡的“xiaomi”也就對應上面的渠道名稱,然後設定第二屏廣告頁的顯示圖片。具體代碼如下,非常的簡單:
try { ApplicationInfo appInfo = this.getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); String reStr = appInfo.metaData.getString("XIAOMI_GUIDANCE"); if(reStr.equals("xiaomi")) { rlBackground.setBackgroundResource(R.drawable.guidance_xiaomi); } else { rlBackground.setBackgroundResource(R.drawable.guidance); }} catch (PackageManager.NameNotFoundException e) { e.printStackTrace();}4.代碼寫完之後就可以打包了,簡單的打包過程我之前的部落格有提到,所以這裡就不說了,直接,如所示在Flavors一欄中出現了兩個選項,也就是我們在build.gradle裡面加的渠道:打包完成後,工程中會出現如所示的兩個Apk:5.最後,檢驗運行,查看圖片顯示,到這裡,我們的多渠道打包就算實現了。左邊是小米的(有logo),右邊是應用寶的(沒有logo):