【极客之思】我为什么想摔手机?APP不可承受之重!
2013-12-03 07:13 手机 变慢 极客

我有一台Huawei Ascend Mate,还有一台MI 1S。他们之间有着明确的分工。Mate负责联络工作,而M1里的SIM卡是平时唱K时留给女孩子的号码。本着资本家的剥削精神,我也不能让M1只在周末工作,所以他在勾搭之外的另一个作用就是测试各种应用。作为一个兴趣使然的码字人,写啥我都基本上先稍微把玩下,不写也会用用了解下。M1一直以来都很好的完成了任务,不过时间用久了,还是感觉变慢了。这种感觉很多人应该都有体会,不过我想我的体会更直观点,因为我的M1中装了16个社交应用、8个新闻客户端、4个阅读工具

 

我有一台Huawei Ascend Mate,还有一台MI 1S。他们之间有着明确的分工。Mate负责联络工作,而M1里的SIM卡是平时唱K时留给女孩子的号码。本着资本家的剥削精神,我也不能让M1只在周末工作,所以他在勾搭之外的另一个作用就是测试各种应用。

M1一直以来都很好的完成了任务,不过时间用久了,还是感觉迟钝了。我的M1中装了16个社交应用、8个新闻客户端、4个阅读工具、9个电商应用、各种O2O应用,还有其他无数乱七八糟的各类应用,属于APP重度患者。不能酣畅淋漓秒开APP让我一度不爽到想砸手机。。。冷静!

我第一个想到的是把M1处理掉,然后搞台MI 3耍耍;第二个办法是刷机,好比在PC上重装系统,不过所有应用重新设置一遍也是相当的麻烦;听朋友建议还有第三个办法,先打开LBE安全大师pia的清了几百M,又打开金山家的猎豹清理大师pia地又清了几百M,加起来超过1.5个G,还真的有种世界顿时清静了的感觉。

其实在PC时代,系统垃圾就是老大难问题:占内存,占cache,占硬盘。以QQ为例,聊天的缓存文件夹随随便便就是上百甚至几百M,也不知道是不是企鹅家在做安全产品以后意识到了这个问题,后来QQ会时不时弹出建议清理的提示了。浏览器也一样,Chrome之所以速度快和他对内容的缓存处理是分不开的,所以Chrome的也会有很多缓存文件产生。一般的小白都不知道要清理这些文件,时间久了只好加根儿内存条了事,殊不知治标不治本。

不过pc上现在TB级的硬盘也是常事了,内存动不动就是8个G,小白们又土豪多,不怕垃圾拖。不过手机上就不一样了,猎豹清理大师有个统计数据,超过60%的手机内置存储不超过4GB,使用最多的是1G -2G,为24%;512MB-1GB,为11%;超过16GB,只有9%。空间如此有限,pc时代的开发陋习平挪到手机上,手机如何不慢?

艾媒不久前也发布了一份调查报告,说42%的手机用户认为进程、内存和系统垃圾的清理功能是第一需求,而病毒查杀、流量监控两个功能的需求只占36.8%。用户对于系统清理的需求已然超越对恶意应用的防范。

让人抓狂到想摔手机的缓存垃圾到底是咋产生的?为了得到一个靠谱的说法,我特地请教了一位刻薄的张江男。刻薄君作为一个开发界的技术宅,不厌其烦地向我进行了“代码级”的解说。

大致来看有以下几种:① 缓存文件,以视频和图片为主。② 卸载后残留文件。③ 安装完毕的apk包。④ app内广告用到的素材。追溯这些系统垃圾形成的原因,我想不可否认的一点是,应用开发者们是要承担很大一部分的责任的。

就先以缓存文件来说吧,我想空占缓存对系统有多大的影响,这个有点IT常识的人都明白。但是依然有很多应用在开启后只加载,不释放,特别是视频、音乐、图片会占用相当大的空间。某些视频工具,在播放视频的时候会预加载部分内容到缓存。这原本其实是好事,可以确保播放流畅,但问题是播完之后就此撒手不管了,就这么留在缓存里了。

还有一些浏览器、社交应用、购物应用,图片加载完就一直藏在那里了。很多图片其实用户是没有二次阅读需求的,即使有也可以通过其他方式取回吧,为何一定要占用有限的存储空间?

再来看卸载后的残留文件。有些应用被卸载却仍然残留下很多文件方便用户再安装时调用,但在我看来这个可以算是诈尸行为了。其实已被卸载的应用被再装上也是常有的事,不过留个索引或者设置文件就行了,动不动就留个几十几百M的文件,有必要麽?

再比如,某相机应用对每张图片自动生成多个效果图,用户可能用得到,可能用不到,一气儿全留在系统里,就算你删了应用,这些文件依然残留。如果是怕用户遗失照片的话,把机器行为和用户行为的存储路径区分开不就行了吗,卸载的时候把自动生成的内容都带走不是什么难事。Why not?

说说安装包的问题。一个是预装应用占内存卸不掉的事,这个大家心知肚明是硬件商自己的小九九,除了root没啥好办法。但另一个更新包残留的问题不难解决吧?有些应用即使只是修复了一个针对特定机型的bug,也会给个通知栏建议升级刷刷存在感,但升级完之后,安装包依然留在系统里。每隔几天迭代一次确实值得佩服,但留下这么多安装文件在系统里,这不是坑小白吗?这里我倒是建议用户通过一些应用市场来下载应用,现在很多应用市场已经会在安装后自动清除安装包了,而应用自身的开发者们还在给用户添堵。

好了,只要你是开发者,那PM或者Coder,总得占一份吧。上述问题是不是无法解决呢?据说google产品的代码都要跑个系统审核,如果不合规的话是无法提交上去的。很难指望所有公司都做到这个份上,毕竟以一个打工者的心态来说,能满足提出的需求就是任务完成了,老板又不会因为这个给你加薪,何必自找活干。

不过我想,如果是一个有追求的Coder,有一颗做好产品的心的话,是不会允许这样那样的陋习一直存在的。新功能都赶着上,历史问题却不处理,说到底,还是一个浮躁的行业心态的问题。

这里引用金山发布的一组数据,据说国内用户平均一周有2.78次要用到猎豹清理大师来清理垃圾,超过37%的用户首次清理出的垃圾大小超过1G。既然在我的M1上能轻轻松松清理超过1.5G,那这数据看来也不像是瞎编的。如果有开发者们看到这组数据,不如回头核算一下,你的应用平均给系统造成了多少不可承受之重?