Android多渠道打包時獲取當(dāng)前渠道的方法
作為Android app,發(fā)布多個分發(fā)平臺是常規(guī)操作。然后,有時由于個渠道面對的用戶不同,或平臺審核標(biāo)準(zhǔn)不同,需要在各渠道使用不同的業(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-06android實現(xiàn)自動關(guān)機的具體方法
android實現(xiàn)自動關(guān)機的具體方法,需要的朋友可以參考一下2013-06-06Android實現(xiàn)仿excel數(shù)據(jù)表格效果
這篇文章主要介紹了Android實現(xiàn)仿excel數(shù)據(jù)表格效果的實現(xiàn)代碼,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-10-10android studio 安裝完成ButterKnife插件卻無法使用(解決方案)
這篇文章主要介紹了android studio 安裝完成ButterKnife插件卻無法使用問題,本文通過圖文并茂的形式給大家分享解決方法,對大家有非常好的幫助,需要的朋友可以參考下2020-03-03android studio 打包自動生成版本號與日期,apk輸入路徑詳解
這篇文章主要介紹了android studio 打包自動生成版本號與日期,apk輸入路徑詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03Android學(xué)習(xí)之Intent中顯示意圖和隱式意圖的用法實例分析
這篇文章主要介紹了Android學(xué)習(xí)之Intent中顯示意圖和隱式意圖的用法,以實例形式分析了Intent通訊的相關(guān)技巧與注意事項,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10