澳门新葡萄京娱乐场 9

iOS为什么比安卓快

昨天,一位认证信息为小米员工的网友在微博上发言,“iPhone 6 用户都不在意
1G 内存不够,红米 2 的 1G 内存够用了,保持流畅的秘诀就是少装
App.”后来的事情大家知道了。

Android 卡是必须的,当你的手机装了 20 多个
app,那不卡才叫见鬼了呢,我手机微信都打不开,手机直接自动重启啦~哪种东西生来就是完美的呢?即便是台式机,也是越用越慢。换句话,如果没有特别原因,谁的手机能装那么多
app,并且都在用呢,你经常用的有几个?~iOS 生来就是为移动而生,Google
能把 Linux 改造成手机操作系统也不易(说明 Linux
这东西真是强大啊!);iOS 是封闭的,Android 是开放的(苹果和 Google
是两个理念完全不同的公司)。在说 Android
卡的同时,不能忽视商业竞争和硬件发展,当年 Java
出现时,也有人诟病它的慢……对技术还是要有颗包容的心,尤其是对
Android,如果你够牛,从 google
下载源代码,就可以有自己的手机了,除此之外,还有别的方式吗,这难道不好吗~这种情况,又何止
Android,在 IT 界太常见了,网络 7 层、Web、浏览器、HTML 5
等等,实际使用已经很多年了,可标准化却跟不上,要想把握很难,开源的尤其如此~

安卓系统是谷歌在Linux系统的基础上开发的一款移动操作系统,而安卓系统的应用程序则是在运行在一个基于Linux系统内核之上的虚拟机之中,这个虚拟机属于谷歌自己开发的一个Java虚拟机,在其中运行的应用程序也继续Java进行编写的。Java的跨平台性和兼容性虽然非常好,但是Java的内存应用机制却是不太合适使用在移动设备上

要保持安卓手机流畅,少装 App 确实有用,不过 iPhone 6 是否流畅和少装 App
却没有半个F码的关系。

昨天,一位认证信息为小米员工的网友在微博上发言,“iPhone 6
用户都不在意1G内存不够,红米 2 的
1G内存够用了,保持流畅的秘诀就是少装App”,后来的事情大家知道了。

Java的内存管理使用了一个垃圾回收机制,系统中有一个规则是用来回收内存的,这个机制规定内存在低于某个值时会选择性的关闭程序,而在平常程序会常驻在内存中,在下次使用会直接从内存中读取,加快程序打开速度。这个机制虽然很好用,但是当运行大型软件时,就会因为内存不足而选择关闭其他应用,这样会频繁的访问内存,于是就造成了运行大型软件时会出现卡顿的现象。

iOS 8 让人们第一次发现原来苹果也会卡顿,而与之相比,Android 卡 Sh1t
却早已名声在外。

要保持安卓手机流畅,少装 App 确实有用,不过 iPhone 6 是否流畅和少装 App
却没有半个钱关系。

第二个原因就是安卓目前使用的Dalvik虚拟机是在运行程序时,每次都需要将程序代码编译为机器码运行,这样就多加了一个步骤而且更加耗电。不过在最新的Android4.4.4开始谷歌新加了一个ART模式,在安卓时就将软件直接编译为机器码,加快了系统的运行速率

Google 在推出 4.4 时发明了 ART (Android runtime)来解决卡慢, 5.0
时又用 ART 彻底取代 Dalvik,号称实现高效、省电、流畅的 Android
系统目标已经实现。

iOS 8让人们第一次发现原来苹果也会卡顿,而与之相比,Android
卡却早已名声在外。

于苹果来说,却和安卓的内存管理机制有着本质上的区别,iOS系统没有所谓的垃圾回收机制和Mac系统类似,将内存分为自由(Free)、空闲(inactive)、活跃(active)以及固定(wired)四个类型,并且根据系统需要进行相互转化,当用户点击Home键返回桌面后,程序就会被暂停,而不会在后台运行,并且会按照程序在内存中的属性然后进行关闭不需要的程序,所以很多用户说苹果的系统是假后台,对于苹果系统来说,系统优化和关后台是不需要的操作,清理的效果和系统自己对内存管理产生的效果没有区别。这也就为什么苹果用1GB内存但是流畅度秒杀安卓3GB手机的原因

安卓机真的能不再卡顿了吗?一切还得从根源说起!

Google 在推出 4.4 时发明了ART(Android runtime)来解决卡慢, 5.0 时又用
ART 彻底取代 Dalvik,号称实现高效、省电、流畅的 Android
系统目标已经实现。

优先级区别:iOS最先响应屏幕

四大先天因素埋下卡顿根源

第一、基因使然。

iOS 只需要保证在苹果仅限的几款移动设备上的运行体验,而 Android
则需要保证能兼容尽量多的已存在和未存在的不同硬件组合。

澳门新葡萄京娱乐场 1

iOS 老祖,UNIX 之父 Ken Thompson

澳门新葡萄京娱乐场 2

Android 老祖,Linux 之父 Linus Torvalds

iOS 基于 Apple 的 OSX,而 OSX 基于 FreeBSD ,FreeBSD 又是在 UNIX
上衍生的,其根源可以追溯到 1969 年 AT

Android 基于 Linux,起源于 1991 年 Linus Torvalds 的一个简单需求。

其实从起源之处就能看出未来命运的注定不同:

UNIX 是与硬件配套的商业软件,而 Linux
则是可运行在多种硬件上免费自由的开源系统。

澳门新葡萄京娱乐场,一个为指定硬件定制优化的系统与一个要在上万种奇葩配置上跑起来的系统相比,结果会如何?

第二、响应机制。

iOS 最先响应屏幕反应,而 Android 响应屏幕排在应用与框架之后。

iOS 响应顺序依次为 Touch——Media——Service——Core
架构,当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示也就是
Touch 这个层级,然后才是媒体(Media),服务(Service)以及 Core 架构。

澳门新葡萄京娱乐场 3

Android 的优先级响应级别则是 Application——Framework——Library——Kernal
架构,和显示相关的图形图像处理这一部分属于
Library,当你对屏幕操作之后,Android
系统首先会激活应用、框架,然后才是屏幕最后是核心架构。

澳门新葡萄京娱乐场 4

第三、开发语言。

iOS 采用执行效率极高的 Objective-C 语言,而 Android 采用的 Java
语言因为虚拟机的存在,二次转化再执行效率很低。

Android 开发是基于 Java“Write once, run
anywhere”理念,正因为这个理念,引入了虚拟机,也就是说编码实际上需要“转换”才能最终以用户可看的程序跑起来。

第四、后台管理方式。

iOS
中的后台程序并不是指当前后台运行程序,其实是你最近使用过的程序使用记录,比如浏览器的网页浏览记录。

Android
的后台则是一直在内存中运行,程序在进程活动停止后都会保留在内存中,直到系统需要更多内存再释放这部分资源。

这个后台管理机制造成用户感知的差异化放大,Android 旗舰已进入 8 核
CPU、3G RAM 的级别,而 iOS 却只需要双核 1G
就能保持稳定流畅的头衔不动摇。

安卓机真的能不再卡顿了吗?一切还得从根源说起!

当我们使用手机时,解锁、滑动等操作iOS系统就表现出了流畅的一面,但Android产品却给人一种反应慢、不跟手的情况,这是为什么?

三大后天因素拉低用户体验

其实 Android 与 iOS
相比,除了四大先天不同所造成的差距外,还有三大后天因素让 Android
的体验越来越不尽如人意。

1、无序的开发者;

Android 的开放与自由带来了大量的开发者,也让一部分不遵守规范的开发者进入
Android 的世界,于是应用开始肆意挥霍硬件资源,不少程序都开始自动启动。

当你安装了不少的应用之后就会发现,这些应用都开始驻留后台。杀掉这些应用的进程无助于解决问题(因为他们会自动重新启动,不断地杀进程会造成他们不断重启,最终耗光你的电池),最后你只能彻底删除他们。

因为这个删除的用户需求,一款叫做 Clean Master
的应用还带动了猎豹移动的上市。

2、无奈的 Android Market;

由于一些让人无奈的原因,各种水平不齐、鱼龙混炸的第三方市场充斥于市。而即使在官方的
Google Play 也经常爆出恶意软件或者仿冒软件。混乱的市场和不守序的开发者让
Android 的应用环境进入一个越来越差的死循环。

澳门新葡萄京娱乐场 5

3、无解的碎片化。

100 个 Android 手机制造商从 Google 那拿到 Android 代码之后,就可以制造出
100 种搭载不同硬件平台、界面的 Android
手机,即使是搭载完全相同的硬件,不同品牌的机器,运行速度,软件兼容性都会有区别,这就是
Android 开放带来的碎片化。

就这样,无论在先天还是后天上 Android 都注定着一些越来越卡,曾经的 4.4
没能解决,5.0 也不会解决。

四大先天因素埋下卡顿根源

第一、基因使然。iOS 只需要保证在苹果仅限的几款移动设备上的运行体验,而
Android 则需要保证能兼容尽量多的已存在和未存在的不同硬件组合。

澳门新葡萄京娱乐场 6

iOS老祖,UNIX 之父 Ken Thompson

澳门新葡萄京娱乐场 7

Android 老祖,Linux 之父 Linus Torvalds

iOS 基于 Apple 的 OSX,而 OSX 基于 FreeBSD ,FreeBSD 又是在 UNIX
上衍生的,其根源可以追溯到 1969 年。Android 基于 Linux,起源于 1991 年
Linus Torvalds 的一个简单需求。

其实从起源之处就能看出未来命运的注定不同:

UNIX 是与硬件配套的商业软件,而 Linux
则是可运行在多种硬件上免费自由的开源系统。

一个为指定硬件定制优化的系统与一个要在上万种奇葩配置上跑起来的系统相比,结果会如何?

第二、 响应机制。iOS 最先响应屏幕反应,而 Android
响应屏幕排在应用与框架之后。

iOS 响应顺序依次为 Touch——Media——Service——Core
架构,当用户只要触摸屏幕之后,系统就会最优先去处理屏幕显示也就是 Touch
这个层级,然后才是媒体(Media),服务(Service)以及 Core 架构。

澳门新葡萄京娱乐场 8

Android 的优先级响应级别则是 Application——Framework——Library——Kernal
架构,和显示相关的图形图像处理这一部分属于
Library,当你对屏幕操作之后,Android
系统首先会激活应用、框架,然后才是屏幕最后是核心架构。

澳门新葡萄京娱乐场 9

第三、开发语言。iOS 采用执行效率极高的 Objective-C 语言,而 Android
采用的 Java 语言因为虚拟机的存在,二次转化再执行效率很低。

Android 开发是基于 Java“Write once, run
anywhere”理念,正因为这个理念,引入了虚拟机,也就是说编码实际上需要“转换”才能最终以用户可看的程序跑起来。

第四、后台管理方式。iOS
中的后台程序并不是指当前后台运行程序,其实是你最近使用过的程序使用记录,比如浏览器的网页浏览记录。

Android
后台则是一直在内存中运行,程序在进程活动停止后都会保留在内存中,直到系统需要更多内存再释放这部分资源。

这个后台管理机制造成用户感知的差异化放大,Android 旗舰已进入8核CPU、3G
RAM的级别,而iOS却只需要双核1G就能保持稳定流畅的头衔不动摇。

其实这与两个系统的优先级有关,iOS对屏幕反应的优先级是最高的,它的响应顺序依次为Touch–Media–Service–Core架构,换句话说当用户只要触摸接触了屏幕之后,系统就会最优先去处理屏幕显示也就是Touch这个层级,然后才是媒体(Media),服务(Service)以及Core架构。

那么 Android 5.0 Lollipop 若是没能解决卡顿,又到底改变了什么?

1、改变了运行环境,却没改变运行秩序。

ART 带来的体验明显提升,告别了虚拟机的 Android
更快更省电,不过对于一些不遵守规则的应用而言什么都没变,还是想怎么折腾就怎么折腾。

2、加剧了本已严重的碎片化。

Lollipop 的推出让很多 Android
用户欢呼了一阵,几个月过去后他们发现真相,自己的手机连 4.4
的官方更新都还没收到。于是大家就都明白了将希望寄托在新版系统身上,还真不如刷个
CM 或者 MIUI 包。

所以 Android 的卡顿其实从根源上就注定了没有办法解决,除非 Google
愿意放弃现有市场全部推倒重来,不过那样的系统和 Android
已经没有任何关系了吧?

其实 Android 粉丝们不必过分担忧卡顿,iOS 粉丝也不必庆幸流畅,毕竟库克的
iOS 8 已经开始砸金字招牌,说不定到了 iOS 10 与 Android 7.0
发布,大家都会变得一样,没个十核 CPU 加上 8G
内存大家都会变得一样卡了呢?

三大后天因素拉低用户体验

其实 Android 与 iOS
相比,除了四大先天不同所造成的差距外,还有三大后天因素让 Android
的体验越来越不尽如人意。

1、无序的开发者

Android 的开放与自由带来了大量的开发者,也让一部分不遵守规范的开发者进入
Android 的世界,于是应用开始肆意挥霍硬件资源,不少程序都开始自动启动。

当你安装了不少的应用之后就会发现,这些应用都开始驻留后台。杀掉这些应用的进程无助于解决问题(因为他们会自动重新启动,不断地杀进程会造成他们不断重启,最终耗光你的电池),最后你只能彻底删除他们。

因为这个删除的用户需求,一款叫做 Clean Master
的应用还带动了猎豹移动的上市。

2、无奈的 Android Market

由于一些让人无奈的原因,各种水平不齐、鱼龙混炸的第三方市场充斥于市。而即使在官方的
Google Play 也经常爆出恶意软件或者仿冒软件。混乱的市场和不守序的开发者让
Android 的应用环境进入一个越来越差的死循环。

3、无解的碎片化

100 个 Android 手机制造商从 Google 那拿到 Android 代码之后,就可以制造出
100 种搭载不同硬件平台、界面的 Android
手机,即使是搭载完全相同的硬件,不同品牌的机器,运行速度,软件兼容性都会有区别,这就是
Android 开放带来的碎片化。

就这样,无论在先天还是后天上,Android 都注定着越来越卡,曾经的 4.4
没能解决,5.0 也不会解决。

那么 Android 5.0 Lollipop 若是没能解决卡顿,又到底改变了什么?

1、改变了运行环境,却没改变运行秩序

ART 带来的体验明显提升,告别了虚拟机的 Android
更快更省电,不过对于一些不遵守规则的应用而言什么都没变,还是想怎么折腾就怎么折腾。

2、加剧了本已严重的碎片化

Lollipop 的推出让很多 Android
用户欢呼了一阵,几个月过去后他们发现真相,自己的手机连 4.4
的官方更新都还没收到。于是大家就都明白了将希望寄托在新版系统身上,还真不如刷个
CM 或者 MIUI 包。

所以 Android 的卡顿其实从根源上就注定了没有办法解决,除非 Google
愿意放弃现有市场全部推倒重来,不过那样的系统和 Android
已经没有任何关系了吧?

其实 Android 粉丝们不必过分担忧卡顿,iOS 粉丝也不必庆幸流畅,毕竟库克的
iOS 8 已经开始砸金字招牌,说不定到了 iOS 10 与 Android 7.0
发布,大家都会变得一样,没个十核CPU加上8G内存大家都会变得一样卡了呢?

 

参考:

而Android系统的优先级响应层级则是Application(应用)–Framework(框架)–Library(图像处理)–Kernal架构,和显示相关的图形图像处理这一部分属于Library,你可以看到第三位才是它,当你触摸屏幕之后Android系统首先会激活应用,框架然后才是屏幕最后是核心架构。

因此,优先级不同导致了iOS产品以及Android产品在操控过程中表现的差异。在滑动屏幕是,iOS系统会优先处理Touch层级,而Android系统则是第三个才响应Library层级,这是造成它们流畅度不同的因素之一,但不是绝对的。

硬件工作区别:iOS基于GPU加速

目前手机的处理器等硬件配置已经达到了瓶颈期,各大旗舰产品在硬件比拼中基本上没有太大变化,而GPU就成为了差异化最重要的体现。

一般来说一些大型3D游戏对于GPU要求较高而,苹果的Power VR
SGX系列GPU一直是以高性能著称的。

为iOS系统对于图形的处理都是基于GPU硬件加速,可以减轻CPU运算的压力但是Android为了适配不同硬件的手机,需要满足各种差异配置。

所以很多图形特效处理大部分都要靠程序本身进行加速和渲染,并严重依赖CPU运算的操作自然会加大处理器的负荷,从而出现卡顿的问题。

虽然在Android4.0以后的系统中都默认开启了硬件加速,但依旧无法做到运用GPU加速全部的图形特效。

屏幕优先响应,再加上iSO本身GPU加速程序的特性,使得iOS系统在操作中拥有不错的流畅性,iOS系统的这些流程本身都是在为流畅服务。而GPU加速这点特性,应该是它优于Android系统流畅性的又一个因素。

系统设计区别:安卓APP无法统一

上面的两个原因,似乎已经可以大概解释为什么iOS相比Android更为流畅的原因。但最终还有一个问题是应用程序,在Android上似乎系统自带的软件很少出现卡顿,而一旦安装一些第三方应用后,卡顿问题就逐渐出现,这究竟是为什么?

因为iOS系统的封闭性,对于APP的开发框架有极为严格的限制,所以APP在iOS系统上运行对象比较单一。

还有就是苹果设备的硬件供应商比较固定,CPU也是有规律更新,不像Android终端不停地在变,开发者很难针对一款设备开发专用的软件,需要兼容多个CPU或GPU的硬件平台,这就导致了Android应用开发成本较高且收益慢。

反观iOS应用开发则因为软硬件垂直整合而受益,这样一来苹果自然就保证了应用本身其与硬件产品之间的完美结合程度。

简单地说,如果有Android开发者专门针对某款旗舰手机开发出的大型游戏,那么在流畅度上来说,理论上不会出现卡顿延迟的问题。

因此,开发者不可能针对所有的机器型号进行开发,只能在比较主流的机器上进行测试并保证运行效果,所以他们为了兼顾整个产品线,不得不降低游戏体验以达到高中低产品可以共用的效果

因为Android终端高中低档手机的用户数量多,自然而然就会产生Android产品不如iOS流畅的抱怨。

总结一句话:Android考虑更多的是“怎么让系统能够运行”,而iOS无时无刻想着“怎么让系统高效地运行”。

发表评论

电子邮件地址不会被公开。 必填项已用*标注