Android多渠道打包時獲取當(dāng)前渠道的方法
作為Android app,發(fā)布多個分發(fā)平臺是常規(guī)操作。然后,有時由于個渠道面對的用戶不同,或平臺審核標準不同,需要在各渠道使用不同的業(yè)務(wù)邏輯,這就需要根據(jù)渠道使用選擇差異化代碼。
這里把簡單的代碼記一下。
首先,分渠道打包很簡單。
在項目的build.gradle里設(shè)置
android {
...
productFlavors {
home_site {
dimension "money"
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "home_site"]
}
main_store {
dimension "money"
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "main_store"]
}
other_store {
dimension "money"
manifestPlaceholders = [UMENG_CHANNEL_VALUE: "other_store"]
}
}
}
其中的 dimension 是維度,通過 flavorDimensions 設(shè)置。
defaultConfig {
...
flavorDimensions "money"
}
設(shè)置維度主要是為了管理方便。
這個項目里總共設(shè)置了三個渠道
其中 UMENG_CHANNEL_VALUE 可以隨便命名,不過項目里的友盟統(tǒng)計會需要用到渠道名,所以這里就用UMENG的命名方法了。
接下來就是獲取當(dāng)前的渠道名,這樣就可以根據(jù)不同的渠道包設(shè)置不同的邏輯,比如設(shè)置某一模塊在某些平臺發(fā)布的版本隱藏,而再另一些平臺的版本上顯示。
首先,需要在 AndroidManifest.xml 文件定義信息變量。
<application
android:icon="@mipmap/logo"
android:label="@string/app_name"
android:name=".App"
android:roundIcon="@mipmap/logo"
android:theme="@style/AppTheme.NoActionBar">
...
<meta-data
android:name="CHANNEL_NAME"
android:value="${UMENG_CHANNEL_VALUE}" />
</application>
然后就可以在Application或Activity中獲取了。
ApplicationInfo applicationInfo = null;
try {
applicationInfo = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
if (applicationInfo == null) {
return;
}
String value = applicationInfo.metaData.getString("CHANNEL_NAME");
CommonConfig.CHANNEL_NAME=value;
//按渠道設(shè)置差異化代碼
System.out.println("CHANNEL_NAME:"+value);
switch (value){
case "home_site":
//邏輯1
break;
case "main_store":
//邏輯2
break;
case "other_store":
//邏輯3
break;
}
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android嵌套滾動和協(xié)調(diào)滾動的多種實現(xiàn)方法
嵌套的滾動主要方式就是這些,這些簡單的效果我們用協(xié)調(diào)滾動,如?CoordinatorLayout?也能實現(xiàn)同樣的效果,這篇文章主要介紹了Android嵌套滾動和協(xié)調(diào)滾動的多種實現(xiàn)方法,需要的朋友可以參考下2022-06-06
android實現(xiàn)自動關(guān)機的具體方法
android實現(xiàn)自動關(guān)機的具體方法,需要的朋友可以參考一下2013-06-06
Android實現(xiàn)仿excel數(shù)據(jù)表格效果
這篇文章主要介紹了Android實現(xiàn)仿excel數(shù)據(jù)表格效果的實現(xiàn)代碼,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-10-10
android studio 安裝完成ButterKnife插件卻無法使用(解決方案)
這篇文章主要介紹了android studio 安裝完成ButterKnife插件卻無法使用問題,本文通過圖文并茂的形式給大家分享解決方法,對大家有非常好的幫助,需要的朋友可以參考下2020-03-03
android studio 打包自動生成版本號與日期,apk輸入路徑詳解
這篇文章主要介紹了android studio 打包自動生成版本號與日期,apk輸入路徑詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Android學(xué)習(xí)之Intent中顯示意圖和隱式意圖的用法實例分析
這篇文章主要介紹了Android學(xué)習(xí)之Intent中顯示意圖和隱式意圖的用法,以實例形式分析了Intent通訊的相關(guān)技巧與注意事項,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10

