AndroidStudio部署多渠道打包环境(一)

对于游戏来说,需要上架国内很多家应用商店,还有一些小的渠道SDK,大大小小加起来也有几十家了,那么我们部署了多渠道打包环境之后就很方便了。

一 、配置游戏基本参数:在app下面的build.gradle文件里编辑,

android{ 

defaultConfig { 下面定义各种参数

1.、applicationId:包名,

minSdkVersion:最小支持安卓版本

targetSdkVersion:最大安卓支持版本,这个multiDexEnabled true 可以忽略,

versionCode:版本号 

versionName:版本

2. ndk这个 abiFilters 'armeabi-v7a','arm64-v8a' 设置游戏支持的架构,目前主流用的就是这俩

3.manifestPlaceholders:配置AndroidManifest下需要替换的关键字符,例如:

4.配置游戏需要的参数,例如自己定义的gameId还有应用商店的APPID这些参数,这个参数可以扩展,String: 类型,gameId: 字段的key,  8:代表字段的value

二、渠道参数单独配置:还是在android{ 下编辑

1、渠道标识:这个渠道配置中死神来了_official中的official字段要和上面定义的official渠道标识相同,同理死神来了_vivo的vivo字段也要和上面的vivo渠道标识相同

2、定义渠道SDK自己的包名和其他一些要求的参数,这里只写了gameId和APPID,这个可以自己看情况增加,需要注意的是这里增加了的字段,需要在上面1-4讲的地方增加相应字段的默认值。

3、配置不同icon: 

三、对渠道资源库做针对性依赖,这样打出来的APK只包含指定渠道的资源

1、这个vivolibrary依赖库可以用来写SDK接入的逻辑,新建vivolibrary方式是:右键根目录文件夹 new->module->Android Library。再右键空白地方new-> floder,新建文件夹vivo_aar,vivo_aa文件夹用来存放vivo的资源文件,例如aar文件。

2、vivolibrary依赖vivo_aar资源库,

3、vivo_aar资源库目录:因为渠道SDK可能不止一个aar文件,那么可以把多个aar文件都放在vivo_aar目录下,这里需要注要的是每个aar都需要单独引用

4、每个aar的单独引用,复制一个build.gradle文件,.git文件直接忽略。内容如下:

configurations.maybeCreate("default")
artifacts.add("default", file('base-1.7.4.aar'))

5、在项目根目录下的setting.gradle文件里,增加这加些aar的配置声明:

四、读取app下build.gradle文件夹配置的不同渠道参数:

1、在最底层建一个依赖库,声明一个工具类,所有渠道library都依赖他,然后在app的onCreate下的赋值给他:

五、打包不同渠道APK文件

1、找到右侧gradles树:app->other下

2、如下图,点击这俩任务就可以打包了

  • assemble死神来了_officialOfficialRelease official渠道包
  • assemble死神来了_vivoOfficialRelease  vivo渠道包

3.这样的话打出来包就只包含指定渠道SDK资源的了,如果是渠道比较多,大家可以按照前面的方式增加相应渠道,然后配好参数就可以了。

六、优化打包脚本

1. 如果要出的包实在太多了,一次出几十个包,那么在gralde树里找任务很麻烦,那么我们可以在根目录下的build.gradle文件里配置打包任务,这个圈出来的任务就是我们刚才在gradle树里找到的需要执行的任务。把他复制出来配置在我们建的task下面,比如这个qudao3Release就是我刚才建的任务

2. 在gradle树里找到我们编辑的qudao3Release任务,项目根目录下的Tasks->other->qudao3Release

3. 双击执行任务,就可以打包了。

4、源码文件:https://gitee.com/heavenly-brothers/youxisdk.git

———————— The end ————————

码字不易,如果您觉得这篇博客写的比较好的话,可以赞赏一杯咖啡吧~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/457993.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java全栈经典面试题剖析4】JavaSE高级 -- 包装类,String, 类方法

目录 面试题3.1 什么是自动装箱与拆箱?用什么方式来装箱与拆箱? 面试题3.2 int和Integer有什么区别? 面试题3.3 Integer常量池 面试题3.4 字符串常量池 面试题3.5 这句代码创建了几个对象? String str1 new String("xyz");…

【AI大模型】深入解析 存储和展示地理数据(.kmz)文件格式:结构、应用与项目实战

文章目录 1. 引言2. 什么是 .kmz 文件?2.1 .kmz 文件的定义与用途2.2 .kmz 与 .kml 的关系2.3 常见的 .kmz 文件使用场景 3. .kmz 文件的内部结构3.1 .kmz 文件的压缩格式3.2 解压缩 .kmz 文件的方法3.3 .kmz 文件的典型内容3.4 .kml 文件的结构与主要元素介绍 4. 深…

python对文件的读写操作

任务:读取文件夹下的批量txt数据,并将其写入到对应的word文档中。 txt文件中包含:编号、报告内容和表格数据。写入到word当中:编号、报告内容、表格数据、人格雷达图以及对应的详细说明(详细说明是根据表格中的标识那一列中的加号…

安徽对口高考Python试题选:输入一个正整数,然后输出该整数的3的幂数相加形式。

第一步&#xff1a;求出3的最高次幂是多少 guoint(input("请输入一个正整数:")) iguo a0 while i>0: if 3**i<guo: ai break ii-1print(a)#此语句为了看懂题目&#xff0c;题目中不需要打印出最高幂数 第二步…

开源模型应用落地-Qwen2-VL-7B-Instruct-vLLM-OpenAI API Client调用

一、前言 学习Qwen2-VL &#xff0c;为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野&#xff0c;更让我们站在科技发展的潮头&#xff0c;紧跟时代的步伐。 Qwen2-VL 具有卓越的图…

ELK日志收集

目前&#xff0c;各个微服务系统的日志都保存在各自指定的目录中&#xff0c;如果这些微服务部署在不同的服务器上&#xff0c;那么日志文件也是分散在各自的服务器上。分散的日志不利于我们快速通过日志定位问题&#xff0c;我们可以借助ELK来收集各个微服务系统的日志并集中展…

智能台灯设计(一)原理图设计

1. 前言 作者最近突发奇想&#xff0c;想自己做一个小台灯&#xff0c;设想的功能有&#xff1a;带锂电池可充电、可以调节亮度&#xff0c;后续通过增加WIFI模块实现手机控制开关功能。目前先实现最简单的功能&#xff0c;有时间再一步步完善吧。 2. 原理图设计 充电芯片使用…

B端产品常用组件及设计规则 原型图 Axure原型图 交互设计

B端产品常用组件及设计规则 本作品总结整理了B端产品原型设计时常用的组件、设计指南、常用模板等。为原型设计人员提供实用的组件和指南&#xff0c;帮助他们快速灵活地构建出更加美观、高质量的产品原型&#xff0c;更加高效地完成原型设计工作。 原型演示地址&#xff1a;…

【笔记】软件测试09——接口测试

九、接口测试 一)接口测试的概念 1)接口测试 通过数据包的方式观察客户端向服务器发送了什么请求,模拟这些请求的过程 接口测试是测试系统组件间数据交互的一种方式。 接口测试是通过测试不同情况下的输入参数和与之对应的输出结果来判断接口是否符合或满足相应 的功能性、…

鸿蒙原生应用开发及部署:首选华为云,开启HarmonyOS NEXT App新纪元

目录 前言 HarmonyOS NEXT&#xff1a;下一代操作系统的愿景 1、核心特性和优势 2、如何推动应用生态的发展 3、对开发者和用户的影响 华为云服务在鸿蒙原生应用开发中的作用 1、华为云ECS C系列实例 &#xff08;1&#xff09;全维度性能升级 &#xff08;2&#xff…

人工智能进程;算子加速的具体计算部分;大模型GPT5:参数18万亿;大模型面临问题

目录 人工智能进程 算子加速的简单理解,举例说明 一、简单理解 二、举例说明 一、算子加速的具体计算部分 二、举例说明 三、算子加速是否仅针对GPU 大模型GPT5:参数18万亿 大模型面临问题 算力集群设计框架 人工智能进程

论文阅读(二十六):Dual Attention Network for Scene Segmentation

文章目录 1.Introduction3.DANet3.1Position Attention Module3.2Channel Attention Module 论文&#xff1a;Dual Attention Network for Scene Segmentation   论文链接&#xff1a;Dual Attention Network for Scene Segmentation   代码链接&#xff1a;Github 1.Intr…

C++——string的模拟实现(下)

目录 成员函数 3.4 修改操作 (3)insert()函数 (4)pop_back()函数 (5)erase()函数 (6)swap()函数 3.5 查找操作 (1)find()函数 (2)substr()函数 3.6 重载函数 (1)operator赋值函数 (2)其他比较函数 (3)流插入和流提取 完整代码 结束语 第一篇链接&#xff1a;C——…

vue通过JSON文件生成KML文件源码

可以使用封装的json解析器进行JSON数据获取&#xff0c;读取点的经度、维度、高程等数据&#xff0c;再使用对应的KML文件生成函数使用该源码下载KML文件&#xff08;固定KML生成&#xff1a;js模板式生成大疆上云kml文件&#xff08;含详细注释&#xff0c;已封装成函数&#…

unity中GameObject介绍

在 Unity 中&#xff0c;Cube和Sphere等基本几何体是 Unity 引擎的内置预制体&#xff08;Prefabs&#xff09;&#xff0c;它们属于 Unity 中的GameObject 系统&#xff0c;可以在 Unity 的 Hierarchy 视图或 Scene 视图中右键点击&#xff0c;然后在弹出的菜单中选择 3D Obje…

MySQL 数据出海之数据同步方案

优质博文&#xff1a;IT-BLOG-CN 数据库出海流程 【1】业务出海&#xff1a;1&#xff09;数据库出海&#xff1b;2&#xff09;应用出海&#xff1b;3&#xff09;流量分发&#xff1b; 【2】数据库出海&#xff1a;涉及业务方、信安、DBA和框架组。 数据库出海&#xff0c…

Go 语言基础教程:7.Switch 语句

在这篇教程中&#xff0c;我们将学习 Go 语言中的 switch 语句&#xff0c;它是条件分支的重要结构。我们将通过一个示例程序逐步解析 switch 的不同用法。 package mainimport ("fmt""time" )func main() {i : 2fmt.Print("Write ", i, " …

Python画笔案例-094 绘制 神奇彩条动画

1、绘制 神奇彩条动画 通过 python 的turtle 库绘制 神奇彩条动画,如下图: 2、实现代码 绘制 神奇彩条动画,以下为实现代码: """神奇彩条动画.py一个用海龟画图的图章功能配合颜色渐变和动画原理做成的动画。 """ from random import randi…

重学SpringBoot3-Spring WebFlux之SSE服务器发送事件

更多SpringBoot3内容请关注我的专栏&#xff1a;《SpringBoot3》 期待您的点赞&#x1f44d;收藏⭐评论✍ Spring WebFlux之SSE服务器发送事件 1. 什么是 SSE&#xff1f;2. Spring Boot 3 响应式编程与 SSE为什么选择响应式编程实现 SSE&#xff1f; 3. 实现 SSE 的基本步骤3.…

MySQL-32.索引-操作语法

一.语法 二.代码实现 指定某个字段为主键&#xff0c;其实就是建立一个主键索引。而指定某个字段唯一&#xff0c;就是建立一个唯一索引。 -- 索引 -- 创建&#xff1a;为tb_emp表的name字段建立一个索引 create index idx_emp_name on tb_emp(name);-- 查询&#xff1a;查…