0%

游戏篇章-AAB实践说明

Google - Android App Bundles

2018 年的 Google I/O ,Google 向 Android 引入了新 App 动态化框架(即 Android App Bundle,缩写为AAB)

App 动态化框架,动态化概念指的是 Play Dynamic Delivery

上线要求:从 2021 年 8 月起,新应用需要使用 Android App Bundle 才能在 Google Play 中发布。

About Android App Bundles

Android App Bundle 是一种包含编译后代码和资源文件的新的上传格式(.aab)

补充:Android Application Bundle != Apk
App Bundle 纯粹是为了上传设计的文件,用户无法直接安装和使用它。
虽然AAB和Apk本质上都是压缩包,但是内部的目录结构完全不同,以下是一个Abb正常的aab文件结构

1
2
3
4
5
6
7
8
9
10
11
–BundleConfig.pb : 打包bundle的时候,自动生成
–base : base目录
——assets: 对应apk的assets目录
——dex: 原apk中classes.dex,classes2.dex…都放这里
——lib: 原apk中lib目录都放这里
——manifest: 原apk的AndroidManifest.xml放这里,需要是编译后的AndroidManifest.xml
——res:apk中的资源放这里,需要是编译后的资源
——root: apk中相对于根目录的其他资源文件
——resources.pb:编译资源的时候会生成的
——assets.pb:编译bundle的时候会生成的
——native.pb: 编译bundle的时候会生成的

Google Play Dynamic Delivery

简介:Google Play 推出新 app 交付模式,叫做动态交付 (Dynamic Delivery),它根据每个用户的设备信息,使用开发者上传的 app bundle 来生成对应的 apk 文件。

AAB

Play Asset Delivery

Play Asset Delivery (PAD)可以让依靠 Google Play 来托管和提供你的资产包,PAD提供灵活的分发模式,本质上减少包的体积,让用户更佳的体验,目前分发模式有3种,分别为
1.install-time 2.fast-follow 3.on-demand

分发模式 大小限制 简介 详情
install-time => 安装时分发 总下载大小上限为1GB 资源包在用户安装应用时进行分发,”预先”资源包 在应用启动是使用,用户无法修改或删除这些资源包
fast-follow => 快速跟进式分发 下载大小上限为512MB 资源包在用户安装应用后立即自动下载 用户无需打开应用即可开始 fast-follow 下载。此类下载不会阻止用户访问应用。
on-demand => 按需分发 下载大小上限为512MB 资源包会在应用运行时进行下载

注意 !!!:如果为资源包选择 install-time 分发类型,就无需在游戏中使用 Play Asset Delivery API。这些资源包与主应用 APK同时安装。
目前公司项目使用就是分发模式就是 install-time

由于google规定需要apk<150m,等于aab中的base目录<150m,如果超出限制,需要把多出的资源迁移到install-time,让google去动态下发资源

项目

S1-EN项目举例,该项目使用模块化,该项目包含以下的模块

项目模块

模块 类型 简介 包含依赖
EN APP 完整项目 ENGameResource
EN_HW AAB ENGameResource,install_time
ENGameResource 游戏资源 对应替换游戏资源
ENAPPLib LIB
install_time AAB-分发模式 安装时分发
on_demand AAB-分发模式 按需分发
1
ABB = ENGameResource + EN_HW + install_time

出包需求

我们以S1-EN 欧美出包来举例,一般需要出2个类型的包,一直为正常的APK,给运营测试,另外一种为AAB给发行上架应用。

对应出包格式和命名可以查看此目录

1
\\192.168.1.181\apk\欧美\

出包需求

我们以S1-EN 欧美出包来举例,一般需要出2个类型的包,一直为正常的APK,给运营测试,另外一种为AAB给发行上架应用。

对应出包格式和命名可以查看此目录

1
\\192.168.1.181\apk\欧美\

一般我们是先出APK,后出AAB。

实际操作

我们是先从145打包机上,打包一个完整的APK,复制到本地进行解压出对应的游戏资源。
解压的过程可以自由发挥,在我的电脑我是内置了解压的Apk的程序。
使用APKDB编辑,会出现以下页面,回车即可

Android-AAB

右键Apk->使用APKDB编辑->按下回车

Android-AAB

实际上我们只需要用到截图中的几个目录

ABB = ENGameResource + EN_HW + install_time

所以对应项目替换的路径,看下图

Android-AAB

install-time

由于google规定需要apk<150m,等于aab中的base目录<150m,如果超出限制,需要把多出的资源迁移到install-time,让google去动态下发资源

我们S1-EN欧美打包的AAB主要是使用了install_time分发模式,我们把原本asset资源下的部分游戏资源迁移到 install-time模块下,