你好,欢迎来到黑马公社。
不得不说,现在的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学习。