为什么感觉iOS比 Android 流畅?为什么苹果手机比安卓手机流畅?

[复制链接]
duck25 发表于 2023-10-4 21:41:35|来自:北京 | 显示全部楼层 |阅读模式
看了一个实测视频(note3和ip5s),二者在不同的应用上到实际可用的界面的时间各有高低。但是总体而言画面感觉ios更好,特别是在滑动时。之前对比了中兴u930和小米1s的滑动,发现v5的小米滑动起来感觉流畅,但是速度要落后于丢帧的4.0.3。
所以使用流畅和效率高并不是等同的对吗?
全部回复5 显示全部楼层
wangqua8 发表于 2023-10-4 21:41:55|来自:北京 | 显示全部楼层
iOS一方面分配给过渡动画的资源更多,另一方面总体资源利用率也更高。
安卓必须照顾兼容性,做不到这样。理念的差别。对比osx和windows,也是一样的。
芝华士12年 发表于 2023-10-4 21:42:13|来自:北京 | 显示全部楼层
其实就一句话:过度动画做得好。
因为iOS过度动画太精细,相反安卓的动画就很简短,有时候会显得简陋。
有时候过于精细的动画也有缺点,就是时间太长  ,所以有时候iOS不如安卓系统干脆利落,但是动画确实精致耐看,符合很多人的审美。
所以你会听到什么iPhone 6s比米9还流畅,云云,但其实只是一种审美上的错觉。
安卓团队的资源恐怕也就iOS的十分之一,管好底层就很不容易了,前端就交给厂家优化吧。
WWDC上经常有专门的一个多小时的讲座,就讲如何优化动画。比如
Designing Fluid Interfaces - WWDC 2018 - Videos - Apple Developer成果和投入成正比,这大概就是为什么苹果更加流畅。
肝硬化 发表于 2023-10-4 21:43:08|来自:北京 | 显示全部楼层
我先说下,这个答案我最早是在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完全是苹果在牵着其他企业在走,你说能一样吗?????
jmu2005 发表于 2023-10-4 21:43:35|来自:北京 | 显示全部楼层
从2008年的iPhone 3G发布至今,iOS系统对内存的优化能力真的是有目共睹。
虽然iPhone 5/6的内存只有1G,但是在操作上远比安卓的2G,3G流畅。
即使是现在安卓最高已经达到了6G,但是相信一年以后依旧会卡成狗,而反观之前的6s,7依旧还会很好用。


那么苹果到底是怎么做到的1G内存完爆3G的安卓的呢?
今天雷phone就来带大家了解一下这个问题。

1、系统运行机制的不同

安卓手机应用都是通过Java来完成。根据java的特性,如果安卓手机要关闭一个应用的话,就需要消耗大量的内存来工作,这样才能将应用关闭掉,消耗的量一般是应用所运行的内存的4-8倍左右。如果手机本身内存不够它调配的话,速度自然就慢下来了。


反观iPhone。
虽然iPhone依然是1GB内存,但iOS系统跟安卓有本质的区别。
iOS系统的特点就是集中所有的硬件资源,去保证当前运行的软件的流畅。当APP一旦进入后台了,那这个app就进入了休眠状态,不会再打扰到你。
而且,这个系统的好处还有,虽然你的APP都关闭掉了,但是依旧可以接收到信息。这是因为iOS有很好的后台消息推送机制,你收到的消息其实是通过服务器推送给你的。这也就是解释早期的时候,苹果服务器(在国外)不稳定的时候,由用户掉线或者漏接消息的情况。


但是现在苹果的服务器已经搬到国内了,服务器不稳定的问题已经解决了,良好的推送服务和伪后台机制,可以让你的苹果手机在1G的情况下流畅到爆,因为1G完全是能胜任的。

2、软件厂商对APP的优化

除了系统运行机制的不同,安卓手机越用越卡跟现在很多的无良的APP开发者有关。
安卓系统因为是开源的,比较容易学习,开发者也很多。因为经济问题,越来越多的APP开发者开始滥用安卓的权限。现如今几乎所有的软件都在滥用开机后台自启动的权限,并美其名曰是为了让你打开软件的速度提升,其实是为了让自己时刻能控制安卓手机,并及时推送广告消息。


而苹果则不同。苹果系统是闭源的,开发软件成本高,人数也较少。而且苹果对APP上架极为严格,所以苹果的APP开发者想疯狂加入广告插件不但可能,开发者反倒要绞尽脑汁去把APP优化到极致。就算是越狱了,你下载的软件大部分还是正版的APP,没那么多广告和推送,自然手机就是很卡。即使只有1G也很流畅。


总结来说苹果硬件统一,开放的app少,没有虚拟机,效率折损低,生态链好,app开发框架比较固定。而安卓应用层级比较复杂,虚拟机的效率没有直接在系统层级效率高,部分优化不到位,后台的servers 机制会吃一部分内存。
相对来说,如果比较手残的话还是用苹果吧。

如果这个回答对你有帮助的话记得点赞哟!
我是雷phone,致力于帮你买到更好的手机!
木陵子白 发表于 2023-10-4 21:44:07|来自:北京 | 显示全部楼层
尝试用Nexus5对比一下
它专门在触摸响应时间下了功夫

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则