Android在iOS中不流畅的原因不是JavaGC导致暂停,也不是Android运行的是Java编译的字节码,而iOS运行的是原生代码。根本原因是iOS的UI渲染采用实时优先级,而Android的UI渲染遵循传统电脑模式下主线程的正常优先级。
在iOS中,UI渲染进程拥有绝对的优先权。当用户触摸iPhone的触摸屏时,iOS中的所有进程都会停止,UI线程拦截所有事件,系统会使用所有资源渲染UI进程,保证用户界面的实时渲染优先级。但是在Android系统中,UI渲染进程的优先级并没有那么高,也就是说当你触摸Android手机屏幕时,系统后台的程序并没有停止,仍然在运行,比如下载、查看短信,这样系统UI获得的资源就不够用,这也是Android系统不流畅的原因。
正因如此,新发布的GalaxyNexus,甚至四核处理器的EeePadTransformerPrime平板,都无法保证流畅的 *** 作体验。这些设备只能和3年前iPhone的流畅度相提并论,那么为什么Android团队不从根本上解决这个问题呢?
除了UI渲染,Android缺乏有效的硬件加速也是一个原因。不同安卓手机的硬件加速差异巨大,苹果是唯一一家同时做硬件和软件的手持设备公司。只有苹果能在硬件中嵌入软件优化,使得基于苹果芯片的设备不仅省电,而且流畅。
实际上,Android的开发在第一代iPhone发布之前就已经开始了,最初的Android原型被设计成键盘手机,是黑莓的竞争对手。UI优先级在有键盘的手机上就没那么重要了。但iPhone发布后,Android团队为了快速推出能与iPhone抗衡的产品,很快将Android改成了触屏手机系统,但当时不可能重写UI框架。如果这样,Android应用市场上的所有程序都将变得不可用,这种关系将永远处于恶性循环中。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)