AppBundle探索
Android App Bundle的使用场景有哪些呢
比如我们的引导页面,引导页面一般都只会在第一次安装的时候引导一次,引导完之后,这部分功能一般就不会再使用了。假如引导页做的比较有趣,比较复杂,我们就可以在第一次安装时一起安装这部分功能,用完之后动态卸载掉该引导模块。我们的app就不用占据那么多的安装内存
再比如,我们的app有这么个直播模块,我们都知道,涉及到音视频的模块一般都是比较大的,并且有些用户不一定会使用这一部分的功能,那么我们这一块的内容就可以不随baseApk一起安装,在用户点击功能入口的时候再去安装该模块。
什么是Android App Bundle
Android App Bundle = Apk 动态打包,动态组件化的技术,与 Instant App 不同,AAB 是借助 Split Apk 完成动态加载,使用AAB动态下发方式,可以大幅度减少应用体积,总结下特性。
就2个:
- 资源选择性下发:即配置apk
- 模块动态下发;即功能模块apk
aab总共分为3个部分
基本 APK:此 APK 中包含了所有其他拆分 APK 都可以访问的代码和资源,并提供应用的基本功能。当用户请求下载您的应用时,会首先下载并安装该 APK。
配置 APK:每个配置 APK 都包含针对特定屏幕密度、CPU 架构或语言的原生库和资源。当用户下载应用时,只会下载并安装该设备对应的配置 APK。(Google Play 会自动生成配置 APK。我们不需要做额外的配置)
功能模块 APK:包含使用功能模块进行了模块化处理的某项应用功能的代码和资源。(即我们可以动态下发的功能模块)
关于功能模块APK,有4种分发行为
1.安装时分发:功能模块会在安装应用时下载
2.按需分发:按需请求和下载功能模块,即动态下发
3.按条件分发:允许您指定特定的用户设备需求(例如硬件特性、区域设置和最低 API 级别),以确定是否在安装应用时下载模块化功能,即添加一些下发条件
4.免安装分发:Google Play 免安装体验让用户无需在设备上安装 APK 即可与应用互动。用户可以通过 Google Play 商店中的“立即体验”按钮或您创建的网址体验您的应用
- 最大大小:支持免安装体验的基本模块和支持免安装体验的功能模块的总大小不得超过 10 MB。如需了解详情,请阅读通过缩减应用或游戏大小支持免安装体验。
- 后台活动:支持免安装体验的模块无法使用后台服务。此外,此类模块在后台运行时无法发送通知。
我们在项目里面新建一个feature module
清单配置:
<?xml version="1.0" encoding="utf-8"?>
<dist:module
<!-- 模块名称,会在googlePlay安装时显示-->
<dist:title="guide">
<!--此模块可提供给搭载 Android 4.4(API 级别 20)及更低版本的设备并包含在multi-APKs中-->
<dist:fusing dist:include="true" />
<-- 分发方式有以下几种 -->
<!-- 免安装分发配置 -->
dist:instant="true"
<!-- 安装时下载分发配置 -->
<dist:delivery>
<dist:install-time>
<!-- 条件分发配置 -->
<dist:conditions>
<dist:user-countries dist:exclude="true">
<dist:country dist:code="CN"/>
<dist:country dist:code="HK"/>
</dist:user-countries>
</dist:conditions>
</dist:install-time>
</dist:delivery>
<!-- 按需动态分发配置 -->
<dist:delivery>
<dist:on-demand />
</dist:delivery>
</dist:module>
<application>
<!---->
</application>
</manifest>
功能模块的调试
有关功能模块的注意事项
如果您想发布包含功能模块的正式版应用,请记住以下几点:
- 在一台设备上安装 50 个或更多功能模块可能会导致性能问题。为避免出现这种情况,请考虑使用 Google Play Core 库卸载用户不再需要的模块。
- 将您为安装时分发配置的模块数量限制为不超过 10 个。否则,应用的下载和安装时间可能会增加。
- 只有搭载 Android 5.0(API 级别 21)及更高版本的设备才支持按需下载和安装功能。如需使功能适用于更低版本的 Android,请确保在创建功能模块时启用融合功能。
- 请确保启用 SplitCompat,这样应用才能访问下载的功能模块。
- 如果功能的下载大小较大,应用将需要获得用户确认才能将功能模块下载到设备上。
- 在将 android:exported 设置为 true 的情况下,功能模块不得在其清单中指定 Activity。这是因为,当其他应用尝试启动相应 Activity 时,无法保证设备已下载相应的功能模块。此外,应用在尝试访问功能的代码和资源之前,应该先确认该功能已下载。如需了解详情,请参阅管理已安装的模块。
另外说明一下 Google免安装体验
一、优点
1.在Google市场上不需要下载安装,直接点击立即试用就可以启动应用或游戏。
2.支持在免安装体验中显示提示,邀请用户在其设备上安装完整版游戏。
3.可增强用户互动或提升安装量并带来业务上的成功
4.给了应用一个更好的推荐自己、留住用户的机会,也能获得更优质的用户
5.在 Google Play 游戏应用“马上玩”首页上的精选内容中展示
二、注意事项
1.免安装体验功能的安装包大小不得超过10MB
2.支持免安装体验的模块无法使用后台服务
三、已有使用免安装体验的案例
1.Wego(玩够旅行)
2.NOS(新闻软件)
3.Vimeo(视频软件)
4.《Marvel 神威战队》游戏
等等…