作为技术质量的一个重要方面,应用大小可能会影响应用的安装指标和卸载指标。Google Play 还对应用和动态内容(例如功能模块和资源包)的大小设置了限制。本文详细介绍了 Google Play 对应用大小的限制,并阐述了您可以如何通过 Play 管理中心来了解与应用相关的大小信息,以便继续尽可能优化应用大小,确保始终符合规定的大小限制。
了解应用大小
定期监控应用的下载大小和安装大小,并了解缩减大小的方法,这点非常重要,因为这两个因素会分别影响应用的安装成功率和卸载率。下面详述了这两种大小之间的区别:
- 应用下载大小:用户在 Google Play 上所下载的应用的大小。如果应用的下载大小较大,下载所需的时间会更长。
- 应用在设备上的大小:安装应用所需的空间大小。由于应用在下载时会压缩,因此安装大小通常大于下载大小。如果应用的安装大小较大,在用户的设备上安装该应用时会需要更多空间。当应用打开后,其在磁盘上所占的大小会因应用使用情况而异。
Google Play 应用大小上限
app bundle、功能模块和资源包需遵循以下大小限制。所有 Google Play 大小限制都以压缩后的下载大小为依据,Play 管理中心会在您上传 app bundle 时计算压缩后的下载大小。在将应用上传到 Play 管理中心前,您可以使用 bundletool 命令行工具来估算应用大小的近似值,该工具采用的计算方式与 Play 管理中心的计算方式相似(但不完全一样)。
重要提示:Google Play 建议您尽可能减小和优化应用大小,以帮助改善安装指标。大多数开发者都应尽量将应用大小控制在相应的大小限制范围以内。
应用组件 |
应用下载大小限制 |
---|---|
基础模块 |
200 MB |
单个功能模块 |
200 MB |
单个资源包 |
1.5 GB |
所有模块和安装时资源包的累计总大小 |
4 GB |
按需分发或快速跟进分发的资源包的累计总大小 |
4 GB* |
* 加入了 Google Play 游戏合作伙伴计划的开发者可以额外分发最多 6 GB 的资源包,这意味着他们按需分发和快速跟进式分发的资源累计总大小为 10 GB(而非 4 GB)。
除了上述大小限制外,请注意以下事项:
- 大于 1 GB 的应用必须以 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),而非上述大小限制。
查看应用的下载大小和安装大小
将应用发布到正式版轨道后,您可以按以下步骤查看应用的下载大小和安装大小:
- 打开 Play 管理中心,然后转到应用大小页面(质量 > 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 代码之外的其他代码。
- 其他:应用中的其他文件。
- 应用在设备上的大小的细分数据还包含以下数据:
- 提取的原生库:如果将原生库压缩到 APK 文件中,则必须将其提取到本地存储空间才能运行应用。
- 优化的 DEX:Android 运行时会将 DEX 代码转换为原生代码,以优化性能。