安卓多渠道打包(一)原生多渠道打包

本文,将会讲解安卓以配置gradle的方式实现多渠道打包。
开发环境:androidstudio版本为3.0以上
马上发车:

(一)生成一个签名文件

通过AndroidStudio中的build-->generate signed bundle or apk生成一个软件签名文件。


step1

step2

至此,app的签名文件已经生成,可以在生成的目录里面查看。本项目,签名文件存放在项目的根目录。
目录截图如下:


目录结构

项目的build.gradle配置打包时签名代码如下:
签名配置

至此,项目打包时,签名配置完成。

(二)配置生成的渠道(渠道名字)

首先,配置的是主app项目的AndroidManifest文件,增加一个meta标签,代码如下:


AndroidManifest配置

再而,在build.gradle文件中定义相关渠道信息,截图如下:


渠道信息定义

至此,可以试着rebuild一下project,发现报错了,提示信息如下:


错误提示

出现该错误原因,是因为:
Android项目打包时使用了productFlavors分包,需要所有的flavors都必须属于同一个favorDimensions属性。
代码修改如下:

增加配置

至此,关于多渠道打包配置已经完成,下面可以进行打包操作了,打包出来的目录结构如下:


打包选项

打包生成目录

(三)获取当前渠道的代码:

public static String getChannel(Context context) {
        try {
            PackageManager pm = context.getPackageManager();
            ApplicationInfo appInfo = pm.getApplicationInfo(context.getPackageName(), PackageManager.GET_META_DATA);
            //key为标签中的name
            String channel = appInfo.metaData.getString("UMENG_CHANNEL");
            if (!TextUtils.isEmpty(channel)) {
                return channel;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

最后,附上demo连接:码云

that's all--------------------------------------------------------------------

备注:经过测试,该方式打出的渠道包,通过三方加固后,依然稳定存在,所以建议使用该方式打包,缺点是耗时。

你可能感兴趣的:(安卓多渠道打包(一)原生多渠道打包)