专栏名称: 科技美学官方
科技美学小号,一些被删除的文章,可以在这里找到
目录
相关文章推荐
数据何规  ·  Telegram交出数千个用户数据,隐私政策 ... ·  4 天前  
数据何规  ·  Telegram交出数千个用户数据,隐私政策 ... ·  4 天前  
无锡博报生活  ·  确认!“来福士”落地无锡! ·  4 天前  
无锡博报生活  ·  确认!“来福士”落地无锡! ·  4 天前  
一亩三分地Warald  ·  2025年H1B重磅改革!可以成立公司自雇申 ... ·  5 天前  
51好读  ›  专栏  ›  科技美学官方

走近科学:为啥APP越更新体积越大?

科技美学官方  · 公众号  · 科技自媒体  · 2017-08-15 18:30

正文

以下内容来自三易生活

不知道各位有没有这种感想——一两年前买的手机、平板,只是平时装了几个软件和游戏……然后,突然容量不够用了?!

因为容量不够,不仅无法更新软件,甚至有时就连日常功能都会难以使用。最可气的是,其实这时候手机的硬件性能根本没有过时。

这时候你也许会发现——为什么最常用的APP越做越大了??

以微信为例,2011年发布的微信2.0版是第一个加上语音功能的微信,但当时它的安卓版安装包仅有1.4MB。六年过去,最新的微信版本是6.5.10,而它的安卓版本安装包体积已经高达45MB,增大30倍!而在iOS平台上更加吓人——207MB的安装包体积甚至已经在一些手游之上了。

如此一来,对于一些老型号、小容量智能设备来说,即使正常的软件更新也有可能直接导致存储“告急”。对于这样的现象,有人认为:应用程序的“体积膨胀”是软件开发者和硬件生产商之间勾结的阴谋,目的在于加速老设备的淘汰,逼用户换新机……

真的是这样么?其实,我们也许是太喜欢“阴谋论”了——应用“膨胀”真实原因,远比你想象的要复杂。

功能增加是主因


这是最容易想到的——新的功能必然会需要更多的代码和资源来实现,应用因此变大再正常不过。

2011年的时候,微信不过只是“加上语音功能的聊天软件”;如今它却已经成为具备社交、视频、购物、游戏、运动、新闻、邮件等诸多功能的集合体,甚至还有运行在其上的“小程序”……这样一来,体积能不大么?

不过,这些增加的功能并非人人都需要,但相关的功能却并不会因此取消,它至少还在浪费着我们的手机容量……

设备规格促进程序进化


除了功能增加,硬件设备本身的规格改变也会逼程序员对程序作出较大的改动。

最典型的例子是iPhone和iPad——最早的几代iPhone屏幕分辨率是480x320,到了iPhone 4,屏幕分辨率一下子提高四倍(960x640)。由于苹果强制要求APP适配新的分辨率——这意味着,用于iPhone 4之后的APP中,界面素材的部分要占用至少原来4倍大的存储空间。那么iPad Pro屏幕分辨率高达 2732×2048,对应的APP仅在界面部分的图片资源比初代iPhone对应APP要大36倍……

当然,除了单纯的因为界面分辨率提升而导致的空间占用增大外,由于手机性能大幅增强,过去我们不曾想象的诸多高画质手游、大型计算程序也开始出现在手机上。它们画面复杂、功能先进、用户体验极为强大,负面作用就是超大的安装包。

“碎片化”不容忽视


实际上,由于新老设备会在用户群中共存很长很长的时间,对于开发者来说,要想保证自家的APP在各种不同规格的设备上都能正常工作,只好针对每种不同分辨率、硬件平台的手机分别写不同的优化代码。

这种情况下,APP在发行的时候出现问题了——理想的做法是给每个不同分辨率和硬件平台的设备分别出一个分支版本,但问题是——不是所有的应用商店都足够“聪明”啊!

Google Play Store的确允许开发者这样做,商城会自动识别用户的硬件型号,只显示最适合的软件版本。但几乎所有的国内安卓商城都没有这个功能——对于开发者来说,只好把所有不同设备的适配代码做到一个安装包里,然后在安装的时候自动识别——其中也包括大量旧的冗余代码。这样一来,应用体积不大才怪了。

虽然一般认为这种硬件上的“碎片化”导致的软件臃肿现象只会出现在Android系统设备上。事实上,苹果近两年来持续改变新iPhone/iPad的屏幕分辨率,iOS设备也已经有了碎片化的迹象……

富裕的极客开发者


相信看到这里的朋友,一定会对这条原因有点诧异——开发者有钱,和程序本身的臃肿有什么关系么?

实际上还真有:根源来自开发者本身在编写应用时所使用的调试设备(通俗地来说,就是程序员用来测试已经写好的程序时使用的手机、平板、电脑)。

因为开发者们长期接触到的是业界最新的技术、开发文档、编程思想;他们也有足够的财力购买刚刚推出的最新最强的手机、平板一变进行针对性的优化。试想一下,当你已经习惯了电脑里好几TB的固态硬件阵列,所用的手机最少也有64GB或者128GB的存储空间——你会觉得这是理所当然的,它就是未来的技术发展方向,所以只要自己写出的应用可以适配这些“旗舰机”就好。

这种想法并没有什么恶意,也确实符合整个业界可持续发展的利益——但无形中,这就把那些生活拮据、或是自己没有能力、动力更新硬件设备的消费者排除在外了。

结果或是“两极分化”


所有的这些因素综合在一起,结果就是在数码产品的使用者之间划出一道巨大的“鸿沟”。消费得起顶级旗舰设备的人在很长时间里都会得到优质的应用体验,反之,廉价入门设备的消费者有可能从一开始就得不到良好的使用体验,或是在一年不到的时间里就变得卡顿、难以使用,不得不再掏钱更换新机。

从长远的角度来看,这会造成类似“富者愈富,贫者愈贫”的效应……

但是——对此我们能怪谁呢?其实可以说谁也没有错——错的只是技术发展的速度和经济福利普及的速度不相称。这里面并没有“阴谋”,有的只是无奈。






阅读原文 访问我们的论坛

↓↓↓