2013-03-04 13:32:34
分享

为什么Android没有iOS那么顺滑呢?

标签:Android,iOS,顺滑

  目前手机市场上,很多Android 手机的配置并不比iPhone 要低,大多数Andorid 手机的RAM有1GB,而 iPhone 4S RAM只有512MB ,但用过iPhone 的人都知道Android 手机在使用的时候总感觉没有那么顺滑,究竟为什么会出现这种现象呢?

  一位软件工程师和前Google实习生Andrew Munn解释说是因为Android系统UI的框架设计的问题。以下就是他对 Android 为什么没有 iOS 流畅体验的看法。

  Android 没有 iOS 流畅的原因并非 Java GC 导致暂停,也不是因为 Android 运行的是 Java 编译的 bytecode 而 iOS 运行的 native code,根本的原因是,iOS 的 UI 渲染采用实时优先级,而 Android 的 UI 渲染遵循传统电脑模式的主线程普通优先级。

  这听起来似乎很抽象和难以理解,但大家可以尝试一下,使用你的 iPad 或者 iPhone,打开 Safari,然后加载一个复杂的网页,例如新浪网首页,当网页加载到一半的时候,把你的手指放在屏幕上,并且四处移动,你会发现所有的渲染立刻停止,在你拿开手指前,网页永远也不会继续加载。

  而在 Android 设备上重复这个操作,你会发现,浏览器会继续尝试加载页面并渲染 HTML,试图多任务同时进行,因此对于 Android 来说,一个高效的双核处理器是很重要的,这也就是 Galaxy S II 能够非常平滑的原因。

  在 iOS 中 UI 渲染过程具有绝对的优先等级,当用户接触到 iPhone 的触摸屏后,iOS 中所有的进程都将停止,UI 线程拦截了所有的事件,系统会将所有资源用于渲染 UI 过程,以保证用户界面的实时渲染优先级。而在 Android 系统中 UI 渲染过程的优先级别却没有那么高,也就是说当你触摸 Android 手机屏幕的时候,系统后台的程序并没有停止,仍然在继续运行之中,比如下载和查收短信,这样系统 UI 获得的资源就不够,这就是 Android 系统不流畅的原因。

  由于这个原因,新发布的 Galaxy Nexus,甚至配备四核处理器的话说 EeePad Transformer Prime 平板电脑都无法保证顺滑的操作体验,这些设备只能与 3 年前的 iPhone 顺滑程度相比,那么 Android 团队为什么不从根本解决这个问题呢?

  除了 UI 渲染之外,Android 缺乏有效的的硬件加速也是一个原因,在不同的 Android 手机上的硬件加速存在巨大差异,而苹果是唯一一个既做硬件又做软件的手持设备公司,只有苹果可以在硬件中插入对软件的优化,使得基于苹果芯片的设备不仅省电,而且流畅。

  在 iPhone 发布之后,Android 小组为了快速推出能与 iPhone 竞争的产品,迅速将 Android 改成触摸屏手机系统,但那时重写 UI 框架已经不可能了。因为如果这样 Android 应用市场中的所有程序将变得不可用,这种关系将一直处于恶性循环之中。

  正是因为以上种种原因,所以Android 手机在使用的时候总感觉没有iPhone那么顺滑,Android怎样去改善这一现象,值得我们继续关注。