虽然很多Android手机的配置都比iPhone要高,比如大多数Andorid手机的内存都有1GB,而iPhone 4S只有512MB内存,但用过iPhone的人都知道Android手机在使用的时候总感觉没有那么顺滑,究竟为什么会出现这种现象呢?一位软件工程师和前Google实习生Andrew Munn解释说是因为Android系统UI效率低下的框架设计的问题。
不过,这个实习生Andrew Munn是一个软件工程专业的本科毕业生,他在Android团队并没有在框架团队工作,也没有看过Android渲染的源代码,因此他所说的未必是100%准确。并且他也曾经在Windows Phone团队工作过,因此可能会不自觉的对Android产生偏见。以下就是他对Android为什么没有iOS流畅体验的看法。
Android没有iOS流畅的原因并非Java GC导致暂停,也不是因为Android运行的是Java编译的bytecode而iOS运行的native code,根本的原因是,iOS的UI渲染采用实时优先级,而Android的UI渲染遵循传统电脑模式的主线程普通优先级。
这听起来似乎很抽象和难以理解,但大家可以尝试一下,使用你的iPad或者iPhone,打开Safari,然后加载一个复杂的网页,例如新浪网首页,当网页加载到一半的时候,把你的手指放在屏幕上,并且四处移动,你会发现所有的渲染立刻停止,在你拿开手指前,网页永远也不会继续加载。
而在Android设备上重复这个操作,你会发现,浏览器会继续尝试加载页面并渲染HTML,试图多任务同时进行,因此对于Android来说,一个高效的双核处理器是很重要的,这也就是Galaxy S II能够非常平滑的原因。
在iOS中UI渲染过程具有绝对的优先等级,当用户接触到iPhone的触摸屏后,iOS中所有的进程都将停止,UI线程拦截了所有的事件,系统会将所有资源用于渲染UI过程,以保证用户界面的实时渲染优先级。而在Android系统中UI渲染过程的优先级别却没有那么高,也就是说当你触摸Android手机屏幕的时候,系统后台的程序并没有停止,仍然在继续运行之中,比如下载和查收短信,这样系统UI获得的资源就不够,这就是Android系统不流畅的原因。
由于这个原因,新发布的Galaxy Nexus,甚至配备四核处理器的话说EeePad Transformer Prime平板电脑都无法保证顺滑的操作体验,这些设备只能与3年前的iPhone顺滑程度相比,那么Android团队为什么不从根本解决这个问题呢?
除了UI渲染之外,Android缺乏有效的的硬件加速也是一个原因,在不同的Android手机上的硬件加速存在巨大差异,而苹果是唯一一个既做硬件又做软件的手持设备公司,只有苹果可以在硬件中插入对软件的优化,使得基于苹果芯片的设备不仅省电,而且流畅。
实际上,Android的开发工作在第一代iPhone发布之前就已经开始了,原始Android原型体被设计成为使用键盘手机的设备,也就是黑莓手机的竞争对手。UI渲染优先级别在有键盘的手机上并没有那么重要。但是在iPhone发布之后,Android小组为了快速推出能与iPhone竞争的产品,迅速将Android改成触摸屏手机系统,但那时重写UI框架已经不可能了。因为如果这样Android应用市场中的所有程序将变得不可用,这种关系将一直处于恶性循环之中。
http://blog.csdn.net/awp258/article/details/7914982
分享到:
相关推荐
如丝般顺滑的滚动效果,无论快速滚动还是缓慢滚动 灵活数据设置,通过泛型设置数据类型,灵活、安全 支持类似 iOS 的滚动变化音效 支持类似 iOS 的 3D 效果 3D 效果下,支持圆弧偏移效果,使其看起来更加立体 支持...
一个顺滑又漂亮的Android下拉刷新与加载更多列表组件。 根据系统自带ListView源码改造而来: 增加下拉刷新及滚动到底部自动加载的功能; 增加越界回弹效果; 增加自定义列表项动画的功能; 与其他下拉刷新列表...
再则由于Android平台本身机能没有强大到优化烂的应用也能跑的非常流畅暴露了优化不够的事实,特别是手机厂商的定制ROM相比原生系统都一定程度牺牲了一些流畅性导致这个问题显露的更加明显,所以在Android上面作出...
"Android手机为什么会越用越卡" Android手机为什么会越用越卡?这是一直以来困扰许多用户的问题。从宏观上讲,Android系统在流畅度上有了实质性的突破,但是在实际使用中,许多用户仍然会感到越用越卡。这究竟是为...
虽然Android系统中的许多浏览器默认支持这种滚动方式,但iOS设备在某些情况下需要额外的CSS指令来实现。 在iOS中,为了使内联元素(如`<div>`)具有弹性滚动效果,开发者通常需要使用Webkit私有属性`-webkit-...
WheelView Features如丝般顺滑的滚动效果,无论快速滚动还是缓慢滚动灵活数据设置,通过泛型设置数据类型,灵活、安全支持类似 iOS 的滚动变化音效支持类似 iOS 的 3D 效果3D 效果下,支持圆弧偏移效果,使其看起来...
IOS风格的下拉刷新与加载更多列表组件根据系统自带ListView源码改造而来: 增加下拉刷新及滚动到底部自动加载的功能; 增加越界回弹效果; 增加自定义列表项动画的功能; 与其他下拉刷新列表组件的不同: 其他...
在移动端应用开发中,滑屏效果是用户交互设计中的一个重要组成部分,它为用户提供了一种流畅、直观的操作方式,尤其在浏览列表或者切换页面时。"移动端滑屏效果"这一主题涵盖了若干关键知识点,包括触摸事件处理、...
总的来说,实现一个顺滑且美观的下拉刷新与加载更多列表组件,需要理解Android的基础组件,熟悉事件监听机制,以及具备一定的动画设计和优化技巧。结合开源库和自定义实现,我们可以为用户提供更加丰富的交互体验,...
2. **滑动操作**:滑动是iOS日期选择器的一大特色,允许用户流畅地上下滚动以切换年份和月份,左右滑动选择日期,使得交互体验更加顺滑。 3. **自定义样式**:开发者通常会提供一些自定义选项,让用户可以根据自己...
Unity3D是一款由Unity Technologies开发的跨平台游戏引擎,它支持多种平台的游戏开发,包括但不限于Windows、Mac、Linux、Android、iOS等。Unity3D以其强大的功能、易用性和丰富的资源库而闻名,成为了很多独立...
UniWebView 3的主要目标是为开发者提供一个与原生平台Web视图API深度集成的框架,使得HTML5内容能够在iOS、Android以及其他支持Unity的平台上流畅运行。 1. **性能优化**:UniWebView 3.17着重提升了加载速度和...
与你的顾客谈笑风生如丝般顺滑的对话体验,拉近你与顾客的距离免费开始一触,即聊不用打开新窗口,也无需安装,顾客轻松开启对话极简优雅的对话体验,更让顾客专注与你聊天跟我...APPIOS、Android即将支持接入数据安全
3. **操作系统优化**:Android和iOS等操作系统对全屏滑动进行了深度优化,例如手势识别、平滑动画、防误触机制等。这些优化使得滑动操作不仅快速,而且流畅,增强了用户在浏览网页、使用应用或玩游戏时的体验。 4. ...
Unity还支持多种平台发布,包括Windows、Mac、iOS、Android等,这极大地扩展了游戏的受众范围。 #### 穿针引线小游戏《BorderLine》概述 《BorderLine》是一款基于Unity引擎开发的穿针引线类小游戏。这类游戏通常...
如何进行跨平台发布,让游戏能够在iOS、Android甚至Web平台无缝运行。 总的来说,这个项目将带领我们深入探索Cocos Creator的世界,体验JavaScript带来的游戏开发乐趣。无论是新手还是经验丰富的开发者,都能从中...