哈喽,欢迎来到黑马公社。

不得不说,现在的App真的是越来越大了。

一个QQ,体积已经超过了800MB。

亲,你可是一款社交软件。

向来简洁的微信稍好一些,只有200多MB,但内部缓存已经来到了10GB以上

就很无奈,手机存储日益渐增,软件也跟着与时俱进,存储好像变大了,好像又没变大。

这样的困惑,你们是否也有?

接下来,你们的手机即将迎来曙光,谷歌要出手了。

在不久前,Android 13的开发者预览版亮相,上线了一个新特性:应用归档(App Archiving)。

这个功能,可以帮助释放设备的存储空间,号称可以节省60%的存储空间。

谷歌是怎么做到的?

大致的原理是因为开发者在开发App的时候,都会遵守谷歌提供的开发者指南,所以基本上就会有很多重复的资源,像APP调用的库、使用的函数,以及应用的功能等。

将这些多出来的部分卸载,需要用的时候再来调用,从而达到节约空间的目的。

具体而言,这个功能不会卸载应用程序,也不会删除用户的个人数据,而是通过删减应用程序的某些功能组件,并将这些功能组件存档,以此来达到给手机“瘦身”的目的。

当用户再次使用这些应用程序时,Android系统会将存档的功能重新恢复。

一旦这个功能推行,到时像QQ微信那样的App,或许也能瘦身。

当然,现在这只是首个开发者预览版,距离正式推出还需要一段时间,国内开发者会不会跟进也不得而知,这里黑马就不做多赘述。

我们来说点其他的,比如为什么App一定要做这么大?是不是App就不能做小?

这让黑马想起一个名为 js13kGames 的大赛,比赛规则是用 JavaScript 开发一个 H5 游戏。

游戏大小仅仅为13KB。

13KB的大小做出一款游戏?这看起来似乎不太可能的事情,在JavaScript大赛上却涌现出了许多优秀的成果。

像2018年的冠军作品Planetfall,玩家需要找到每个星球上的卫星站并使其脱机。

看这游戏画面,你敢相信这竟然只有13KB吗?

2020年冠军作品——Ninja vs.Evilcorp更是一绝。

玩家扮演忍者,通过跳跃的方式来到电脑旁偷取资料,在走动时,忍者会有幻影,而且跳跃时还会有尘土的效果。

而这,仅需13KB的大小。

甚至还有13KB的绝地求生,毒圈、坐标、小地图、击杀提示,原版游戏有的,几乎都有。

就是游戏画风没有那么精细。

要说是因为功能多,所以App不可避免地会变大,那这个JavaScript大赛就用事实告诉你,丰富的功能和空间,有时候不算绝对的冲突,还是能通过优化替代解决的。

咱先别急着骂,应用做小不难,但是做得又小又好,这就有先天矛盾了。

在JavaScript大赛上,这些游戏是怎么做小的?

其中一个手段就是用光圈代替原图。

用十几个不同的光圈组成一个画面来代替本该出现的图片,就像是下面的蒙娜丽莎的图片一样。

从远处眯着眼看,会发现和蒙娜丽萨的原图,也大致相似。

小了是小了,但是画面也很粗糙。

如果说现在的应用显示是这个画面的话,绝对是会被喷的。

就拿QQ来说,为了更加真实和酷炫的超级QQ秀,就内置了3D 引擎“虚幻 4”,导致QQ体积瞬间暴涨。

为了追求更加精致的画面,更加丰富的功能,应用空间肯定会比原来的大。本来性能和空间就一直在升级,不用浪费。

不过诸如QQ这类的软件被吐槽,不仅仅是因为空间大,而是繁多的功能带来的空间增大。

换而言之,对于很多用户而言,这些功能不一定可以用到。

我不否认超级QQ秀的画风是好了很多,但我又不玩QQ秀,我为什么要因为我用不到的东西而占用我的手机存储?

是为了你的商业版图吗?

这增大的体积,如果可以带来我们常用的功能,这无可厚非,但很多时候我们是被迫接受的。

App会因为自己的商业版图扩充各种功能,会因为“元宇宙”在App中塞入“虚幻”引擎,加入的许多的功能不一定是用户所需要的,而仅仅是出于自己的商业目的。

那不用行不行?

黑马只能说一句,习惯是很难改变的,更何况有些App还处于市场垄断地位。

随着性能的加持,App功能也越来越丰富,这些功能,有些人的确会需要,但是也会有人不需要,或许App是不是可以把功能组件列出来,需要的小伙伴可以自己下载?

这也和Android 13开发者预览版所带来的应用归档(App Archiving)异曲同工。

最后再说一句,或许时至今日,13KB的游戏对于现在的设备而言有些“小题大做”,但这种在有限的条件下,努力压缩空间,想方设法提供优质体验的精神,很值得现在的App学习。