Android多渠道打包時(shí)獲取當(dāng)前渠道的方法
作為Android app,發(fā)布多個(gè)分發(fā)平臺(tái)是常規(guī)操作。然后,有時(shí)由于個(gè)渠道面對(duì)的用戶不同,或平臺(tái)審核標(biāo)準(zhǔn)不同,需要在各渠道使用不同的業(yè)務(wù)邏輯,這就需要根據(jù)渠道使用選擇差異化代碼。
這里把簡(jiǎn)單的代碼記一下。
首先,分渠道打包很簡(jiǎn)單。
在項(xiàng)目的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è)置維度主要是為了管理方便。
這個(gè)項(xiàng)目里總共設(shè)置了三個(gè)渠道
其中 UMENG_CHANNEL_VALUE 可以隨便命名,不過項(xiàng)目里的友盟統(tǒng)計(jì)會(huì)需要用到渠道名,所以這里就用UMENG的命名方法了。
接下來就是獲取當(dāng)前的渠道名,這樣就可以根據(jù)不同的渠道包設(shè)置不同的邏輯,比如設(shè)置某一模塊在某些平臺(tái)發(fā)布的版本隱藏,而再另一些平臺(tái)的版本上顯示。
首先,需要在 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(); }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android嵌套滾動(dòng)和協(xié)調(diào)滾動(dòng)的多種實(shí)現(xiàn)方法
嵌套的滾動(dòng)主要方式就是這些,這些簡(jiǎn)單的效果我們用協(xié)調(diào)滾動(dòng),如?CoordinatorLayout?也能實(shí)現(xiàn)同樣的效果,這篇文章主要介紹了Android嵌套滾動(dòng)和協(xié)調(diào)滾動(dòng)的多種實(shí)現(xiàn)方法,需要的朋友可以參考下2022-06-06android實(shí)現(xiàn)自動(dòng)關(guān)機(jī)的具體方法
android實(shí)現(xiàn)自動(dòng)關(guān)機(jī)的具體方法,需要的朋友可以參考一下2013-06-06Android自定義View實(shí)現(xiàn)圓形進(jìn)度條
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)圓形進(jìn)度條,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06Android實(shí)現(xiàn)仿excel數(shù)據(jù)表格效果
這篇文章主要介紹了Android實(shí)現(xiàn)仿excel數(shù)據(jù)表格效果的實(shí)現(xiàn)代碼,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10android studio 安裝完成ButterKnife插件卻無法使用(解決方案)
這篇文章主要介紹了android studio 安裝完成ButterKnife插件卻無法使用問題,本文通過圖文并茂的形式給大家分享解決方法,對(duì)大家有非常好的幫助,需要的朋友可以參考下2020-03-03Android編程實(shí)現(xiàn)拍照功能的2種方法分析
這篇文章主要介紹了Android編程實(shí)現(xiàn)拍照功能的2種方法,結(jié)合具體實(shí)例形式對(duì)比分析了Android通過調(diào)用系統(tǒng)攝像頭及程序調(diào)用照相機(jī)功能兩種實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2017-07-07android studio 打包自動(dòng)生成版本號(hào)與日期,apk輸入路徑詳解
這篇文章主要介紹了android studio 打包自動(dòng)生成版本號(hào)與日期,apk輸入路徑詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android學(xué)習(xí)之Intent中顯示意圖和隱式意圖的用法實(shí)例分析
這篇文章主要介紹了Android學(xué)習(xí)之Intent中顯示意圖和隱式意圖的用法,以實(shí)例形式分析了Intent通訊的相關(guān)技巧與注意事項(xiàng),具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10