安卓手机为何越用越卡

身边不少人在使用安卓手机的时候,经常会愁眉苦脸,为什么呢?因为卡……虽说安卓手机的内存一直往上走,从早期的 1GB 到现在的 6GB,但无论如何,总有人会认为自己的安卓手机越用越不流畅,哪怕是内存加大了也没用!事实上,这的确不是错觉!相比苹果手机仅需 1GB 内存就可以流畅无比滴用上数年,安卓手机在这方面的体验可以说是相当糟糕!

尽管有厂商层豪言自己做的安卓手机永远不卡,不过这厂商最近牛皮吹破天,正在以一种落水狗的形式被大众痛打着,所以这里这永远不卡的可信度有多少,也很难说!而事实上绝大多数安卓手机总避免不了这个问题,那这个问题到底是怎么产生的?我们又该如何应对呢?请往下看!

安卓系统的先天不足以及后天混乱

一般而言,开发者在早期开发安卓系统的时候,都是在 Linux 上跑个虚拟机,再用 JAVA 做开发,虽然能减轻开发负担,但在后期优化上的成本增加更多,Java 没有提供操作来释放内存(iOS 的开发语言 Object C 能自行控制内存释放),仅仅通过系统的内存回收机制来进行管理,但内存回收是个双刃剑,在进行这个操作时处理器所有线程都要暂停,遇到这种情况,用户当然就会感到卡顿。

和 IOS 封闭的环境不同,开放的 Android 必然带来混乱这样的负面作用,碎片化是众所周知的恶果,一些应用为了兼容更多旧款设备,只得继续使用低级别的 API,早前的 Android 5.1 支持的 API 级别已达到 22 了,某些软件还使用的 API 9 的级别,这是为了更好兼容老安卓版本,但是效率上肯定很惨,除此之外,开发上的开放性更是一个非常大的隐患。

苹果为了获得最好的流畅度,做了非常多的妥协来换取用户体验上好感,比如墓碑式内存管理、优先 UI 渲染等,这都让 IOS 变得更为流畅。

而 Google 其实也在努力,比如说在 2012 年提出了黄油计划,开始着手解决 Android 卡顿这个老大难问题,并从 Android 5.0 开始,将 Dalvik 虚拟机全面转向 ART 虚拟机,后者在安装应用的时候会进行预编译,将代码转换为机器语言存储在本地,这样在运行程序时就不用每次都编译一次,执行效率得到大大提升,同时,新的 ART 模式也降低了每次内存回收时线程暂停的时间,一些额外的优化也可以避免线程频频暂停。

所以按道理而言,安卓随着版本的进化,应该是越用越流畅,但是现在都到了安卓 7.0 了,为何大家还是感到手机卡顿呢?

开放的平台让流氓丛生

之前有人做个测试,一个 2GB 内存的安卓 7.0 手机,安装十多个国外的 APP,运行起来依然非常流畅,而只要安装了几个国内厂商的 APP,整个系统就卡顿起来了!要说国内厂商技术比国外差我相信,但是要说差到这么离谱那则是天方夜谭,那为啥国内厂商的 APP 就能让安卓运行起来这么吃力呢?

很显然,这就是国内厂商故意而为之了!Android 的开放是把双刃剑,开发商掌控着进退大权,而以国人之尿性,抢占市场、提升 APP 活跃度往往是最重要的,既然我不流氓别人也会流氓,我为什么不更流氓呢?

Android 应用开发有四大组件,广播接收器(BroadcastReceiver,以下简称 Receiver)就是其中之一,它用来接收来自系统和应用中的广播,你也可以理解它是一个监听器,比如当电量变化时,系统会产生一条广播,接收到这条广播就能在电量低时告知用户保存进度或进入省电模式等;当有电话进来,也会产生一条广播,就会通知电话接听或电话号码判断等。

在 Android 中,全局的 Receiver 就近百种,可以监听各色各样的状态变化,比如开关机、通电断电、网络状态变化、电量变化、安装卸载应用、电话呼出呼入、SD 卡变化等。开放的 Android 允许应用程序注册任意个 Receiver, 这也成为流氓应用滋生的温床,不良的开发者向系统注册多个静态 Receiver,接受各种广播通知,然后执行相应的 Activity,比如自启动。

举个例子,一个国外的 APP 可能就注册一两个 Receiver,而像百度、腾讯这样的厂商,为了接受各种广播以及让用户在手机应用过程中进行各种各样的动作,他们就会注册几十个的 Receiver。

Android 越用越卡的主要原因在于,后台有大量应用在默默运行,而这些应用根本就是清理不掉的,它们会在收到各种各样的 Receiver 通知后并再度启动,而苹果手机系统 iOS 中被杀掉的后台进程再启动的方法很有限,简单的说,iOS 是真的能清理内存,而 Android 中许多应用挥之不去,不断重生,各种进程与服务在后台偷偷运行,从而引起系统卡顿与耗电……

国内无良厂商就是卡的主因

恩,不客气的说,很多国产 APP 的作用除了 APP 本身的用途外,剩下就是让你的手机卡顿和耗电……而且从利益关系来看,他们是不会改变这点的!所以安卓手机卡顿一部分原因可以归咎于谷歌在开放性上的无助,但更大原因还是国内的无良厂商太多了!

ebay 只有三种正常的自启动,而淘宝 APP 呢?更改失去也要启动,设置时间也要启动,应用卸载也要启动……也就是说当用户不需要在安卓手机运行淘宝的时候,做其他一些事情,淘宝这个 APP 就不知不觉的启动了……说到这里略微想骂娘,你 TM 有本事,怎么不在我吃饭的时候自启动啊!用户各种和淘宝没半毛关系的操作,都会引起淘宝的自启动,类似软件在国内用户手机中何其多,你的手机怎么会不卡?这么多内存又有什么意义呢?

嗯,告诉大家,百度某些安卓 APP,可以做到 19 种自启动模式……又想骂娘了!这下知道为什么安卓手机会这么卡了吧?

悄悄说:如果用户手机装了一系列腾讯、百度以及阿里巴巴的安卓 APP,那恭喜你,当你打开某个 APP,这个 APP 公司旗下的其他 APP 很可能就会被关联上同时启动……恩,比如打开百度地图,如果你的手机中还有百度新闻、百度输入法、百度糯米等软件,那么这些软件会如同吃了春药一般兴奋,纷纷自启动……你说你的手机卡不卡?不卡算你赢!

如何应对安卓手机卡顿?

面对这些不断重生的 APP,清理内存实际上是没什么卵用,因为清理了它就又会启动了,从根本意义上而言,我们需要的是让这类 APP 不被唤醒,个人认为有这么几种办法!

– 使用更合理的底层 ROM,某些手机的 ROM 已经开始解决这类问题,可以切断关联唤醒,算是一个进步!

– 尽量不用 BAT 的 APP,这点当然很难,比如淘宝和支付宝就无法避免!所以说只能尽量避免使用几个流氓的 APP,能替代就替代吧,比如百度地图就用高德地图替代!浏览器什么的也别这些公司的。

– 用一些第三方管理工具,要能切断关联唤醒的管理工具,比如 360 卫士,当然不代表我就推荐 360……用 LBE 也可以!反正类似的就行!

– 要么安卓用户换个手机?用苹果试试?

现在大家知道安卓手机为何越用越卡的原因了吧!从根本而言,还是国内厂商无底线逐利所导致的,在加上谷歌国内业务萎靡,监管不够,这让安卓手机卡顿的问题有点无解!其他什么不想说了,还是希望国内厂商有点良心吧!

>> 除非说明均为原创,如转载请注明来源于 http://www.stormcn.cn/post/1916.html

© 版权声明
THE END
喜欢就支持一下吧
点赞10赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容