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

简介: 安卓多渠道打包

本文,将会讲解安卓以配置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--------------------------------------------------------------------

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

目录
相关文章
|
开发框架 前端开发 Android开发
Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势
本文深入探讨了 Flutter 与原生模块(Android 和 iOS)之间的通信机制,包括方法调用、事件传递等,分析了通信的必要性、主要方式、数据传递、性能优化及错误处理,并通过实际案例展示了其应用效果,展望了未来的发展趋势。这对于实现高效的跨平台移动应用开发具有重要指导意义。
1725 4
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
1072 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
Android开发
错误记录:调用原生TvSettings 的 com.android.tv.settings.device.storage.ResetActivity 无法启动
本文记录了一个Android TV设置中由于未设置`android:exported="true"`导致`com.android.tv.settings.device.storage.ResetActivity`无法被第三方app启动的错误,并通过添加该属性成功解决了问题。
452 1
|
前端开发 Java 编译器
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
714 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
|
Dart 前端开发 Android开发
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
757 1
【02】写一个注册页面以及配置打包选项打包安卓apk测试—开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草央千澈
|
存储 监控 API
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
app开发之安卓Android+苹果ios打包所有权限对应解释列表【长期更新】-以及默认打包自动添加权限列表和简化后的基本打包权限列表以uniapp为例-优雅草央千澈
2034 11
|
安全 Java Android开发
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
如何解压OTA升级包、编辑升级包内容(例如移除不需要更新的分区)、重新打包、签名以及验证OTA文件的过程。
2565 2
【Android P】OTA升级包定制,移除不需要更新的分区,重新打包签名
|
Android开发
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
【亲测,安卓版】快速将网页网址打包成安卓app,一键将网页打包成app,免安装纯绿色版本,快速将网页网址打包成安卓apk
3164 0
|
Java 开发工具 Android开发
详细解读Android开发DNK开发将.c文件打包成os
详细解读Android开发DNK开发将.c文件打包成os
328 0
|
jenkins 持续交付 开发工具
Android使用Jenkins打包自动维护sdk版本号
Android使用Jenkins打包自动维护sdk版本号
395 0

热门文章

最新文章