查看原文
其他

​16 个使用 App Bundle 发布应用和游戏的理由

Google Play 谷歌开发者 2019-11-01


作者: Dom Elliott, Product Manager, Google Play


今年的 Google I/O 大会上,我们宣布了针对 Android 的官方发布格式 Android App Bundle 的一系列新功能,其中包括已经结束公测的动态功能模块以及新的交付选项。目前正在开发中的 100,000 多个应用均使用 Android App Bundle 进行发布,包括 Netflix 等应用在内 (本文后面有来自 Netflix 分享的开发者故事)。



为什么需要尽快开始使用 App Bundle


1. 大多数应用的体积都大幅减少了。平均而言,与通用 APK 相比,切换后的应用减少了 20% 的体积,从而使安装量提高了 11%,这也让更新率更高,卸载次数更少。您可以访问 Google Play Console 中新的应用体积报告,了解您的应用可以减少多少体积。


2. 您可以通过 Google Play 为每个设备定制交付您的应用,这意味着您的用户可以更快地进行下载和安装


3. 您可以更快地完成发布,而且避免痛苦的多 APK 维护工作。因为 Play 会为您处理不同设备配置的适配事务。


4. 您将在 Play Console 中获得额外的报告和优化指南,该指南仅适用于使用 App Bundle 发布的应用。


5. 您可以在不显著增加应用体积的情况下为 64 位版本做好准备。通过 App Bundle,Play 将针对每个设备提供其所需的本地代码。


6. 通过将 Play Core 代码库整合到您的应用中,您还可以解锁应用内更新,这样您就可以轻松提示用户进行更新,且可以让用户在不离开应用的情况下更新到最新版本。



为游戏开发者们构建的新交付工具


7. 您可以上传 150MB (压缩尺寸) 的应用包,从而避免使用扩展文件。使用 APK 发布的应用和游戏最多只能上传 100MB (压缩尺寸)。


8. 除此之外,游戏可以将大型游戏素材打包为 App Bundle 的一部分,并提供自定义交付选项,而无需使用扩展文件。


  • 即刻参与早期体验计划,更多交付选项即将到来

    https://g.co/play/gameassetsEAP


9. 您可以构建免安装游戏,使人们可以在 Play Store 或 Play Games 应用中无需安装即可体验您的游戏。而且开发完整游戏与免安装游戏时可以使用相同的应用包工件。



模块化应用开发技术的优势


10. 您可以通过将功能作为独立的动态功能模块来进行设计、构建和测试,从而加快开发速度


11. 您将从模块化应用中收获更快的构建时间——单一集成式的应用构建速度则会较慢。


12. 您可以在安装时根据设备支持的功能 (例如 AR/VR 功能)、用户所在国家/地区或设备的 SDK 版本等属性提供可选功能


13. 您可以在需要时,而不是在初次安装时,按需安装功能,或卸载不再需要的功能。您可以将此功能视为交付新功能的最佳方式,而且可以从长期规划的角度避免增加应用体积。



使用 Google Play 进行应用签名*


* 使用 App Bundle 必须用 Google Play 进行应用签名。


14. 您的密钥将受到保护,避免丢失。如果您选择通过 Play 进行应用签名,并且丢失了上传密钥,则可以通过 Google 确认自己的身份,并获取新的上传密钥。如果您在没有选择通过 Play 进行应用签名的情况下丢失了应用签名密钥,那么 Google 将无法提供帮助,您将无法再更新您的应用。


15. 您可以将弱密钥或不再安全的密钥升级为新密钥。通过 Play 应用签名的应用现在可以请求密钥升级,并开始使用加密性更强的密钥。


最后……


16. 它代表着未来!我们迫不及待地想要分享我们为您的应用和游戏开发的更多令人兴奋的新工具和新交付机制,而它们都是基于 App Bundle 和动态交付功能来实现的。敬请期待吧!

△ Netflix 使用 App Bundle 大幅减小应用体积,优化安装率与卸载率



App Bundle 常见问题解答


Q: 如何构建 Android App Bundle?

Gradle 和 Buck 现在都支持 App Bundle。您可以构建 App Bundle 的系统包括 Android Studio 3.2+  (而且操作非常简单: 只需从 Android Studio 的 Build 菜单中选择 Generate Signed Bundle 即可)、Unity 2018.3 和 2017.4.17 或更高版本,以及 Cocos Creator 2.0.9 或更高版本。


Q: 如何测试由 Android App Bundle 生成的应用?

在日常的新功能开发以及测试/修复工作中,您可以像以前一样继续在本地构建和安装 APK。如果您有兴趣具体测试分发到每台设备中的内容的话,请使用内部应用分享功能 (internal app sharing) 或任何 Play 测试轨道,从而使用 Play 来分发需要测试的应用。简而言之,内部应用分享可以让您快速轻松地分享测试版本: 您只需将应用上传到 Play,获取可以共享的 URL,然后使用该 URL 下载并测试应用即可。您无需担心版本代码或签名密钥,而且您的测试应用是可以调试的。


  • Internal app sharing

    https://support.google.com/googleplay/android-developer/answer/9303479


Q: 通过尚未支持 App Bundle 的非 Play 渠道分发应用的最佳方法是什么?

您可以在 Android Studio 的 App Bundle 功能中本地生成已签名的通用 APK,或使用 bundletool 将应用发布在非 Play Store 分发渠道,从而确保其可以安装在任何配置的 Android 设备上。请注意,像 Google 的 Files Go、ShareIt 和 Xender 这样的 P2P 共享应用支持共享 App Bundle 发布的应用。我们正在与其他发行渠道合作,确保其能正确安装 App Bundle。


Q: 我是否必须选择通过 Google Play 进行应用签名?

是的。App Bundle 是 Google Play 里的一种发布格式,用于生成实际传送到设备的内容。与其他一些主要应用商店一样,Google Play 会保留签名密钥,从而给实际分发给设备的内容进行签名。Google 将应用签名密钥存储在用于保护 Google 自己密钥的高度安全的服务器中。所有这些都可以节省您的时间,并为您带来 App Bundle 的诸多好处——您只需将一个 App Bundle 上传,其余的事情交给 Play。


Q: 如何模块化我的应用并使用自定义交付选项?

您可以在我们的动态交付文档中了解有关模块化应用的更多信息,其中包括代码实验室和示例。您可以选择在安装时交付模块,并在不需要时卸载它们;也可以根据设备功能、用户所在国家/地区或 SDK 版本等条件,在安装时提供功能。您还可以按需提供功能,并在需要时或后台运行时安装它们。按需提供功能可以作为应用的长期策略的一部分,从而防止在添加新功能时增加应用体积。


  • 动态交付文档

    https://developer.android.google.cn/studio/projects/dynamic-delivery#modularize


您的应用和游戏是否已经收获了上述 16 个好处呢?如果在开发 App Bundle 或者进行动态交付时有任何疑问或者建议,请在评论区和我们分享。



 点击屏末 | 阅读原文 | 进一步了解如何使用 App Bundle



  想了解更多 Google Play 内容?


  • 在公众号首页发送关键词 “Google Play”,获取相关历史技术文章;

  • 还有更多疑惑?欢迎点击菜单 “联系我们” 反馈您在开发过程中遇到的问题。

推荐阅读




    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存