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

本文,将会讲解安卓以配置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为<meta-data>标签中的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--------------------------------------------------------------------

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

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.为什么要加固?由于安卓APP是基于Java的,所以极容易被破解,一个不经过加固的APP犹如裸奔一样,毫无防备。...
    沈溺_16e5阅读 2,472评论 0赞 10
  • 通常发版本时我们需要打很多渠道的包,360,应用宝,豌豆荚等等,安卓默认只打一个debug的包。那么如何进行多渠道...
    差得很远呢阅读 3,431评论 0赞 10
  • 为什么要多渠道打包? 当一款安卓产品开发周期完成,准备上线时,面对比较尴尬的现象就是国内的众多APP发布平台:例如...
    街头客阅读 4,292评论 4赞 18
  • 环境 OSXAndroidStudio 1.0 多渠道设置 渠道号 以友盟SDK为例,打包多渠道:GooglePl...
    SaiWu阅读 2,677评论 0赞 6
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 131,643评论 2赞 7

友情链接更多精彩内容