作为技术质量的一个重要方面,应用大小可能会影响应用的安装指标和卸载指标。Google Play 还对应用和动态内容(例如功能模块和资源包)的大小设置了限制。本文详细介绍了 Google Play 对应用大小的限制,并阐述了您可以如何通过 Play 管理中心来了解与应用相关的大小信息,以便继续尽可能优化应用大小,确保始终符合规定的大小限制。
Google Play 应用大小上限
app bundle、功能模块和资源包需遵循以下大小限制。所有 Google Play 大小限制都以压缩后的下载大小为依据,Play 管理中心会在您上传 app bundle 时计算压缩后的下载大小。在将应用上传到 Play 管理中心前,您可以使用 bundletool 命令行工具来估算应用的大小,该工具采用的计算方式与 Play 管理中心的计算方式相似(但不完全一样)。
重要提示:Google Play 建议您尽可能减小和优化应用大小,以帮助改善安装指标。大多数开发者都应尽量将应用大小控制在相应的大小限制范围以内。
|
应用组件 |
应用下载大小限制 |
|---|---|
|
基础模块 |
200MB |
|
单个功能模块 |
200MB |
|
单个资源包 |
1.5GB |
|
所有模块和安装时资源包的累计总大小 |
4GB |
|
按需分发或快速跟进分发的资源包的累计总大小 (适用于未加入 Level Up 计划或未分发 Android XR 应用/游戏的开发者) |
4GB |
|
按需分发或快速跟进分发的资源包的累计总大小 (适用于已加入 Level Up 计划或已分发 Android XR 应用/游戏的开发者) |
30GB |
对于通过 Google Play 发布的应用,压缩后总下载大小的上限为 8GB;对于已加入 Level Up 计划的游戏以及 Android XR 应用/游戏,此上限为 34GB。
除了上述大小限制外,请也注意以下事项:
- 大于 1GB 的应用必须以 Android Lollipop(API 级别 21)或更高版本为最低目标 SDK 版本。
- 对于以 Android Oreo(API 级别 26)或更高版本为最低目标 SDK 版本的应用,建议的功能模块数量上限为 100。如果应用的最低目标 SDK 版本还要更低,则功能模块的数量上限为 50。
- 单个 app bundle 中的资源包数量上限为 100。
- 如果您的应用大小超过 200 MB,当用户使用移动网络从 Google Play 安装该应用时,系统会显示一个对话框(不会阻止安装),提示用户该应用在 Android 设备上的安装大小较大。
- 如果应用仍使用 APK(而非 app bundle)进行发布,则需遵守旧版 APK 大小限制(即 APK 大小上限为 100 MB),而非上述大小限制。
查看应用的下载大小
将应用发布到正式版轨道后,您可以在“应用大小”页面(监控和改进 > Android Vitals > 应用大小)上查看应用的下载大小。
您可在应用大小页面上找到以下数据:
- 应用下载大小:您的应用在参照设备上的大小及其在所有设备配置条件下的大小范围。
- 应用下载大小(与类似应用相比):您的应用与类似应用在大小方面的对比情况。
- 如需创建包含 8-12 个应用的自定义类似应用群组,请点击修改类似应用群组。
- 应用下载大小(指定时间范围内):您的应用的大小在一段时间内的变化情况,以及一段时间内该应用与类似应用在大小方面的对比情况。
- 在图表的右上角附近,您可以选择要查看的日期范围,并勾选相应复选框,以显示所有设备配置条件下的应用大小范围。
- 可用存储空间不足 2GB 的活跃设备:在您的应用的活跃用户中,设备上的可用存储空间不足 2GB 的用户所占的百分比。
- 可用存储空间不足 2GB 的设备上的卸载次数:可用存储空间不足 2GB 的活跃设备上的卸载次数在所有活跃设备上的总卸载次数中所占的比例。
注意:
- 所有大小均为典型代表值,计算依据是您的最新正式版本和
XXXHDPI ARMv8设备配置或与您应用所支持的设备配置最接近的配置数据。 - 可用存储空间不足 2GB 的活跃设备和可用存储空间不足 2GB 的设备上的卸载次数指标是根据 30 天滚动平均值计算得出的,只有在确定适用于您的应用时才会显示。
查看应用大小细分数据
如果您的应用是使用 Android App Bundle 发布的,您可以查看按 app bundle 版本代码整理的图表。该图表还包含应用的先前 5 个版本的不同组件所占空间在应用总下载大小或总安装大小中所占比重的细分数据。
您可以利用此细分数据来找出应用中占用空间最多的部分,并确定可以进一步进行空间优化的方面。此细分数据是基于您的 app bundle 在参考设备配置条件下生成的 APK 而得出。
细分数据包括以下数据:
- Code/DEX:应用中已编译为在 Android 上执行的所有采用 DEX 格式的 Java 或 Kotlin 代码
- 资源:资源包括应用的 res/ 目录下的资源表和非代码组件,例如字符串或图片
- 资产:资产是指应用在 assets/ 目录下使用的其他文件,例如音频或视频文件
- 原生库:应用的 libs/ 目录下的原生代码,通常是 Java 或 Kotlin 代码之外的其他代码
- 其他:应用中的其他文件