Android多渠道打包

2023-08-28  本文已影响0人  GameProgramer

什么是多渠道打包

在不同的应用市场可能有不同的统计需求,需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。在安装包中添加不同的标识、资源、图标等,以此区分各个渠道,方便统计app在市场的各种数据。

多渠道打包大体可分为以下步骤:

配置gradle文件

编辑rootProject/app/build.gradle

android {
  defaultConfig {
    flavorDimensions "versionCode"
  }
  // 多应用打包
  productFlavors {
      // 默认
      main {
          manifestPlaceholders = [app_name:"默认名称",app_icon:"@mipmap/ic_launcher"]
          applicationId "com.example.test.main"
          // 设置 resValue 环境变量
          resValue("string","product_value","main")
      }

      app1 {
          manifestPlaceholders = [app_name:"名称1",app_icon:"@mipmap/ic_launcher1"]
          applicationId "com.example.test.app1"
          resValue("string","product_value","app1");
      }

      app2 {
          manifestPlaceholders = [app_name:"名称2",app_icon:"@mipmap/ic_launcher2"]
          applicationId "com.example.test.app2"
          resValue("string","product_value","app2")
      }
  }

配置AndroidManifest.xml

配置AndroidManifest.xml部分元素为可替换,如icon、label、包名相关

<application
  android:icon="${app_icon}"
  android:label="${app_name}">
  <provider
      android:name="androidx.core.content.FileProvider"
      android:authorities="${applicationId}.fileProvider"
      android:exported="false"
      android:grantUriPermissions="true">
      <meta-data
          android:name="android.support.FILE_PROVIDER_PATHS"
          android:resource="@xml/file_paths"/>
  </provider>
</application>

更新资源文件

导入gradle配置所需资源文件如图片等,即上述mipmap/ic_launcher1mipmap/ic_launcher2

生成APK

Build -> Generate Signed Bundle or APK -> APK -> 选择多个多渠道包 -> Finish

至此多渠道打包完成,代码中可轻松获取资源、版本数据等

// 获取 resValue
String productValue = getResources().getString(R.string.product_value);

// 判断版本渠道
if(BuildConfig.FLAVOR.equals("main")) {
  // ...
}
上一篇下一篇

猜你喜欢

热点阅读