大多数使用过安卓系统手机的朋友不管手机配置多么的高,在运行了一定时间之后都会有顿卡的现象。而使用IOS的朋友就很少遇见这种问题了,安卓系统为什么就比IOS卡呢。
首先我们需要从系统结构来分析。
需要看到iOS对屏幕反应的优先级是最高的(Touch-Media-Service-Core架构)。也就是说用户只要碰了屏幕,系统最优先去处理屏幕显示,然后才是其他。
而安卓则是传统的Application-Framework-Library(JAVA虚拟机)-Kernal架构,图形图像处理在Library这层,优先级不是那么高。如果系统负荷较高,则无暇顾及用户触摸的反应,其次是iOS对图像的各种特效处理(放大、缩小、旋转、滚动等)都是基于GPU硬件加速的,与APP无关。这是APPLE采用封闭式硬件的优势。
而安卓为了适应不同的手机硬件,做不到这点,很多APP的图形特效都靠APP自己去进行软件渲染,效率低。最新的4.1已经改进,但也无法做到所有特效都靠GPU硬件加速。
最后就是安卓的JAVA虚拟机:相对iOS的Objectiv-C,JAVA天生运行效率低下,需要占用大量内存来换取执行速度,而不定期的内存自动回收机制,直接导致安卓界面的卡顿现象,无论如何优化也不可能改掉。2.3版安卓就是为改善此设计而发布:引入了一种新的并行内存回收机制来减轻这种卡顿影响,但也仅仅是减轻,而无法彻底消除。也因此2.3版成为安卓重要的里程碑。