为什么 iPhone 6 内存仅有 1GB,而很多安卓机配置相当高,还是觉得 iPhone 流畅一些? 相信很多网友都有类似疑问,感觉 Android 手机在流畅度上不如 iPhone 手机。先不说一些配置低的安卓机,即便是最新版安卓系统的旗舰手机,也感觉达不到 iPhone 手机的那种流畅度,因此有人以此判断 Android 手机不好。 其实,这是二者系统机制不同导致的差异。 UI 渲染 Android 没有 iOS 流畅的根本的原因是,iOS 的 UI 渲染采用实时优先级,而 Android 的 UI 渲染遵循传统电脑模式的主线程普通优先级。 通俗点说就是 iOS 对屏幕反应的优先级最高,用户只要触摸屏幕,系统就会最优先处理屏幕显示这一层级,马上给出动画效果;然后,才处理媒体、服务、核心架构。 而安卓则是追求进程优先,触摸手机屏幕后的屏幕显示和动画效果会放在比较后的优先级。同样,打开相同网页,Android 手机会直接将整个网页全部加载同时渲染 HTML,这无疑会增加处理器的压力。因此,对于 Android 来说,一个高效的双核处理器是很重要的。 在 iOS 中 UI 渲染过程具有绝对优先级,当用户接触到 iPhone 的触摸屏后,iOS 中所有进程都将停止,UI 线程拦截了所有事件。系统会将所有资源用于渲染 UI 过程,以保证用户界面的实时渲染优先级。 而在 Android 系统中 UI 渲染过程的优先级却没有那么高。也就是说,当触摸 Android 手机屏幕时,系统后台程序并没有停止,仍然在继续运行。譬如:下载、查收短信,这样系统 UI 获得的资源就不够,这就是 Android 系统不流畅的原因。 后台机制Android 后台是真后台,像 PC 一样,将应用保留在 RAM 中。当用 HOME 键退出应用时,程序实际上并没有完全退出,而是被系统挂在了后台。为何我们关掉了聊天软件,依然能收到消息通知,因为它常驻系统内存。包括平时收到的一些垃圾广告推送,也是因为后台有程序运行。 所以这导致了一个现象,从内存使用上来看,安卓刚开机时内存使用很低,若不进行清理内存操作,正常使用一天,内存占用会达到 75% 以上。而内存占用越高,使用起来流畅度就会越低,所以安卓机器需要更大的 RAM 来提升用户体验。 iOS 其实采用的是伪后台,当用户用 HOME 键退出应用时,iOS 其实关闭了程序,只保留应用的图像入口,只会默认将应用的最后运行数据记录在 RAM 中。 之所以 iOS 也能收到推送,是因为当用户从应用中选择开启推送之后,系统会增加一些进程。这些进程会从苹果服务器接收信息,然后再通过服务器发给用户,苹果服务器在这里是起到了中转的作用。而正是因为有了这一系列机制,所以即便 iPhone 的配置相比于同类 Android 机低很多,但 iOS 还是会给人更加流畅的感觉。 程序效率 Android 系统编程语言为 Java,特点是通用性强,效率低。iOS 系统编程语言为 Objective-C,专一性强,效率高。 iOS 系统优化得好,程序是直接执行,所以效率很高。而 Android 系统是通过 Java 虚拟机来执行,系统需要占用大量内存以换取执行速度,也就是要绕了个大圈才执行程序,所以效率低很多。 由于 iOS 的封闭性,App Store 里面的 App 都是在 iPhone 等产品上执行,硬件利用效率非常高。且分辨率大小、硬件的更新、等参数也比较稳定,优化工作也容易进行,因而 iPhone 上的 App 和硬件结合程度比 Android 要高很多。 安卓手机的硬件配置天天变,开发者也不可能针对所有机器型号进行开发。只能在比较主流的机器上进行测试并保证运行流畅,所以,很多国产中低端安卓手机很难得到流畅的使用体验。 版权声明: 本文由 德云社区 整理,原文来自网络。 |