亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android多渠道打包時怎么獲取當前渠道

發布時間:2021-05-11 11:33:43 來源:億速云 閱讀:180 作者:小新 欄目:移動開發

這篇文章主要介紹Android多渠道打包時怎么獲取當前渠道,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

Android是什么

Android是一種基于Linux內核的自由及開放源代碼的操作系統,主要使用于移動設備,如智能手機和平板電腦,由美國Google公司和開放手機聯盟領導及開發。

作為Android app,發布多個分發平臺是常規操作。然后,有時由于個渠道面對的用戶不同,或平臺審核標準不同,需要在各渠道使用不同的業務邏輯,這就需要根據渠道使用選擇差異化代碼。

這里把簡單的代碼記一下。

首先,分渠道打包很簡單。

在項目的build.gradle里設置

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 設置。

defaultConfig {
    ...
    flavorDimensions "money"
  }

設置維度主要是為了管理方便。

這個項目里總共設置了三個渠道

其中 UMENG_CHANNEL_VALUE 可以隨便命名,不過項目里的友盟統計會需要用到渠道名,所以這里就用UMENG的命名方法了。

接下來就是獲取當前的渠道名,這樣就可以根據不同的渠道包設置不同的邏輯,比如設置某一模塊在某些平臺發布的版本隱藏,而再另一些平臺的版本上顯示。

首先,需要在 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;
      //按渠道設置差異化代碼
      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();
    }

以上是“Android多渠道打包時怎么獲取當前渠道”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兴义市| 通辽市| 陆川县| 丹江口市| 平陆县| 崇州市| 贵南县| 漾濞| 精河县| 宁城县| 海淀区| 库尔勒市| 临沧市| 修文县| 水富县| 林周县| 巴塘县| 柘荣县| 金堂县| 吉木萨尔县| 黄大仙区| 武义县| 洞头县| 黄梅县| 梁河县| 剑河县| 读书| 五台县| 葫芦岛市| 讷河市| 黑河市| 沧州市| 东乌| 宁乡县| 嘉兴市| 双江| 贞丰县| 虎林市| 静宁县| 英德市| 庆元县|