安卓真的没iPhone流畅吗?

安卓手机真的没iPhone流畅?……我先告诉你标准答案,的确如此。

PS:如没特殊说明,文章中“安卓”特指安卓手机。无论你是苹果的粉丝还是谷歌的粉丝。看完这篇文章之后你都需要知道一个事实……安卓手机用起来就是没有iPhone流畅。作为一名开发过IOS和安卓的程序员很负责任的告诉你。

极客导航会用很通俗的词语来讲,很认真的写这篇文章,希望你能认真看哦!

APP运行的差异性;

有过编程经验的朋友都知道,编程语言分为编译性语言与解释性语言。比如C,C++是编译性语言,Java,php是解释性语言。看不懂没关系。简单理解是这样。有个中国人跟你聊天,直接中文沟通就行了(类比成编译性语言)。如果一个德国人跟你聊天,你可能需要找个翻译(类比成解释性语言)。

分析区别,第一种直接说中文沟通很快,但是话说错了就是泼出去的水,没法改。第二种有个翻译,如果老外说错了翻译还能即时修改,但是牺牲了沟通速度。

iPhone的APP是直接编译成机器能识别的语言,而安卓APP是先编译成安卓虚拟机dalvik能识别的语言,再由虚拟机翻译成机器识别的语言。虽然现在java虚拟机已经相当成熟,理论上与机器语言执行效率差别不大。但由于硬件的差别很大,所以效果总不是理论上那么理想,而且虚拟机非常吃硬件,导致安卓手机的配置普遍比iPhone高。

安卓APP的这种工作方式不改的话来和iPhone APP比响应速度,对安卓来说不公平,因为没得比。既然安卓存在这种“问题”,官方为什么不改架构呢?

我们再分析聊天这个例子,如果牺牲了沟通速度但是可以换来你和世界上任何国家的人沟通,你会怎么选?……因此你会发现KTV的点歌系统,家里的微波炉,洗衣机,电视机,数码相机都用的安卓系统。只要能装dalvik虚拟机的地方就能装安卓,就能运行安卓APP。iPhone则不行,只能用在苹果自家的设备上。所以请有些朋友不要喷安卓,他虽然是比苹果卡顿,但是换来了强大的兼容性。随着硬件越来越好,卡顿基本可忽略。我们要做有长远眼光的人!

触摸响应的优先级

iPhone是把用户的触摸响应放在系统的最高级别,而安卓则把触摸响应放在系统第三级别。所以iPhone用户会感觉到自己动一下屏幕,马上能得到反馈,相当流畅。而安卓用户则需要等待CPU处理完其他优先级高的指令,再来响应触摸事件。

安卓设备上基本都有返回,设置,home按键,这三个按键优先级是比较高的(相比触摸事件)。因此魅族放弃设置和返回按钮有点跟风的感觉。至于安卓为什么要这样设计,我个人猜测是传承linux特性。Windows系统的界面渲染也是放在内核级别,而linux的界面渲染优先级不高,导致linux的可视化界面没Windows流畅。不过随着PC机硬件越来越好,这种不流畅基本可忽略。

硬件加速

CPU用来解析各类程序,是大脑。GPU则是专门用来渲染图片的。为什么要把GPU从CPU分出来?因为处理图像的操作都是很傻瓜,但要重复的操作。CPU是用来处理核心任务的,这种傻瓜操作扔给GPU更合理。说这么多没点到核心。程序在运行的时候,比如放电影。如果是软件解码的话很费电,手机一下就像馒头样烫手。硬件解码才是最有效的。

但安卓为了适配无数硬件,导致软件的运行基本是软解码。用不上硬件加速,大部份硬件只能看不起作用,CPU和内存负担反而越来越重。而iPhone的硬件软件都是自己生产,调用硬件加速很便捷,所以iPhone配置很低,但是运行软件也非常流程。谷歌开发者大会上,新版本的安卓系统已经着手解决这个问题,至于效果如何,我们拭目以待。

极客吐槽:安卓没有iPhone流畅,这是不得不承认的事实。当然也没有可比性,安卓的布局是在整个电子设备圈,而iPhone只是为手机而生(之后的车载系统并不是苹果的初衷)。为了兼容性而放弃流畅,是否值得。我个人觉得是值得的。之后安卓系统在医疗,航空,机器人等领域都会有很好的表现。安卓会改变我们的生活,苹果会改变我们的习惯。别觉得安卓low,长远来看,安卓会发展的越来越好。

利益相关:苹果用户与谷歌脑残粉