很多人都会觉得Android手机没有WP手机和iPhone手机流畅,不用说配置较低的产品,即便是配置最高,采用最新版Android系统的旗舰手机,也总是会让人感觉达不到配置较低的WP手机和iPhone手机那样的流畅度,所以有人以此判断安卓手机不好。事实上,这只不过是系统方面的一些机制导致的差异,毕竟我们讲体验,并不是单纯的去看手机的流畅度的,还要综合一些细节去全面的对比。有点扯远了,说回正题吧,那么是什么样的差异导致了Android手机的流畅性略输于WP手机和iPhone手机呢?其实无非是两大机制的不同造成的:后台机制和渲染机制。
后台机制方面的区别
提到后台,大家应该会很容易想到安卓的真后台了吧,所谓真后台,就是像PC一样,将应用保留在RAM中,当你使用HOME键退出应用,程序实际上并没有完全退出,而是被系统挂在了后台,比如一些聊天软件,之所以关闭后依然能够收到推送,就是因为其常驻系统内存,能够在后台接收到通知,当然,我们平时总能够收到一些垃圾广告的推送,也是因为后台有程序运行。而正是因为有了这样的机制,就导致了一个现象,那就是从内存使用上来看,刚开机的时候内存使用很低,如果不进行清理内存的操作,正常使用一天,内存占用会达到75%以上。而内存占用越高,使用起来流畅度就会越低,所以安卓机器需要更大的RAM来提升用户体验。
而iOS方面,与安卓不同的是,其采用的是伪后台,当程序进入后台会自动变为休眠状态。当你双击Home键呼出多任务管理界面时,你会发现所有的应用卡牌都处于停止状态,iPhone只会默认将应用的最后的运行数据记录在RAM中,而之所以iOS也能够收到推送,是因为当你从应用中选择开启推送之后,系统会增加一些进程,这些进程会从苹果服务器接收信息,然后再通过服务器发给你,苹果服务器在这里是起到了中转的作用。而正是因为有了这一系列的机制,所以即便iPhone的配置相比于同类安卓机低了很多,但是iOS还是会给人更加流畅的感觉。
同iOS一样,WP系统同样采用的是伪后台,也叫做墓碑机制。相比于iOS的后台,WP的后台更加吝啬,永远只能运行一个应用,有人说WP8.1后,WP有了全新的真后台机制,变得不再伪了,可以支持后台上传、后台播放双进程等等,其实这同iOS的后台推送机制相类似,不过是WP对后台进程多做了些优化罢了,正是因为系统对后台进程的严格把控,所以我们看到即便是有着很低内存的WP手机,在使用时也是非常流畅的。
渲染机制的差异
说过了后台的机制,我们再来说下渲染机制,这一方面也是决定手机流畅度的重要因素,WP系统和iOS系统的UI渲染都采用了实时优先级,而Android的UI渲染则遵循了传统电脑模式的主线程普通优先级,说白了就是前两者追求的是主屏幕显示优先,比如在加载一个复杂网页时,WP系统和iOS系统都会优先加载主屏幕的显示区域,而Android系统则追求了进程优先,同样打开相同的网页,Android手机就会直接将整个网页全部加载同时渲染HTML,这无疑就增加了处理器的压力。
而在其他程序中,用户在使用时其实就能够感觉到,当用户接触到WP手机和iPhone手机的屏幕后,UI线程会拦截所有的事件,系统会将所有资源用于渲染UI的过程中,以保证用户界面的实时渲染优先级。而在Android系统中UI渲染过程的优先级别却没有那么高,也就是说当你触摸Android手机屏幕的时候,系统后台的程序并没有停止,仍然在继续运行之中,比如后台下载,这样系统UI获得的资源就不够,这就是Android系统不流畅的原因。
那么为什么很多配置相当恐怖的安卓机同样会出现不流畅的情况呢?这就涉及到硬件加速的问题了,对于安卓机来说,硬件加速的资源很容易被安卓的渲染机制吃光。光是打开系统内置的“所有应用”的视图,就需要绘制许多不同的窗口,系统会默认对所有像素绘制一次背景,至少需要对一半的像素绘制一次 shortcut 和 widget 层,至少需要对一半的像素绘制一次图标和标签,也需要对所有像素绘制一次“所有应用”视图的黑色背景,还有“所有应用”视图的图标和标签。而说了这么多,这还不包括对这些窗口做最后的组合,系统基本上就把GPU的资源吃光了。当然,安卓对这个机制也有优化,比如把壁纸做成一个比屏幕大的窗口,这样在主屏滚屏时就不需要重绘,只要移动窗口就行。而这个绘制好了的窗口,就不需要额外的GPU计算量了,但这也不能从根本上解决问题,综合来看,Android手机就是要比WP手机和iPhone手机吃硬件,这也算是个历史遗留问题了,何时能够解决,如何解决,我们只能耐心等待了。
最新评论