APK(全称:Android application package,Android应用程序包)是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。一个Android应用程序的代码想要在Android设备上运行,必须先进行编译,然后被打包成为一个被Android系统所能识别的文件才可以被运行,而这种能被Android系统识别并运行的文件格式便是“APK”。 一个APK文件内包含被编译的代码文件(.dex 文件),文件资源(resources), 原生资源文件(assets),证书(certificates),和清单文件(manifest file)作为其年度 Google Play 政策更新的一部分,早在 2020 年 11 月,Google 就宣布从 2021 年 8 月起,所有新应用都必须使用 Android App Bundle 格式 (.aab) 在 Play 商店中发布。那么,这对于面向 Android 移动数据终端的开发人员意味着什么?Android App Bundle是 Android 新推出的一种官方发布格式(.aab)。通过使用Android App Bundle你可以减少应用的包大小,从而提升安装成功率并减少卸载量。
Google 不断改进其数字市场,即 Google Play 商店,以帮助开发人员以更好的方式分发应用程序。现在,Google 宣布计划从 APK 转向其现有的替代应用程序打包格式,称为 Android App Bundles。它旨在解决当前 APK 应用程序打包格式的主要问题,并将 Android 应用程序的大小减少 15%。现在,不知不觉中,开发者长期以来一直在使用 APK(Android Packages 的简称)格式来打包应用程序的代码、资源和其他元素。但是,根据最近的公告,从 2021 年 8 月开始,Android 应用程序开发人员将要求对新应用程序使用 Google 的 Android App Bundles (AAB) 打包格式。
新的应用程序打包格式旨在减小 Android 应用程序的大小,从而为最终用户提供更快的下载和更少的存储需求。它是由 Google 公司于 2018 年推出的,谷歌表示,Play Store 上超过一百万个应用程序,包括 Adobe、Netflix、Twitter 和 Duolingo 使用应用程序包而不是 APK。
新格式要求应用程序的大小小于 150MB 以改进分发。对于大小超过 150MB 的应用和游戏,开发者将不得不使用新的 Play Asset Delivery (PAD) 系统向用户提供外部资源。目前,应用和游戏使用 OBB 向用户提供额外资源。但是,PAD 系统使用更快的数据压缩和动态交付策略来实现更快的下载,即使在玩游戏或运行应用程序时也是如此。
现在,尽管应用程序包解决了 APK 打包格式的问题,但对开发人员来说却是一个重大问题。Android App Bundles 格式仅适用于 Google Play Store 上的应用程序,与开发人员可以上传到第三方市场的 APK 不同,如 Amazon App Store(也将支持 Windows 11)、小米的 Get Apps 等。
因此,切换到 AAB 的开发人员将无法向其他应用商店和来源提供完全相同的软件包。这消除了第三方提供应用程序的可能性,除非开发人员维护其应用程序的单独 APK 版本。
从 2021 年 8 月起,新的应用打包格式将成为 Play 商店应用的标准。因此,开发人员将不得不为新应用使用 AAB 格式。但是,现有应用以及发布给受管理的 Google Play 用户的私有应用目前不受此要求的约束。您可以查看 Google 的官方博客文章以了解有关 Android App Bundle 的更多信息。此外,您可以观看将于 7 月 12 日举行的 2021 年 Google for Games 开发者峰会,以了解有关 Google 未来应用程序开发计划的更多信息。
https://android-developers.googleblog.com/2021/06/the-future-of-android-app-bundles-is.html
在撰写本文时,此更改仅影响公开发布到 Google Play 商店的应用程序。此更改与针对 Android 11 的更新相吻合,更多详细信息可在 Android 博客文章中找到。同时 2021 年 7 月,Google 发布了一篇更新的博客文章,确认私有企业应用程序不受此更改的影响。为了更好的兼容其它应用平台起见,开发人员可以选择三种广泛的分发机制来分发他们的应用程序:
允许 .apk 可以从自己的网站下载,或者使用 GitHub 版本或 Microsoft 的应用程序中心等与他们的 CI 系统集成的东西。
使用 Google 的托管 Play 商店以及受支持的 EMM 发布,将应用程序私下分发到托管的 Android 设备。此应用程序只能被一个或多个指定组织看到。
在公共 Play 商店中发布为公共应用程序。然后,组织管理员可以根据需要将该应用程序包含在其托管的 Play 商店中。
目前使用第一或第二分发机制的开发人员不受 2021 年 8 月对 .aab 文件的更改的影响。
假设您打算通过 Play 商店分发您的应用程序,您将需要转向应用程序包格式来分发新应用程序,尽管对现有应用程序的更新不受影响。
在鸿蒙系统应用签名文档中有提到,目前应该是支持的。AAB 格式是谷歌 2018 年提出的新应用格式,只不过 Google 为了更好的规范市场应用以及用户体验和安全机制等等才开始强制推行该格式。
https://developer.huawei.com/consumer/cn/doc/distribution/app/agc-help-sign-service-0000001156659649
由于此更改仅影响发布给公共 Play Store 的新应用,因此我预计只有少数企业开发人员会受到影响。不过,请注意,在这方面对谷歌的路线图没有了解,我提醒说,不能保证私营企业的应用程序以及现有应用程序的更新将仍然不受此要求的约束。对于国内的用户而言,我们其中有很大一部分用户是无法直接访问 Google Play 的,大多数应用都是在自带的手机应用商店中下载使用。而且在未来几年内大家应该都不用担心兼容的问题。