Android Studio自带的多渠道打包方案

多渠道打包

  • 在不同的应用市场可能有不同的统计需求,需要为每个应用市场发布一个安装包,这里就引出了Android的多渠道打包。在安装包中添加不同的标识,以此区分各个渠道,方便统计app在市场的各种。
  • 使用三方插件美团Walle打包方案

第一步

  • Manifest.xml 中的application标签下添加meta-data
        <meta-data
            android:name="CHANNEL_NAME"
            android:value="${
      
      CHANNEL_VALUE}" />

第二步

  • app/build.gradle
android {
    
    
    ...

    flavorDimensions "test"

    productFlavors {
    
    
        xiaomi {
    
    }
        qihu360 {
    
    }
    }

    productFlavors.all {
    
     flavor ->
        flavor.manifestPlaceholders = [CHANNEL_VALUE: name]
    }

	//可选项,改名
    applicationVariants.all {
    
     variant ->
        variant.outputs.all {
    
    
            outputFileName = "app_${
      
      variant.productFlavors[0].name}_v${
      
      variant.versionName}.apk"
        }
    }
}

第三步

  • 打包
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

获取渠道信息

  • 获取渠道信息,根据CHANNEL_NAME,取到CHANNEL_VALUE
    private fun getChannel(): String? {
    
    
        try {
    
    
            val pm = packageManager
            val appInfo = pm.getApplicationInfo(packageName, PackageManager.GET_META_DATA)
            val channel = appInfo.metaData.getString("CHANNEL_NAME") // key为<meta-data>标签中的name
            if (!TextUtils.isEmpty(channel)) {
    
    
                return channel
            }
        } catch (e: Exception) {
    
    
            e.printStackTrace()
        }
        return null
    }

参考资料

猜你喜欢

转载自blog.csdn.net/yu540135101/article/details/113816322