谷歌推出apparchiving功能

不久前 , Android13的首个开发者预览版亮相 , 也标志着Android又一次进入到了功能大幅更新的周期 。而谷歌在宣布了即将于Android系统上推出隐私沙盒技术、降低广告追踪用户的力度后 , 近日在最新的一篇官方博文中透露 , 正在为Android系统开发一种工具 , 可以让用户“应用归档(AppArchiving)”某些应用程序 , 以帮助释放设备的存储空间 。
【谷歌推出apparchiving功能】谷歌推出apparchiving功能
文章图片

文章图片

GooglePlay产品经理LidiaGaymond在博客中表示 , AppArchiving功能旨在解决手机存储空间不足的问题 。据官方透露的信息显示 , 使用AppArchiving可释放多达60%的存储空间 , 但该功能并不会卸载应用、也不会删除用户的个人数据 , 而是通过删减应用的某些功能组件、并将这些功能组件存档 , 以此来达到给手机“瘦身”的目的 。
并且谷歌通过创建一种新的APK格式 , 来实现这一目标 , 而官方则将其称之为ArchivedAPKs 。据谷歌方面透露 , 相比于传统的APK , ArchivedAPKs要小得多 , 并会保存用户的所有数据、直到用户恢复它 。该功能将在Bundletool1.10版本中提供给开发者 , 但在“今年晚些时候”向用户推出该功能前 , 它将不会发挥作用 。
谷歌推出apparchiving功能
文章图片

文章图片

事实上从某种意义上来说 , AppArchiving是谷歌此前推行的AndroidAppBundle(简称ABB)格式升级版本 。而ABB则是谷歌在2018年推出的开源应用安装包格式 , 并且在2021年8月其就已宣布 , 所有提交到GooglePlay的新应用必须采用AAB格式、不再允许使用APK格式 。
然而对于开发者来说 , AAB仍有两个问题有待解决 。其一 , 就是ABB只有GooglePlay使用 , 所以在为其他应用商店推出APP时 , 就需额外花时间来将APP改为APK版本;其二 , 则是开发者将ABB格式的APP导出为APK时 , 需要向谷歌分享极为敏感的签署密钥 , 这则是许多开发者都不太愿意的 。
所以有观点认为 , AppArchiving的推出也意味着ABB格式的升级版 , 或将全面推广到GooglePlay之外的所有Android应用分发渠道 。
谷歌推出apparchiving功能
文章图片

文章图片

要想知道AppArchiving是如何实现号称节省60%的存储空间 , 就需要了解其前身ABB格式的实现方式 。据悉 , ABB是谷歌推动模块化应用开发技术的组成部分 , 它将一个传统的APP拆分成三个不同部分 , 分别为包含了所有其他拆分APK都可以访问的代码和资源 , 并提供了应用的基本功能BaseAPK、适配当前手机屏幕分辨率资源的ConfigurationAPK , 以及包含应用中某项功能代码和资源的DynamicfeatureAPK 。
简单来说 , 就是开发者可以在开发平台AndroidStudio中构建一个应用束(AppBundle) , 然后再通过被称之为DynamicFeatureModule的工具 , 向设备交付必要资源 。这一逻辑其实非常像目前相当多游戏使用的按需加载模式 , 只有当玩家到了某个新地图才开始下载地图资源一样 。同理 , 在APP上有的用户可能很久都不会用到的一部分功能 , 就可以放在DynamicFeatureModule , 一直到需要用时再进行下载 。
谷歌推出apparchiving功能
文章图片

文章图片

而AppArchiving的原理 , 则是由于开发者基本都会遵守谷歌提供的开发指南来打造APP , 这就导致了相当多APP调用的库、使用的函数 , 以及应用的功能都是一样的 。再加上AndroidAPP的底层和中间层架构虽然不能说是一模一样 , 但也八九不离十 , 那么既然大家都要使用同样的资源 , 将多出来的“支持部分”卸载无疑就能够节约大量的空间 。