这也是一个老生常谈的问题了,因为苹果手机的ios系统和安卓系统底层架构不一样,多任务运行机制也不一样,简单说的话,iphone同时运行多个APP需要的内存比安卓系统少得多,比如安卓系统8G内存所能达到的效果,对于ios来说可能只需要4G就差不多了,所以苹果手机根本不需要太大的内存容量。
很多人说苹果太抠门,为了利润所以不用大内存,这的确也是一个方面,如今内存颗粒也不贵,一部iphone11pro卖8000多甚至一万多,如果用8G内存就跟玩似的,但是苹果始终是坚持硬件够用就好,除了强大的A系列芯片,手机用的什么闪存颗粒,用的多大内存,苹果一般是不会宣传的,至少不会把这些作为卖点。
而安卓手机市场竞争激烈,各大厂商必须拿足够多的办法来应对竞争,硬件参数的比拼便是其一,这几年安卓手机内存容量甚至有的来到了12G和16G,甚至超过了主流电脑的内存容量,这里面当然会有噱头的成分,不过如果你觉得流畅度还是不如苹果,我认为不太属实,尤其是对于90Hz以上刷新率的中高端安卓机来说,流畅度应该更超iPhone。
苹果ios比android流畅这个是不争的事实,不过android发展到现在,与苹果的差距已经不是那么的大了,特别是在华为的一些手机上,华为对应用有经过编译优化后,差距已经不再明显,下面就来分析一下为什么安卓流畅度没有ios流畅。
1.安卓的效率低在于开发机制的不同
安卓应用使用java开发。Java的内存管理是通过jvm,达到一定的内存占用量就会触发gc,gc会把用户线程停止掉。因此可能会影响两方面,第一在触发gc的时候卡顿,特别是full gc。长的可能达到几秒甚至几分钟,可能以前有碰到过,现在随着内存的扩充,有些手机比如华为的,内存已经达到了16G,现在基本很少遇到卡几分钟的。
而ios使用Objective-C,编译器是老牌gcc,而这个gcc编译出来的代码又被苹果专为ios架构优化到了极致,运行过程中不需要虚拟机在中间插手,执行效率自然很高。而且Objective-C与c语言一样,内存使用完就释放,所以基本不会因为内存问题导致卡顿。
2.系统设计不同:安卓APP无法统一
大家都知道ios是闭源的,而且苹果唯一指定的应用商店也只有自家的APP Store,这就使得商店内的应用都要经过严格审核才能上架,所以一些比较差的应用无法上架。而且,ios只运行在苹果自家的设备上,对应的软件也只会运行在苹果的设备上,所以开发者可以只针对苹果的设备进行应用优化,而安卓是开源的,安卓厂家有非常多,各家的设备配置都不同,安卓软件需要在各个硬件平台上跑,可能就会引入很多bug,导致异常和卡顿。
3.硬件与软件的契合度不同
如第2点所言,ios只针对苹果自家设备,可以让系统有针对性的对硬件能够发挥的性能进行充分利用,使得系统软件和APP软件的运行效率更高。而安卓系统面对的厂家和设备类型可谓是参差不齐,开发者也不可能针对所有的机器型号进行开发,只能在比较主流的机器上进行测试并保证运行效果,所以他们为了兼顾整个产品线只能不得不降低游戏体验以达到高中低产品可以共用的效果。但是可以负责任的告诉大家,如果买的是各大厂商的旗舰机,根本无需担心卡顿问题。
4.桌面响应优先级不同
当我们使用苹果手机或者是安卓手机时,第一步就是解锁找到相应程序点击进入。ios就表现出来了流畅的一面,但安卓却给人一种卡顿的现象,更别说后续深入玩游戏或者进行其它操控了。这是为什么?
其实这与两个系统的优先级有关,ios对屏幕反应的优先级是最高的,它的响应顺序依次为Touch--Media--Service--Core架构,换句话说当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示也就是Touch这个层级,然后才是媒体(Media),服务(Service)以及Core架构。而Android系统的优先级响应层级则是Application--Framework--Library--Kernal架构,和显示相关的图形图像处理这一部分属于Library,你可以看到到第三位才是它,当你触摸屏幕之后Android系统首先会激活应用,框架然后才是屏幕最后是核心架构。所以ios有“点击即所得”的效果,安卓可能就会慢半拍。这是造成它们流畅度不同的因素之一。
以上4点就是我对ios比安卓流畅的分析,系统上的原因大致也就是这些原因了,其他的一些细节可能就是处理器硬件级别的限制了。
安卓的16GB运存的流畅度和苹果4G预存的流畅度对比,理论上来说安卓肯定是比苹果要快的,但是为啥很多人用气量觉得流畅度还是不如苹果呢。
其实这跟系统有关系。
安卓系统对内存的掌控不够绝对
安卓系统运存的使用取决于各应用进程的申请,为了规范申请,于是安卓对进程搞了一套管理规则。
安卓系统对进程的管理是基于进程的类型。
而进程的类型从重要程度分由高到低依次是:前台进程、可见进程、服务进程、后台进程、空进程。
1、前台进程
顾名思义,前台进程就是目前显示在屏幕上和用户交互的进程,在系统中前端进程数量很少,而这种进程是对用户体验的影响最大,只有系统的内存稀少到不足以维持和用户的基本交互时才会销毁前台进程。因此这种进程重要性是最高的。
2、可见进程
可见进程也拥有一个可视化的界面,但是不能和用户交互,通常可见进程在前台进程的后边,用户退出前台进程后就会显示可见进程。
可见进程一般调用了生命周期方法OnPause(),可见进程比前台进程重要性低,但是在交互方面影响还是很大,因为用户可能随时切换过去,所以系统不会轻易销毁它。
3、服务进程
一个服务进程就是一个Service,它调用了startService,就是UNIX中说的守护进程,对用户不可见,但是保证了一些重要的事件被监听或者维持着某些状态,比如网络数据传输、后台音乐播放、后台下载资源等等。
这类进程在系统内存不足且为了保证前台进程交互的顺利进行的时候被销毁。
4、后台进程
这里叫后台进程可能会和一般意义上的后台进程混淆,要说明的是,android里的后台进程是调用了OnStop()的,可以理解成在不可见进程,就是用户暂时没有和这个进程交互的动作,所以这里后台进程有点“待销毁”的意思。
5、空进程。
这是一种系统缓存机制,其实就是个进程的外壳,当有新进程创建的时候,这个空进程可以加快进程创建速度,当系统内存不足的时候,首先销毁空进程。
基本上只有基于这套规则,你就能申请到内存,理论上来说这样是最可靠的,要多少申请多少,规规使用。
但是在国内则变味了,首先就是推送服务
国外能使用谷歌推送服务,但是国内由于某些原因使用不了谷歌服务,于是开始各手机厂商和软件开始各显神通。
首先是手机厂商,比如小米搞的小米推送,华为搞的华为推送,这些都是可以使用的,但是大多数开发者都不会使用,因为只能在小米或者华为手机上使用。
所以软件开发者更喜欢使用第三方的推送服务或者自己实现推送服务,这样就不用去做适配工作了,而且安全可控。
那问题来了,如果自己实现推送服务的话,必须要保证自己的APP随身“活着”,于是一系列的保活方案出来了,比如在后台播放无声音乐,保留一像素页面等等,这些操作的背后都是需要内存的,基本上所有APP都会做至少一种保活方案,那消耗内存是几何级的。
工信部主推的统一推送联盟,就是为了解决这种现象,既浪费资源又阻碍行业发展,但是目前统一推送联盟还没在市场正式使用,期待吧!
IOS系统对内存拥有绝对的权利
我觉得这是IOS系统与安卓的差别,这也算是闭源的一种好处吧。
IOS不允许APP有退出功能,所有APP的退出都由系统来决定。基本上APP只要退出到后台超过10分钟,就会被销毁,但是会留下一张你当前的页面,就是你双击Home键弹窗看到的APP截图,这种被称为“墓碑机制”。
所以即使苹果内存在小,也不会卡顿的原因,理论上来说,IOS系统永远只会运行一个APP,除了系统应用和哪些必须在后台运行的APP(音乐APP,导航APP等)以外。
另外IOS又一套系统推送服务,所有的APP可以不用自己去实现推送,在APP后台发出推送后,IOS系统接收到后会唤醒对应的APP,来处理推送。
总结
由于国内安卓系统推送服务不够统一,导致各APP都实现保活方案,大量消耗内存,从而导致卡顿,另一反面由于国内软件开发者的不规范开发,无节制申请内存,导致运行APP时卡顿。
而苹果系统由于闭源且对内存拥有绝对的控制权,所以实现了一个系统同一时间只运行一个APP,这样大大节省内存。
我是非著名攻城狮,希望我的回答对您有用,感谢您的点赞支持!
我认为很大一个原因是系统市场不一样,因为谷歌的开放系统,导致国内国外不一致,国外安卓4g运存就很够用,而国内app市场竞争为了堆硬件,app的占用相当大。
国内的手机市场竞争激烈,毕竟现在人人都在追求发展,如果某个企业稍有松懈就有可能被其他的企业远远的甩在后面,想要赶超就会变得非常困难。很多的手机品牌为了能够争取到更大的用户群体,都开始在手机的各个方面下手不断的进行优化,以求跟自己的竞争对手拉开距离,尤其是在手机的运存方面。
很多国产手机的运存都从以往的2GB升级到现在的6GB或者8GB,这也使得手机的流畅度提高了不少,用户能够同时使用很多的APP而不会使手机变得很卡。不过苹果手机却没有在运存方面进行改良,很多苹果机型仍旧是2GB的运存,但是很多朋友就疑惑了,安卓机运存比iPhone大这么多,为啥还是iPhone流畅?原因很简单。
一般我们在使用手机的时候,都经常会同时打开好几个APP而且不断切换,如果是使用安卓手机的话,那么你在切换到别的软件的时候,前面你使用过的软件就算你现在没有在使用,它们还是依旧在运行。而苹果手机就不一样了,如果你切换了软件,那么你之前使用过的软件就不会再运行,只有你再一次打开软件的时候,这个软件才重新开始运行,所以说安卓手机就需要更大的运存才能保证手机的流畅。
苹果手机跟安卓手机的系统是不一样的系统,苹果手机使用的IOS系统是一个闭合的系统,对于很多软件有着比较严格的要求,所以就算苹果手机只有2GB的运存也足以支撑整个手机系统的流畅。而安卓手机的安卓系统是一个开放性的系统,很多程序安卓系统都能够运行,但是也造成了安卓系统很容易卡顿,所以就算是运存一直在不断的提高,有时候也会出现不流畅的情况。
苹果手机的处理器相对于很多安卓手机的处理器要好一些,所以很多的苹果手机能够给用户带来比较好的体验度,苹果手机在这方面也会稍占优势,毕竟手机的处理器也是影响手机流畅度的一个重要原因,所以就算是2GB的运存也能够保证苹果手机的流畅度。很多安卓手机的处理器虽说稍差了苹果手机一些,但是这些年来很多国产机也在这方面不断加强,相信以后的国产机也会变得越来越流畅。
苹果手机之所以能够一直保持手机的流畅度,主要的原因就在于它有着独特IOS系统和强大的处理器,所以就算是安卓手机的运存比苹果手机多了这么多,也还是苹果手机比较流畅。
正加财富网内容推荐 | ||
OK交易所下载 | USDT钱包下载 | 比特币平台下载 |
新手交易教程 | 平台提币指南 | 挖矿方法讲解 |