当前位置: 首页 > 科技观察

总说iPhone运行流畅不卡顿,安卓却很卡?

时间:2023-03-15 15:34:20 科技观察

买手机,听到最多的建议就是,有钱就买个苹果,几年不卡。所以即使苹果新手机的售价是市面上大部分手机价格的近一倍,很多消费者还是会买单。因为他们相信苹果的手机可以使用更长时间,体验最好。事实上,这是真的。虽然安卓旗舰的配置和体验越来越好,但苹果似乎依然保持着手机行业的霸主地位。这篇文章会告诉你为什么iOS可以持久不卡,而Android却经常卡。全面屏手势——“流畅的动画效果”iOS的设计和体验一直是众所周知的,尤其是iPhoneX之后的全面屏手势体验,目前还没有一款安卓手机可以完全实现iOS12的全局手势的跟进程度,以及整个系统的动画效果,比如打开控制中心,多任务时滑动,或者在应用程序中滚动,这些操作都会更流畅,反应更灵敏。虽然Android有多种快捷操作、自定义手势、全屏手势、动画效果,但整体视觉效果不如iOS带给用户的流畅、完整、易上手。因此,第一印象很容易给消费者一种安卓手机不如苹果手机流畅的感觉。事实上,造成这种现象的原因是有很多深层原因的,下面将详细介绍。流程更短,响应级别优先。我们在使用iPhone或者安卓智能手机的时候,第一步是从锁屏解锁进入桌面,然后找到要使用的APP点击进入。这是大多数人使用手机时的基本操作。这时候iOS系统呈现出流畅的一面,而安卓产品往往给人一种卡顿的现象,尤其是后期使用手机的时候。到时候安卓远不如iOS流畅。为什么是这样?这与两个系统的响应优先级有关。iOS的屏幕响应优先级最高,其响应顺序为Touch>Media>Service>Core架构。简单的说,当用户触摸屏幕后,系统会优先考虑屏幕显示,也就是触摸(Touch)层面,然后是媒体(Media)、服务(Service)和核心架构。Android系统的优先响应级别为Application>Framework>Library>Kernalarchitecture,显示图形图像处理相关的部分属于Library。也就是说,当你触摸屏幕时,Android系统会先激活应用程序,调用框架,然后屏幕才是核心架构。所以,iOS从一开始就可以让人感觉舒适流畅,因为iOS从一开始就是为触屏交互而设计的,而Android则不同。Android的初衷是开发软件APP。不过优先级确实对系统的流畅度有影响,但这不是主要原因。还有其他因素导致两个系统之间的流畅性差异。我们可以继续往下看。硬件加速如果说iOS在系统底层的优先响应方面是为流畅而生的,那么在硬件方面,iPhone也不同于安卓手机。iOS系统对图形的各种特效处理,基本都是基于专用的GPU硬件进行加速。它可以通过GPU而不是CPU进行渲染,以实现更流畅的控制性能。Android不是这种情况。一方面是因为Android需要适配不同的硬件来满足各种配置。另一方面,Android的设计逻辑并不是针对触摸服务的。当然,在Android4之后的系统版本中,默认开启了使用GPU硬件进行渲染加速,但仍然不可能实现所有特效都由GPU加速。屏幕响应的优先级关系和iOS自带GPU加速程序的特点,让用户感受到iOS手机在操控过程中拥有超强的顺畅度和舒适度。因为iOS本身的整个设计过程都是为了服务于极致的流畅,无论是最让人印象深刻的滑动触摸屏,还是你进一步使用程序时的操作。***结合GPU加速的特性,iOS可以实现软硬件结合,使系统流畅度达到安卓手机无法比拟的高度。后台机制说iOS在触摸屏上是软硬件结合的好,但是iOS和Andorid在软件运行时的流畅度不同,还有一个明显的区别:后台机制。iOS采用的后台机制,当用户按下HOME键(主页键)退出应用时,iOS实际上关闭了应用,只保留了应用的图像入口,并在RAM中记录了应用上次运行的数据默认情况下,当应用程序再次关闭应用程序打开时,系统会将之前的运行数据恢复到应用程序中。这时候应用恢复了之前的状态,给用户一种应用会在后台运行的错觉。那么为什么iOS中被kill掉的app也能收到推送消息呢?因为用户选择开启app推送后,iOS系统会增加几个进程,从苹果服务器接收信息,然后通过服务器发送给用户,苹果服务器起到中转的作用它。也正是因为这一系列的机制,即使iPhone的“表面”配置RAM低于安卓手机,iOS依然会给人更流畅的感觉。安卓是不同的。Android采用的后台机制将应用程序保存在RAM中。当用户按下home键返回桌面或退出程序时,程序实际上并没有完全退出,而是被系统挂在了后台。这就是为什么安卓系统即使关闭了聊天软件仍然可以收到消息通知,因为它常驻在系统内存中,包括它平时收到的垃圾广告推送,都是因为后台程序在运行。这种机制直接导致从内存占用来看,Android在刚开机的时候内存占用很低。正常使用一天,如果不进行内存清理操作,内存占用会越来越高,导致Android系统的流畅度下降。最直观的感觉就是卡的慢。因此,Android机器需要更多的RAM来改善用户体验;开发机制不同,iOS的编程语言是Objective-C,使用的编译器是GCC,GCC编译出来的代码是iOS架构优化到最好的。中间不需要虚拟机介入,执行效率非常高。而且GCC使用的内存是自己分配和回收的。简单的说,当GCC要操作指针,用完内存的时候,就会在那个时候释放。这就导致了ios的内存占用并不是特别高。所以iOS不需要特别大的内存。Android的编程语言是Java。Java的内存管理是通过jvm,在后台管理内存,不需要程序关注内存。达到一定的内存使用量就会触发gc,gc会停止world,停止用户线程。因此,它可能会影响两个方面。***在gc的时候卡住,尤其是longgc。长的可能达到几秒甚至几分钟。其次,Android本身并不是为触摸屏而构建的。所有Android应用程序都在虚拟环境中运行。数据从底层传输到虚拟机,再由虚拟机传递给用户UI。任何程序都可以轻松访问其他程序文件。同时gc是后置的,只有内存使用到一定程度才会回收内存,导致Android内存使用率偏高。当然谷歌也意识到了这一点,所以在安卓4.0系统版本之后,编程语言和机制都得到了安卓的改进,卡顿现象明显减少。App开发,封闭的AppStoreAppStore是iPhone和iOS极其重要的标志。AppStore不仅为苹果实现了软件盈利,同时也为iOS应用制定了标准要求,让每个应用最多兼容一种CPU,大大提高了硬件利用效率和软件开发速度。安卓是不同的。Android是开源开放的,Android是基于Linux内核和多线程的开发平台,开发成本低。此外,Android不像iOS那样拥有完全封闭的AppStore,这给了开发者高度的开发自由度,同时也兼容多种硬件,让软件从此可以无拘无束。iOS和安卓的应用开发各有特点,但也正是这些特点,让安卓也饱受“流氓”软件的迫害,使得系统远不如iOS流畅整洁。当然,Android系统中也有很多良心软件。在可预见的未来,Android系统对软件的标准会越来越严格,对“流氓”软件的检测和查杀也会一再完善。iPhone越来越卡?安卓越用越卡?其实,苹果手机也不是一直没有卡顿的。简单来说,iPhone卡顿的原因有两个:第一个硬件太差,水平跟不上。发布多年的手机与现在的性能差距太大,使用起来就会卡顿;二是系统更新了。升级到最新的iOS系统会给手机的操作带来一些压力,尤其是发布多年的iPhone。Android之所以越来越卡,不仅是开发机制的原因,还有APP的原因,主要是内存占用,优化不够,流氓软件的影响。既然是APP的问题,那么最终的解决办法就是尽可能下载一个比较规范的APP,避免一些流氓软件内置的相互唤醒、自启动、消息等权限。总结一下响应级别、硬件加速、后台机制、开发机制、应用开发等不同的原因,造成了直到现在iOS比安卓系统流畅的现象。很多安卓手机几乎都会遇到后台没有清理、硬件没有更新的卡顿体验,尤其是在打开软件加载资源的时候,打开比较大的游戏的时候,切换多个应用的??时候,或多或少都会遇到卡顿的情况甚至重新加载应用程序。不过幸运的是,硬件配置已经大大超越了如今的iPhone。安卓手机在软件运行的流畅度和美观度上已经有了不弱于iOS的体验。尤其是在AndroidO之后,谷歌也意识到了系统流畅度对体验的影响。Ascension也在逐步完善系统UI的设计。而为Android深度定制的国产UI,同样具备基于Android的便捷操作和不逊于iOS的美观设计。未来,在完善了系统设计并拥有强大的硬件后,Android必定是唯一能够撼动iOS霸主地位的骑士。目前iOS依然是最流畅优秀的手机系统。