关于 Android多渠道打包

关于Android需要多渠道打包的意义不需要多说,众多Android应用的分发平台,我们需要进行各种数据的统计。

1,360加固保

   这种方式非常简单,只需要在加固前设置好多渠道配置便可,上传apk便可以生成各渠道包。

2,Android studio

(1)在manifest.xml中添加 

    android:name="UMENG_CHANNEL"

    android:value="${UMENG_CHANNEL_VALUE}" />

(2)在build.gradle 设置productFlavors

在Android节点下添加:

productFlavors {

     //配置多渠道打包平台

       xiaomi {    }

      baidu {

        //在默认的的id和name后面追加,使用这种方式可以同时安装测试和正式环境的apk,也可以使用 applicationId等属性覆盖性设置。未设置则使用默认设置

           applicationIdSuffix ".baidu"

          versionNameSuffix "-baidu"

      }

   }

//统一设置所有平台使用名字替换UMENG_CHANNEL_VALUE值,也可以在上面每个凭条分别设置

 productFlavors.all {

        flavor -> flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]

 }

这样打包的时候选择所有Flavor就可以同时打包出所有平台的apk

(3)如果在不同平台需要配置不同的资源文件,在src目录下建立不同平台的文件夹,名字与平台名称一致,目录结构同main文件夹即可

(4)测试打包出来的UMENG_CHANNEL_VALUE值


private String getApplicationMetaValue(String name) {

String value ="";

try {

ApplicationInfo applicationInfo = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);

value = applicationInfo.metaData.getString(name);

}catch (PackageManager.NameNotFoundException e) {

e.printStackTrace();

}

return value;

}


getApplicationMetaValue("UMENG_CHANNEL");即可

你可能感兴趣的:(关于 Android多渠道打包)