为什么Android没有iOS那么顺滑
一位软件工程师和前Google实习生Andrew Munn解释说是因为Android系统UI的框架设计的问题。在iOS中UI渲染过程具有绝对的优先等级,当用户接触到iPhone的触摸屏后,iOS中所有的进程都将停止,系统会将所有资源用于渲染UI过程。而在Android系统中UI渲染过程的优先级别却没有那么高,也就是说当你触摸Android手机屏幕的时候,系统后台的程序并没有停止,仍然在继续运行之中,比如下载和查收短信,这样系统UI获得的资源就不够,这就是Android系统不流畅的原因。由于这个原因,新发布的Galaxy Nexus,甚至配备四核处理器的话说EeePad Transformer Prime平板电脑都无法保证顺滑的操作体验,这些设备只能与3年前的iPhone顺滑程度相比,那么Android团队为什么不从根本解决这个问题呢?实际上,Android的开发工作在第一代iPhone发布之前就已经开始了,原始Android原型体被设计成为使用键盘手机的设备,也就是黑莓手机的竞争对手。UI渲染优先级别在有键盘的手机上并没有那么重要。但是在iPhone发布之后,Android小组为了快速推出能与iPhone竞争的产品,迅速将Android改成触摸屏手机系统,但那时重写UI框架已经不可能了。因为如果这样Android应用市场中的所有程序将变得不可用,这种关系将一直处于恶性循环之中。 原文出处:CultofMac译文出处:MacX
根据android4,0规范与IOS规范,android与IOS主要的不容之处表现在:
1.android4.0包括三个虚拟按键:返回、home和最近任务,而IOS只有一个物理Home按键,返回按钮一般放置在导航栏左上方。
2.android的主要操作栏在屏幕上方包括:向上+图标+页面名称+主要操作+更多(次要操作),主要操作栏还提供视图切换功能。IOS包括导航栏、工具栏、tab栏,导航栏包括返回+标题+主要操作,工具栏包括一些次要操作,Tab栏承担页面视图切换的功能。
3.android规定tab栏应在屏幕上方,主要操作栏下面,尽量不要放置在屏幕下方,防止与虚拟按键误操作,而IOS的tab栏在屏幕下方。
4.android长按会出现情境操作栏,对内容项进行选择及内容项的主要操作功能,而IOS很少使用长按功能。
5.在手势操作上,android可以向左滑动删除单条内容,或滑动屏幕切换不同视图,而IOS向右滑动删除内容,并且提供摇一摇返回等功能。
6.界面表现形式不同如:文本输入框、弹出框、选择器、操作按钮图标等。
但是,可以看到,为了保持用户体验及平台的一致性,以及资源的可重复利用,两个平台在界面布局上应尽量统一,有些app也会打破这些差异性,好多android的app在布局上与IOS相同。
不过,这个实习生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应用市场中的所有程序将变得不可用,这种关系将一直处于恶性循环之中。
(这个实习生的伪科学真是编的好,在此反驳)
按照那个实习生的说法,android的ui不流畅是因为响应UI处理的优先级不够,而google不改进的原因是因为怕影响到已经发布的应用程序?
这人根本不懂ios和android的进程控制机制,且不说ios中ui有最高优先级(笑啊,ios什么时候UI有最高级了,明明是系统中断才是最高),竟然说出了android触摸UI时后台进程保持运行这样的荒谬的事情,我都怀疑他是不是在google呆过。 即便他说的UI优先级有理,也不可能出现改变优先级就会使得程序进入恶性循环这种情况。了解android系统架构应该知道负责图形处理(关于优先级部分)的是位于android系统的倒数第二层,也就是内核的上一级,而且android的设计是层与层之前低耦合的,每层对于下一层的依赖仅通过接口来调用,而层内的变化根本不会影响到层外行为。
说简单一点,就如同你去银行柜台办事,你办外汇就去外汇窗口,债券就去债券窗口,而银行内部怎么处理你的请求是他们的事,你只需要提交你的数据并接收结果即可,银行内部员工变动也不会影响你的事务办理。如果真如这个实习生所说,是UI框架处理优先级的问题,google大可以轻轻松松直接提高优先级,绝不会影响到现有任何程序,因为目前没有任何程序能绕过android的程序框架直接调用到UI下层的方法,因此下层的改进也不会对上层造成兼容性的不适。而且也不增加什么生产成本。
但为什么还是感觉android比ios卡?我觉得这是人云亦云后的“被变卡”感觉(很多人在概念空白时先入为主的被教唆到android比ios卡,不如ios,而且听多了这样的话后自然自己的感觉就不准了),以至于出现了N种关于android为什么不如ios的“科学、内幕”解释。我觉得除了辩证还要用发展的眼光来分析这个问题。
在早期,android的优化的确不如ios,这源自于产品的设计理念和年代(android本身是07年才被收购的一个公司,之前这个系统根本没有得到实际的验证,而ios始终是在apple下从mac时代起就被打造的)。而硬件也远没有iphone强,加上开放免费,什么鱼龙混杂的制造商都加入进来,元器件供应商也是水很深,造成产品水平参差不齐。很多人对android和ios的差距的认识也是从那时才建立的,而看iphone,一年才出一款机器,无论软件还是硬件,从选择供应商到制作,有足够的周期,都是精挑细琢。也就是说,android阵营从低端到高端都有,且低端又多又乱所谓的高端少而不精,而iphone就一个高端,这就如田忌赛马,老拿人家优秀的比垃圾的,自然而然口碑也就落成了android不如ios的一个大范围印象。其实这个时代跟ios产品比较,也的确是android的东西不如iphone做得好。
但是近年来android的机器硬件基本上已经超过了iphone但为什么还是觉得比ios卡?除了上述的心理因素遗留之外,我个人觉得其实这无关android本身,并不是os优化这么简单的事。而是硬件问题,其实没有人特别在意这个问题,但是我想说这就如同显示器的响应时间,响应时间快,在播放时就会流畅没有拖影。
电容屏也有响应时间,而且对工作环境电压要求很高,普通的电容板本身响应就比较慢,大概才50~100ms,而且在电压不稳定时反应更慢,而iphone4的电容板响应时间在10~20ms,差距近80ms说是不到十分之一秒,但是在实际体验时这就能影响到人们的直觉。另一个因素在于触屏的玻璃材质,硬度越高越顺滑,这是根据阻尼系数和摩擦系数可以测出的。同是镜面的情况下,硬度越高的材质在摸上去的时候更顺滑。iphone用的是大猩猩,硬度达到7,裸身时本身触感就顺滑,没有拖沓感,再加上大多数买iphone的人贴膜都会比较下本钱(我贴膜花了129),贴膜也会影响到触感。在普观android手机,用上大猩猩的寥寥无几,再肯贴好膜的更是少。在手感上也比iphone要差了。
就我个人长久使用亲身体会是,android的UI其实缺少过度动画,比如在界面切换时的细节(仔细看,ios的界面切换时除了窗口会移动,标题栏和上面的控件都会以不同的速率在移动,感觉很动感精致,如同流水般),这样在操作时造成了突兀感。实际上从触摸角度来讲,我觉得兔子没有明显的差异。而且明显的感觉是,如果iphone有后台程序,或者运行过较多程序之后,哪怕是普通的界面切换也会有卡顿感觉,很明显的。
最后一点重要的补充就是iOS是伪多线程开发,Android更注重编程模型,iOS更注重用户体验。Android将应用内(进程内)渲染(controls)和进程间渲染(surface flinger)放在了不同的模块、空间,导致动画时线程切换过于频繁,需要更高的性能的芯片才能达到和iOS相同的效果;要配合渲染也变得很复杂,所以在横竖屏切换时没有像iOS那样的转屏动画。
android是什么手机
Android是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备,如智能手机和平板电脑。它由Google和开放手机联盟共同开发和推广,自2008年发布以来,已成为全球最受欢迎的移动操作系统之一。Android系统的核心优势在于其开放性和灵活性。与苹果的iOS不同,Android系统允许设备制造商和开发者对其进行...
android是什么
android:是一种基于Linux内核(不包含GNU组件)的自由及开放源代码的移动操作系统。主要应用于移动设备,如智能手机和平板电脑,由美国Google公司和开放手机联盟领导及开发。Android操作系统最初由安迪·鲁宾开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及...
android什么意思
意思如下:android本指机器人,是谷歌开发的一种手机操作系统,并且是一种开源代码并且基于linux系统,目前主要用于智能手机的操作系统以及平板设备。它是一个含有操作系统、中间件和常用应用软件的移动设备的软件堆栈,AndroidSDK(软件开发工具包)提供了必要的工具和API(接口)用于开始在Android平台上使用Java...
Android是什么
Android就是安卓,就是现在最通用的智能手机操作系统,你的手机可能也是这个操作系统。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最...
android是 什么
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
手机android是什么意思?
Android是指基于Linux操作系统的一款优秀开源移动设备操作系统,其最初由Google公司开发并推广,如今已成为全球领先的智能手机、平板电脑等移动设备的主流操作系统。Android操作系统继承了Linux开源操作系统的众多优点,包括稳定性、可靠性和安全性等,同时也具备极高的开发自由度和可扩展性,让用户拥有更加灵活的...
android是什么意思在手机里
安卓Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成...
android是什么手机(android手机简介)
Android是什么手机?初识Android系统 随着移动互联网的高速发展和智能手机的普及,Android系统逐渐被大众所熟知。但是Android究竟是什么手机?我们先来了解一下Android系统。Android系统的起源 Android系统最初由安迪·鲁宾创立,他是一位在苹果工作过的工程师。其后经过多轮投资,该项目被资金充裕的谷歌公司于...
android什么意思是什么手机
Android手机指的是采用Android操作系统作为其操作系统的手机。Android操作系统是一个基于Linux的自由和开放源代码的操作系统,主要应用于移动设备,如智能手机和平板电脑。该操作系统由Google公司和开放手机联盟领导开发。在中国大陆地区,人们通常使用“安卓”或“安致”来指代这个系统。Android操作系统最初由Andy...
什么Android 安卓手机好如何选择安卓手机系统
什么Android 安卓手机好如何选择安卓手机系统 1个回答 #热议# 什么是淋病?哪些行为会感染淋病?深空游戏 2023-09-15 · 百度认证:东莞市深空信息咨询官方账号 深空游戏 向TA提问 关注 展开全部 Android就像我们熟悉的装在各种电脑上的Windows系统一样,可以装在HTC、摩托罗拉、三星、索尼爱立信、LG、华为、中兴等...
苗居益母: 虽然很多Android手机的配置都比iPhone要高,比如大多数Andorid手机的内存都有1GB,而iPhone 4S只有512MB内存,但用过iPhone的人都知道Android手机在使用的时候总感觉没有那么顺滑,究竟为什么会出现这种现象呢?一位软件工程师...
镇康县15251055624: android手机为什么没有苹果系统流畅 - ?
苗居益母: 第一,运行机制,ios假后台 第二,软件生态,同样的国内软件你到GooglePlay下下来会有意想不到的效果 第三,个人主观思想ios流畅,其实安卓和ios越来越靠近了 第四,各有优点吧
镇康县15251055624: 安卓手机为什么不如iphone - ?
苗居益母: :1、苹果系统因为相对封闭,程序员需要在苹果制定的规则里面编程,自由度小,但相对的系统稳定性就好了;安卓系统自由度大,与之对应的系统稳定性就变差了;2、苹果系统软件性能优化比安卓系统做得好;3、苹果系统的硬件相对单一,软硬件兼容性问题没有安卓系统多,也使苹果系统稳定性比安卓好;4、苹果延续了苹果电脑时代优秀的图形图像处理性能;以上原因是苹果手机用不如安卓手机强大的硬件制造出了使用体验反而更好的手机,对应的价格也就更高了.不能单一的说安卓系统不如苹果系统,你看软件市场上苹果的应用就没有安卓的多.
镇康县15251055624: Android为何没有iOS流畅? - ?
苗居益母: Android没有iOS流畅的原因并非Java GC导致暂停,也不是因为Android运行的是Java编译的bytecode而iOS运行的native code,根本的原因是,iOS的UI渲染采用实时优先级,而Android的UI渲染遵循传统电脑模式的主线程普通优先级. 在iOS中...
镇康县15251055624: 解释为什么Android没有iOS那么顺滑?
苗居益母: IOS的顺畅,不是什么没后台原因,而且安卓的手机大部分采用康宁大猩猩屏幕的原因,屏幕也有响应速度的.安卓没有过度动画,所以看起来不够IOS顺畅.你看看高端的安卓手机,都采用了康宁的,速度都很给力的.
镇康县15251055624: 为什么Android没有iOS那么顺滑?
苗居益母: 因为苹果系统处理器好 2 系统注重优化
镇康县15251055624: 为什么Android不如iOS那么顺滑呢?原因就在这里?
苗居益母: 系统不同呗,就像windows和OS系统一样,硬件配置不同系统不同,虽然是安卓1G内存 苹果512内存,但是内部硬件结构完全不同系统运算方式也完全不同,是没有可比性的,只能说是相当于.苹果512内存当当与安卓2G还要多.只是相当于,但实际会比安卓3G还要快
镇康县15251055624: 前谷歌工程师解释为何Android没iOS流畅!?
苗居益母: 也有原因是安卓要兼容太多机型,,不能一一调试,,iphone只有一款,可以硬软件兼顾,,所以iphone用起来会顺畅
镇康县15251055624: 知道android为什么没有ios顺滑吗??
苗居益母: DA-M33跑软件比IOS给力就成了.就算没iphone顺滑,但毕竟配置在那里,真的android潜力挖掘出来了,跑软件,跑游戏,当然比IOS强大更何况,我看过IOS也有很多不顺滑的(iphone4)很多玩iphone的根本不懂手机.不会关闭IOS的程序导致运行缓慢,这种现象android上就很少了
镇康县15251055624: 为什么安卓手机操作系统没有苹果ios手机操作系统流畅? - ?
苗居益母: Android没有iOS流畅的根本的原因是,iOS的UI渲染采用实时优先级,而Android的UI渲染遵循传统电脑模式的主线程普通优先级. 通俗点说就是iOS对屏幕反应的优先级最高,用户只要触摸屏幕,系统就会最优先处理屏幕显示这个层级,马上给出动画效果,然后才处理媒体、服务、核心的架构.