身边总能听到很多用户问:为什么安卓手机的配置再高,可是流畅度还是不如IOS,小编今天就给大家解释下
原因主要有以下四个方面:
1、主要原因:渲染机制不同
IOS的UI渲染是采用实时优先级,而安卓的UI渲染是遵循传统电脑模式的主线程普通优先级,简单的说就是IOS对屏幕反应是优先级很高,用户只要触摸屏幕,系统就会最优先处理屏幕显示的这个层级,马上给出动画效果。然后才处理媒体 服务 核心的架构;而安卓则是追求进程优先,触摸屏幕后的手机屏幕显示和动画效果放在后面;
举例来说:安卓手机。和IOS手机同样打开相同的网页,安卓手机就会直接将整个网页全部加载,同时渲染超文本,这无疑增加了处理器的压力,在IOS中,UI渲染过程具有非常高的优先级,当用户接触到iPhone的屏幕后,IOS中所有的进程都将停止,UI线程拦截了所有的事件,系统会将所有的资源都用于渲染UI过程,以保证用户界面的实时渲染,而在安卓系统中,UI渲染过程的优先级别没那么高,也就是说,当你触摸安卓手机屏幕的时候,系统后台的程序并没有终止,仍然在继续运行中,这是安卓于IOS设备关于流畅度的主要原因了。
2、后台机制不同
安卓手机的后台是真后台,像PC一样,将应用保留在RAM中,当用HOME键退出应用时,程序实际上并没有完全退出,而是被系统挂在了后台,这就是为什么我们关掉了聊天软件,依然能收到消息通知,因为它是常驻系统内存的。包括平时收到的垃圾广告推送,也是因为后台有程序运行。所以这导致从内存使用上来看,安卓刚开机时内存使用很低,如果不进行清理内存操作,正常使用一天,内存占用会越来越高,使用起来流畅度就会降低,所以安卓机器需要更大的RAM,来提升用户体验;
IOS其实是采用的伪后台,当用户HOME键退出应用时,IOS其实关闭了该程序,只保留应用的图像入口,只会默认将应用的最后运行数据记录在RAM中,可是为什么IOS用户也能收到推送消息呢?因为用户从应用中选择了开启推送后,系统会增加几个进程,这几个进程会从苹果服务器接收信息,然后再通过服务器发给用户,苹果服务器在这里就起到了中转的作用,正是因为有了这一系列的机制,所以即便iPhone的配置比安卓机低,但是IOS还是会给人更加流畅的感觉。
3、编程语言的区别
iPhone采用的Object-C,而安卓用的是Java;
Java的通用性强,但是相对的效率却更低,而Object-C的专一性强,效率相对较高,而且IOS系统本身优化的很好,程序是直接执行;而安卓系统是通过Dalvik虚拟机(安卓5.0后,可以采用ART模式)来执行,也就是要绕个圈子后才执行程序,所以效率相对更低。
4、其他原因
因为IOS的封闭性,分辨率大小,硬件更新等参数比较稳定,app厂商可以对其比较有针对性的进行优化,优化工作也相对容易,所以硬件效率非常高;
而安卓手机的硬件配置天天在变,开发者不可能针对所有的机器进行开发(否则工作量非常大),所以只能在比较主流的机器上进行测试(即使主流机器也很多,如:三星、华为、小米、OPPO和Vivo等等),并保证运行流畅,这就导致很多没有被优化的安卓手机,很难得到流畅的体验。