IDC

谷歌弃用APK包格式,转而使用AAB格式

作者:admin 2021-07-12 我要评论

近日,谷歌官方宣布:自 2021 年 8 月起,Google Play 将要求开发者以 Android App Bundle (以下简称 AAB)格式发布新应用,该格式将取代 APK 成为标准的Androi...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

近日,谷歌官方宣布:自 2021 年 8 月起,Google Play 将要求开发者以 Android App Bundle (以下简称 AAB)格式发布新应用,该格式将取代 APK 成为标准的Android应用发布格式。
在这里插入图片描述
一直以来,Android 首选的应用程序包就是 APK。APK 是 Android Package 的缩写,即Android 安装包,是一个碗基于 ZIP格式的压缩包文件,里面包含应用代码、图片、音频和开发者生成的应用签名密钥等大量资源。在制作APK包的时候,通过Android SDK 提供的打包工具打包成一个 Android 系统支持的安装程序文件,几乎所有 Android 应用程序都使用这种格式发布。

1, 为何要从 APK 转变为 AAB

一直以来,Android 首选的应用程序包就是 APK,那为什么Android要将安装包的格式从APK转变为AAB呢?有人说是为了应对鸿蒙。在我看来,其实不然,官方之所以这么做,其实是为了降低APK大小的一种手段。

总所周知,一个APK中往往包含应用代码、图片、音频和开发者生成的应用签名密钥等大量资源。不仅如此,为了兼容更多的设备,一个APK还需适配不同的屏幕密度(320dpi、480dpi 等)、处理器(ARM、ARM64、x86等等。但在这种情况下,应用开发者便承受太多:不仅要开发应用,还要管理许多 APK 以支持大量设备。

因此为了省时省力,大多数开发者都会选择构建一个通用 APK,即包含语言包、代码等在内的所有资源。不论用户身处何处、使用何种规格的设备,只需下载这个通用 APK 即可,这就造成APK包大的问题。为了解决这个问题,谷歌在 2018 年 Google I/O 大会上推出了 AAB 格式,希望以此减少开发者的负担,同时也有助于减少应用大小、安装时间和带宽消耗,提高用户体验。

所以说,AAB 格式其实并不是一个全新的应用安装包,而是一套软件的包管理方案,我们可以将它当做一个容器,里面包含着一个基本 APK 和多个用于特定配置的 APK。给予这一机制,很多公司在最近两年都用它实现了插件化和动态化下发的功能,参考文档:Android App Bundle

因此,一旦开发者选择使用 AAB 格式发布应用,谷歌就会根据用户的设备配置从中生成优化后的 APK 提供给用户。对用户而言,这样的 APK 体积小、安装快,对开发者来说也省事:不必再为各种设备管理一大堆 APK。

AAB 的优势与特点

相较于传统的APK方式,AAB 有哪些优点呢?首先,便是上文所提到的应用体积缩小。据谷歌官方介绍,使用 AAB 生成优化的 APK 体积平均会比一般的 APK 小 15%,而这一数据会根据应用大小有较大起伏。例如 Airbnb 在从 APK 切换到 AAB 格式后应用大小减少了 22%,而 Netflix 更是减少了 57%。
在这里插入图片描述

其次,AAB 的 Play Feature Delivery 功能可自定义将哪些功能模块交付给哪个设备,支持安装时交付、按条件交付和按需交付等三种模式。这也就是将应用的功能拆分开来,以此大幅缩短用户下载应用的时间,其中没用的功能用户可以不下载或等到以后需要时再下载。

还有一个 Play Asset Delivery 功能,以动态方式交付大型资源可以减少用户等待时间,同时缩减交付成本。即使用 Play Asset Delivery 的游戏可通过纹理压缩格式作为交付条件,以便用户只获取适合其设备的资源,避免浪费空间或带宽。

如何打AAB包

和APK包的制作流程一样,我们也可以使用Android Studio进行AAB包的制作。首先,选择Android Studio工具栏【build】->【generate singed bundle apk】,如下图。
在这里插入图片描述
在这里插入图片描述
最后打包完成,会生成一个xxx.aab的文件,如下图:
在这里插入图片描述

AAB转APK

虽然从结果看来,以 AAB 格式分发新应用对开发者和用户都有益处,但还是有部分人对此有些担忧。比如,有人就担心因为 AAB 不能在 Google Play 以外的地方下载,会对如亚马逊应用商店等第三方应用商店造成很大影响。为此,谷歌已经开发了一个名为 bundletool 的开源工具,允许开发人员从 AAB 包中创建 APK,因此想在第三方商店中发布 Android 应用程序的开发人员可以手动导出其应用的 APK 版本。转化的命名如下:

abb转apk
java -jar bundletool-all-1.7.0.jar build-apks --bundle=app.aab --output=finalapp.apks --ks=onlinetv.jks --ks-pass=pass:123456 --ks-key-alias=onlinetv --key-pass=pass:123456

安装
java -jar bundletool-all-1.7.0.jar install-apks --apks=finalapp.apks

本文转自网络,版权归原作者所有,原文链接:https://segmentfault.com/a/1190000040330437

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • 谷歌弃用APK包格式,转而使用AAB格式

    谷歌弃用APK包格式,转而使用AAB格式

  • RabbitMQ教程 5. Topics

    RabbitMQ教程 5. Topics

  • 初探 Redis 客户端 Lettuce:真香!

    初探 Redis 客户端 Lettuce:真香!

  • 数据库自治服务DAS论文入选全球顶会SIG

    数据库自治服务DAS论文入选全球顶会SIG

腾讯云代理商
海外云服务器