从APK到AAB:Android安装包的变革,可能并非你想象的那样

发表时间: 2021-07-08 11:00

玩过王者荣耀的朋友,几乎无人不晓「鲁班七号」这个英雄。

作为 Android 的应用程序包,「APK」对于资深 Android 用户来说,知名度并不亚于前者。

也正因如此,日前 Google 的一份声明,牵动了许多 Android 用户的神经。

Google 宣布,从 2021 年 8 月开始,Google Play 商店将要求开发者使用 Android App Bundle(AAB)发布新应用。这将取代 APK 作为标准发布格式。

▲ 图片来自:hitechglitz

消息一出,一些用户开始猜测甚至担忧:「以后还能借一部 APK 说话吗」?「Google 是不是在故意为难国产品牌」?

实际上,有这些疑问的朋友,大概率误解 Google 的这个动作了。

什么是 AAB?

这次舆论漩涡的中心,就是 AAB 格式。所以首先我们要搞清楚,AAB 是什么。

在 2018 年 5 月举行的 Google 开发者大会上,Google 就已公布了 Android App Bundle(AAB)格式,并称这是其现代化开发的一部分。

Google 介绍道,开发者在上传应用至 Google Play 时,需采用 AAB 格式。Google Play 将负责生成 APK 文件及签名。

这句话有两个重点。

一是 AAB 只是上传时应用的格式,用户下载时,获取的依旧是 APK。

▲ 图片来自:techlog360

对于开发者来说,从 APK 转战到 AAB 没什么痛点。AAB 是一种开源格式,在构建时,选择相关的工具或引擎即可。

另外根据 Google 的声明,已经存在的应用,无需重新上传 AAB 文件。只是今年 8 月份开始,提交新应用时才需要使用 AAB。

用户这边更不必担忧,因为我们在终端设备上看到的,依旧是 APK 格式。

▲ 图片来自:9to5google

二是生成 APK 的工作,将由 Google Play 完成。

Google Play 将根据用户设备的配置,从 AAB「源文件」里提取、组装适合该用户设备的代码及资源,从而生成 APK 安装包。

也就是说,这时用户下载的应用,已经过 Google Play 优化,以确保该应用可在当前设备上以最佳状态运行。

▲图片来自:beebom

换种说法,方便你理解:AAB 就像是一袋方便面,里面有各种口味的调料包。Google Play 就是大厨,它会根据你设备的喜好,来判断面要煮多久、放什么调料包。

最终煮好的面,就是 APK 了。

AAB 的三大优势

Google 之所以要「强硬」地推行 AAB 格式,很大原因是 AAB 相比 APK 有着多种先天优势。

第一点,是体积轻盈。

上文说到,Google Play 会从 AAB 里,个性化地生成并优化 APK,以针对不同配置的设备、语言进行分发。

举个例子:假设你的手机是 2K 屏幕,首选语言是中文。那么 Google Play 在拼装 APK 时,就会只把 2K 分辨率、中文字符包的资源放进 APK 里。

而传统的 APK,开发者会将各种分辨率和语言包,打包在一起。用户下载下来,手机需要从中挑出适合自己的资源安装运行。

随着机型的不断增加,开发者需要在 APK 文件里塞上越来越多的资源,来提高适配性。因此,App 越来越大,动辄上百 MB。

▲ 图片来自:altavia

那么 AAB 的应用,相当于「把复杂留给 Google Play,把简单留给用户」。用户下载的 APK,是经过 Google 精简过的,因此体积会小一些。

那么会小多少呢?根据 Google 的说法,此举可将 APK 的体积压缩 15%。

不过实际情况可能要好于这一预期。例如爱彼迎在拥抱 AAB 后,体积减少了 22%。Netflix 更甚,达到了 57%。

这对 Android 用户有何影响?

所以对于用户来说,可感知的一点就是安装包变小了,下载、安装的速度会更快。

其次,AAB 使得用户下载的应用,最大程度地符合设备配置,因此运行起来或许会更流畅。某种程度上算是提升了设备性能。

▲ 图片来自:angelseoservices

第二点,是应用模块化。

AAB 允许开发者将应用的功能拆分开来。让有需要的用户,自行下载。

我们继续举例子。假设开发者现在要做一个拍照 app,我的手机是单摄,你的手机是双摄。为了减小应用初始的大小,开发者可以把某些功能,设置为按需下载。

比如你想用这款 app 里,针对双摄手机推出的功能,你就下载额外的资料包即可。

▲图片来自:unsplash

开发者还可以决定什么时间,向什么机型推送应用的新功能。相当于自定义和掌控各类用户的体验。

「你我用着同一个 app,但享受着不同功能」的情况,或在将来成为常态。

▲图片来自:unsplash

第三点,是免下载体验。

AAB 的免安装分发特性,可让用户在 Google Play 里,无需下载应用,便可体验到应用的某些功能。

比如有一款游戏,我们不确定是否值得下载,就可以点击「立即体验」,试玩前几个关卡,且不用下载该应用。

这有点像 iOS 14 新增的 App Clip 功能,可以被看作完整版应用的快捷方式,当中会包含应用的一部分功能。

▲ iOS 14 的 App Clip 功能

所以对于用户来说,AAB 格式的推广,我们是可以感知到的,且会有更好的体验。

光打用户体验牌肯定不行,还得考虑开发者的感受。为了让他们有动力转战 AAB 格式,Google 给出了多个理由:

  1. 版本管理更高效,一个工件便可包含应用所有经过编译的代码、资源和原生库。
  2. 模块化应用开发功能,可提升工程速度。
  3. 编译系统的优化,可缩短编译时间。
  4. 自定义功能传送,可掌控用户体验。

不感兴趣也没关系,那就来「硬的」:8 月起,应用程序包不改成 AAB 格式,就不许上传,逼迫着开发者进行转变。

这足以见得 AAB 对于 Google Play 未来规划的重要性。

这对 Android 用户有何影响?

推广 AAB 格式,对于大众用户来说绝对是一件好事。谁不希望自己下载的应用,体积又小、适配又好呢?

不过,Google 只是要求 Google Play 这样做,没有强制其他应用商店跟进。

也就是说,如果你没有在使用 Google Play,那么这个改动暂时是感知不到的。

▲图片来自:unsplash

但 AAB 格式的优点这么多,我们有理由相信,国内的应用商店会逐步跟上 Google 的步伐,拥抱 AAB。

而且我们上文说到,用户下载的安装包,依旧会以 APK 格式呈现。因此那些「Google 此举是为了针对国内厂商」的谣言,也就不攻自破了。

何况华为等应用商店,从前两年开始,就已经支持开发者上传 AAB 格式的应用。所以用户们大可放宽心,静等 AAB 格式推广的红利即可。