为什么感觉iOS比 Android 流畅?为什么苹果手机比安卓手机流畅?
看了一个实测视频(note3和ip5s),感觉果手二者在不同的流流畅应用上到实际可用的界面的时间各有高低。但是什苹手机总体而言画面感觉ios更好,特别是机比在滑动时。之前对比了中兴u930和小米1s的安卓滑动,发现v5的感觉果手小米滑动起来感觉流畅,但是流流畅速度要落后于丢帧的4.0.3。
所以使用流畅和效率高并不是什苹手机等同的对吗?
尝试用Nexus5对比一下
它专门在触摸响应时间下了功夫
我先说下,这个答案我最早是机比在Android 做 iOS 那样如丝般柔滑的过度动画很难吗?这个问题中回答的,我是安卓看推送中有一个跟这个差不多的,也就直接粘过来当答案了,感觉果手如果有文意不对的流流畅请谅解,顺便我刚发现,什苹手机这是机比N多年前的问题啊。。安卓。机器还是N3和iphone 5s。。。为啥会推送给我
我是做安卓的,我个人认为安卓想达到IOS的流畅程度有些困难,IOS的流畅只是一个感觉,实际的表现主要是帧率稳定和非线性动画,而且还牵扯到IOS的底层实现,包括OC天然的高效率等等因素,至于什么墓碑机制,苹果统一推送,app规范质量高之类的,我觉得都不是主要原因,这只是体现了苹果对IOS强大的掌控力,可能会更加有利于手机的资源负载平衡,但是随着安卓设备硬件的不断提升,这些真的不是最重要的因素了,就算安卓是真后台,来个7,8个应用后台运行,对现在的安卓机都不叫事,不存在系统吃紧的原因,我个人认为主要因素主要有3点
1. IOS的响应优先级不一样,我记得IOS会优先处理touch事件,然后就是动画之类的媒体事件,包括图形处理,而安卓对于touch或者说图形图像处理的层级相对靠后,我觉得这是一个原因(这里我说一下,我看评论很多人都对这点有很大疑问,首先,我也不是搞底层优化的,只是之前看过一篇文章,他的意思好像是说IOS的媒体或者图形处理会优先响应触摸事件,确实之前的说法不太妥当,touch事件肯定是要第一时间响应的,只不过是有延迟的差异,因为目前安卓版本更新很频繁,如果有一些知识我没有及时更新,还请谅解)
2. 再一个就是苹果很聪明的用了很多非线性动画,包括很多精美的动画默认就是封装好的,是控件自带的效果,比如ListView(安卓的类名)弹性滚动等等,这些动画在很大程度上会给你很流畅顺滑的感觉,而安卓大部分控件只是实现功能,如果你想在交互层面锦上添花就要自己去实现你想要的效果自定义控件,这就参差不齐了,很多安卓现在比较常用的交互逻辑,完全都是借鉴IOS的原生控件效果,有的时候真的不得不佩服苹果,很多细节考虑的很周全,因为人家原生的控件就足够精美高效,让开发者开发出来的应用在用户使用逻辑上达到高度的统一,不过在比较新的一众Material Design控件中,比如Recyclerview等等,安卓也原生加入了些灵动的动画效果,但是总感觉小巫见大巫,IOS的启动速度一向不是优势,而安卓一直在这方面很强势,参考小白的测试数据,所以我觉得流畅顺滑和速度并不是成正比的,启动不快的IOS一样给人留下很顺滑的感受。
3. 我觉得就是OC的开发语言,java是虚拟机机制,需要转换字节码,换成机器能读懂的指令,而且在之前都是边解释边运行,效率可想而知,不过在5.0后出了ART模式,本质就是想解决这个问题,可以在初次使用时全部解释完,但是我觉得效果不是很好,最近华为也出了方舟编译器,其实原理都一样的,OC我不太懂,但毕竟是C语言系的,在C的基础上加了面向对象的概念,更易用,虽然java天生就是面向对象的,但是C和java本就是完全两种语言和运行模式,OC的高效不言而喻,这肯定也是一个主要原因
剩下的就都是普罗大众都知道的一些东西,什么IOS封闭啊,APP质量高啊之类的,苹果的流畅确实是不容易,我作为一个安卓开发人员其实很喜欢苹果的设备,目前用P30,准备下一个手机换个苹果的,就说这么多吧,欢迎指正和探讨
-----------------手动分割线-----------------
感谢大家的点赞和评论,我再补充一些我认为比较大的影响因素,上面的回答说到启动速度,确实是安卓领先,但是我觉得以苹果的硬件和软件的实力,达到启动速度快的目的并不难,我甚至认为苹果是有意为之的,故意让启动中间加一些动画,还是那句话,流畅和顺滑真的不是一个快就完事了,是一系列的从无到有,从慢到快的渐变过程,我觉得安卓的动画太死性,因为一般用的属性动画,就是从A点到B点的一个位移,如果想达到IOS的弹性效果,就要加入差速器,但是我试过,流畅度还是比不了IOS,而且还有一点不可否认,就是苹果的设备少,相对应的软件就可以最大程度的去匹配硬件,这就跟为什么PS4的硬件水平往往都落后于同期的PC很多,但是玩游戏的流畅度和体验永远比PC强好多,因为PS4就这一款硬件,所有的软件开发商相对好做适配,而PC,幺蛾子太多,硬件玲琅满目,还能DIY,这就跟安卓和IOS的情况很像,IOS同年几乎只有一两款设备更新,而且硬件完全一致,核心都由苹果设计,比如CPU等等,而安卓那真是不要太多,光CPU就有很多厂商可以提供,而且手机厂商还要对系统做二次开发和适配,加入很多自己的业务内容,这在本质上就已经算是污染了操作系统,而这也是谷歌想做的,就是自己出个"架子",然后大家各取所需去改造去添加你想要的"肉",尤其是国内连谷歌服务都用不了,真的就只剩一个架子了,所以能单独做软件优化也是一个很重要的原因,这也是为什么说苹果的硬件和软件结合的最完美,因为都是单对单,永远刚好够用,达到利益和产品使用的平衡点,苹果的内存,苹果的电池,甚至苹果的充电器都落后安卓N个时代,但一样拥有比安卓更好的体验,这种以小博大的感觉,就像中国太极的四两拨千斤,没有哪个股东不喜欢这种企业,所以苹果的价格贵不是没有道理,因为只此一家,总之,苹果的系统体验真的不是一个开发人员就能左右的事情,这其实体现了完全两种不同的商业模式,两种理念,当然,目前随着高通一统天下,安卓的优化相对而言,少了很多选项,而且你也可以看到厂商都会对高通的芯片做优化,没办法,因为安卓就是SOC企业在牵着手机厂商在走,而IOS完全是苹果在牵着其他企业在走,你说能一样吗?????
其实就一句话:过度动画做得好。
因为iOS过度动画太精细,相反安卓的动画就很简短,有时候会显得简陋。
有时候过于精细的动画也有缺点,就是时间太长 ,所以有时候iOS不如安卓系统干脆利落,但是动画确实精致耐看,符合很多人的审美。
所以你会听到什么iPhone 6s比米9还流畅,云云,但其实只是一种审美上的错觉。
安卓团队的资源恐怕也就iOS的十分之一,管好底层就很不容易了,前端就交给厂家优化吧。
WWDC上经常有专门的一个多小时的讲座,就讲如何优化动画。比如
Designing Fluid Interfaces - WWDC 2018 - Videos - Apple Developer成果和投入成正比,这大概就是为什么苹果更加流畅。
iOS一方面分配给过渡动画的资源更多,另一方面总体资源利用率也更高。
安卓必须照顾兼容性,做不到这样。理念的差别。对比osx和windows,也是一样的。
无论是iOS还是Android,本质上都只是跑在硬件上的操作系统,所以只有在硬件拉齐的情况下,才能讨论操作系统实现的原理区别,以及谁更流畅。
很可惜,苹果这边长期都保持着处理器性能的领先,所以哪怕是Android操作系统的实现机制和iOS完全相同,其实也无法做到比iOS更流畅。
其实即便硬件保持一致,也依然很难对比,因为大部分人所谓的系统卡顿还是流畅,说的都是app。一个烂app真的可以毁掉一个好的系统,不过iOS这边有App Store守卫着!
而几乎所有app的iOS版本和Android版本,压根儿不会是同一个团队开发。而即便是同一个团队开发,iOS和Android的SDK、API接口也一样有好有坏,Android这边各部分具体硬件更是千差万别,所以很难控制很多变量。
所以吧?咱就综合聊聊苹果手机和安卓手机软硬件的差异。
首先就是大力出奇迹!很多人都太容易忽略iOS硬件载体的水准了。
其实Android这边聊芯片性能总喜欢聊CPU多核性能,可能是因为它有8个核心吧!甚至还在用Geekbench 5这种简单堆积多核性能的测试基准,严重脱离真实使用场景。你说你玩游戏的时候,真的是8个核心各忙各的吗?显然核心间是有各种依赖关系的啊!显然也没几个游戏或者应用程序能够真正同时调度8个核心的啊!
这是iPhone 15 Pro的Geekbench 6跑分。
哪怕是相较于骁龙8 Gen 3,单核也能领先近40%,A17 Pro原地不动,对手要几年才能追上呢?换句话说,骁龙8 Gen 3的单核性能,也就是用着A17的功耗,跑出了A15的单核性能罢了!
而这样的超级大核A17 Pro有两个,其实A系芯片早就是双大核心设计了。你想啊?当你打开任意app的时候,有两颗3.77GHz的CPU核心随时待命,那速度,那丝滑流畅,怎么比?
CPU大核心的优势,时间越往后走,就会越有用。这么说吧?iPhone 6s那颗2015年发布的A9芯片,单核性能得到2017年12月发布的骁龙845才能追上来。如今还有iPhone 6s同期的Android手机能够刷知乎,甚至写个回答的吗?
A17 Pro这边实际上已经完全可以直接录制视频到外接SSD硬盘,也可以直接外接5K显示器玩主机游戏。
甚至吧?玩主机游戏《生化危机:村庄》《生化危机 4》《死亡搁浅:导演剪辑版》《刺客信条:幻景》等,也不在话下!
https://www.zhihu.com/video/1751912502026571776哪怕是Android这边近两代引以为豪的GPU性能,实际上也没有什么优势可言。因为溢出了,因为溢出太多了,因为就算有游戏可以顶着GPU峰值性能跑,你有考虑过功耗问题吗?有考虑过手机的解热能力吗?不服,也跑个幻景试试!
如果大家GPU日常使用50%性能都绰绰有余了,你说你峰值性能比iPhone强一丢丢有什么用呢?
性能之外,其实一个很容易被很多人忽略的软硬件,其实在流畅交互里面也起了很大的作用,那就是手机震动引擎和震动算法的设计。
是的,我说的就是苹果这边从iPhone 6s一直强悍到今天的TAPTIC ENGINE!下图底部的小白条就是。
而到如今,TAPTIC ENGINE已经是个巨无霸了!
你每次点击按钮那个恰到好处的震动反馈,你在知乎点赞时不用看左下角点赞按钮的变化也能瞬间判断操作的完成度,你游戏时给场景画面增加一个维度的感官体验,其实都离不开TAPTIC ENGINE的贡献。
如果你觉得回答还不错,也可以双击【这个地方】试试,注意手掌的感受,应该会惊艳到你。
iOS向来给人的感觉就都是丝般顺滑,甚至在手机屏幕普遍120Hz刷新率的今天,iPhone 15和iPhone 15 Plus依然采用60Hz刷新率的屏幕。我倒不是要说iPhone的60Hz真的就能媲美人家的120Hz或者苹果自家的ProMotion,而是说即便是在60Hz的情况下,只要设计合理巧妙,就依然可以有着相当好的体验。
换句话说,交互的流畅体验,很大程度源自系统优秀的设计。
传统的人机交互模式,其实更倾向于下面这种线性模式。也就是用户先想好要做什么,然后做出决定,再触发手势操作,最后结束操作等待结果反馈。这个过程中完全没有统筹,某一个步骤出错就得从头再来。
而iOS的设计理念就很不一样,想法和手势完全可以是并行的,说白了就是边想边做。做错了没关系,屏幕会第一时间响应你的决策变化。
这个说起来很简单,但是真正做起来其实并不容易。需要设计理念,需要软件优化,更需要硬件支持。有条件的话不妨自己感受一下几个操作:
- 打开支付宝的时候迅速关闭,再以最快的速度打开微信。(想错了,改变决策)
- 打开支付宝的时候迅速关闭,再以最快的速度向左或者向右滑动桌面,最后在新的桌面打开微信。(误操作,想要打开的app在另一个桌面上)
- 打开微信或者浏览器的同时,直接在屏幕上上滑,微信没有完全打开的时候就可以滑动页面内容。(想要快速找到自己想看的信息)
以上仅仅是几个简单的例子,在iOS下,你的手势操作完全可以是连续的,而不需要有任何等待。别误会,这里的不需要等待是指根本不需要等待上一个动作结束,因为屏幕总能够第一时间响应你手指的操作。
比如在关闭浏览器的同时滑动屏幕的操作,慢动作显示很容易看出来,浏览器还没有完全关闭,屏幕其实已经开始滑动了!
同样是以上这几个简单的操作,你不妨在Android手机上尝试一下,绝对高下立判。
其实在快速响应手势操作的处理中,很多好的体验都会被各种不必要的等待破坏了。比如早期Android全面屏手机,进入多任务界面基本都是依靠手指停留的时间作为判断依据,而iPhone X进入多任务界面却相当自然,因为人家根本就不是依赖定时器,因为那样实现太慢了!
其实只要认真分析一下上滑关闭应用和上滑进入多任务界面在手势操作上的区别,就不难想到苹果的解决方案。关闭应用时,手指上滑在离开屏幕之前,其实都是一个加速的过程。而进入多任务界面,无论手指初始速度怎样,也无论中间过程加速度怎么样变化,反正结束前都会有一个快速减速的过程。所以,只要分析手势操作的加速度变化,就很容易判断用户想要做什么,而不需要定时器。
很多人一说到流畅性,可能最先想到的都是更高刷新率的屏幕。高刷新率肯定有用,但是也不是唯一的影响因素,这个我们后面会单独聊。iOS解决流畅性交互问题的细节有很多,这里简单举几个例子。
首先就是画面过渡需要起到暗示的作用,说的简单点就是动画过程中,你就可以看出动画扩展的趋势,以及动画最终的结束状态,而不是纯粹为了展示动画而添加动画。
iOS下无论是打开应用的动画展开,还是关闭时收缩到原来的位置,亦或是处于运行状态的应用收敛到灵动岛,一切都显得特别自然。
其实苹果对于动画的切换,更是丧心病狂。我每次关闭Apple Music窗口的时候,总有一种感觉,Apple Music的整个窗口是被我推进灵动岛的。
可是问题是,当手指上滑的区域不一样的时候,一个统一的动画就很难给人跟手推送的感觉了!
那么苹果是怎么做的呢?从中间往上滑动,过渡动画是这样的。
而当我从右侧上滑的时候,过渡动画就很变态了!其实只要你滑动屏幕的手势有所变化,动画就会跟着变化。
看出区别了吗?这种大部分人不会在意到的短暂过渡,苹果都做的无比精细啊!
其实只要手指以不同的弧度上滑,动画就会以顺着手指滑动的方向运动。
其次则是可以通过动画的拟合,让过渡不那么生硬。比如对于动态的画面做一定的模糊处理,看着就会舒服的多,也流畅的多。这种优化完全不需要提高屏幕的刷新率,仅仅只是在满足视觉的预期。
而只有流畅性,其实和好用的操作系统并不是一回事。一个好用的操作系统,需要有那种天然的符合人预期的东西。而对于稍微复杂一点的东西,就需要有很好的、自然而然的引导性的设计。
比如说,很多不用iPhone的人不理解为什么iPhone上关闭页面都要从左往右滑。这里我也吐槽一句,像Android那种滑动屏幕左侧或者右侧边缘就能突然关闭当前页面或者关闭应用的做法,其实也很扯淡,不仅和很多手势存在冲突,也完全反直接。
你说我屏幕边缘右滑一下,难道不应该是把屏幕显示的内容或者当前页面往右侧推吗?怎么就抖机灵直接回到系统桌面了呢!
而iOS上不仅做到了页面从哪里来,就回哪里去,比如像这样。
iOS还做到了完全的跟手操作,其实这也是很多人觉得iOS操作流畅、自然的根本原因。
其实iOS这类细腻的设计,从点亮屏幕瞬间根据桌面颜色分布分层次渲染画面,到上滑锁屏页面图标弹性进入桌面,再到点击任意按钮细腻的画面切换,细节真的是无处不在。其实都是在优化人机交互的体验,也就是让用户持续的感受到手机和人融为一体的感觉啊!
这就是iOS流畅体验的本质!
纠结于选择哪款新iPhone,可以参考一下。
如何选择适合自己的苹果手机?2024年苹果手机攻略。iPhone 15、iPhone 15 Pro、iPhone 14、iPhone 13如何选择?6.1、6.7英寸如何选择?128GB、256GB?纠结于买哪款iPad,可以参考一下。
2024年iPad购买攻略,超详细解读不同型号到底有什么区别?想要知道如何选择MacBook,想要了解Apple Silicon M系列芯片的性能差异,可以参考下面几篇评测。
2024年苹果电脑MacBook Pro M3/M3 Pro/M3 Max选购指南,尺寸、芯片、内存、存储空间选购建议一应俱全。而如果对于MacBook Air M1/M2/M3比较感兴趣,那么以下两篇详细测评基本可以解决你所有的疑惑。
如何评价 Apple 于 3 月 4 日发布的 MacBook Air (M3),哪些信息值得关注?(责任编辑:探索)