不久前,Android 13的首个开发者预览版亮相,也标志着Android又一次进入到了功能大幅更新的周期。而谷歌在宣布了即将于Android系统上推出隐私沙盒技术、降低广告追踪用户的力度后,近日在最新的一篇官方博文中透露,正在为Android系统开发一种工具,可以让用户“应用归档(App Archiving)”某些应用程序,以帮助释放设备的存储空间。
Google Play产品经理Lidia Gaymond在博客中表示,App Archiving功能旨在解决手机存储空间不足的问题。据官方透露的信息显示,使用App Archiving可释放多达60%的存储空间,但该功能并不会卸载应用、也不会删除用户的个人数据,而是通过删减应用的某些功能组件、并将这些功能组件存档,以此来达到给手机“瘦身”的目的。
并且谷歌通过创建一种新的APK格式,来实现这一目标,而官方则将其称之为Archived APKs。据谷歌方面透露,相比于传统的APK,Archived APKs要小得多,并会保存用户的所有数据、直到用户恢复它。该功能将在Bundletool 1.10版本中提供给开发者,但在“今年晚些时候”向用户推出该功能前,它将不会发挥作用。
事实上从某种意义上来说, App Archiving是谷歌此前推行的Android App Bundle(简称ABB)格式升级版本。而ABB则是谷歌在2018年推出的开源应用安装包格式,并且在2021年8月其就已宣布,所有提交到Google Play的新应用必须采用AAB格式、不再允许使用APK格式。
然而对于开发者来说,AAB仍有两个问题有待解决。其一,就是ABB只有Google Play使用,所以在为其他应用商店推出APP时,就需额外花时间来将APP改为APK版本;其二,则是开发者将ABB格式的APP导出为APK时,需要向谷歌分享极为敏感的签署密钥,这则是许多开发者都不太愿意的。
所以有观点认为,App Archiving的推出也意味着ABB格式的升级版,或将全面推广到Google Play之外的所有Android应用分发渠道。
要想知道App Archiving是如何实现号称节省60%的存储空间,就需要了解其前身ABB格式的实现方式。据悉,ABB是谷歌推动模块化应用开发技术的组成部分,它将一个传统的APP拆分成三个不同部分,分别为包含了所有其他拆分APK都可以访问的代码和资源,并提供了应用的基本功能Base APK、适配当前手机屏幕分辨率资源的Configuration APK,以及包含应用中某项功能代码和资源的Dynamic feature APK。
简单来说,就是开发者可以在开发平台Android Studio中构建一个应用束 (App Bundle),然后再通过被称之为Dynamic Feature Module的工具,向设备交付必要资源。这一逻辑其实非常像目前相当多游戏使用的按需加载模式,只有当玩家到了某个新地图才开始下载地图资源一样。同理,在APP上有的用户可能很久都不会用到的一部分功能,就可以放在Dynamic Feature Module,一直到需要用时再进行下载。
而App Archiving的原理,则是由于开发者基本都会遵守谷歌提供的开发指南来打造APP,这就导致了相当多APP调用的库、使用的函数,以及应用的功能都是一样的。再加上Android APP的底层和中间层架构虽然不能说是一模一样,但也八九不离十,那么既然大家都要使用同样的资源,将多出来的“支持部分”卸载无疑就能够节约大量的空间。
那么谷歌推出的这项功能到底有没有意义呢?答案是肯定的。因为纵观目前的智能手机,在中高端市场上除了新款iPhone SE外,其实已经很少有64GB存储空间的机型了,并且这一规格基本也只存在于入门级产品中。而这其中的原因,既有技术进步带来闪存成本降低,也有开发者在“安迪-比尔定律”下已经迅速将硬件性能的升级给消耗了。
想必大家应该已经发现,如今APP的体积都动辄数百MB乃至数GB了,但在十年前数十MB才是主流。为了实现更多的功能或是更绚丽的显示效果,开发者也不吝于堆砌内容。为此消费者自然就要追逐更大的存储空间,来满足自己日常使用、休闲娱乐,乃至工作的需求。
在有了App Archiving后,消费者就能在不购买更大存储容量手机的前提下,下载更多的APP。而谷歌也能让更多入门级乃至Android Go机型的用户,体验到更加丰富多彩的Android生态。或许唯一的受伤的就只有手机厂商了,毕竟未来1TB乃至更大容量的存储空间可能会就此失去噱头。
本文来自微信公众号 “三易生活”(ID:IT-3eLife),作者:三易菌,36氪经授权发布。