28 October 2013

知乎上有人问

为什么同样的应用程序,在iOS上的体验要比Android上好很多?

我的回答:

“体验”包括很多方面,比如流畅度、功能、界面和交互等。我只回答一下导致iOS和Android流畅度差异的原因(这个是比较客观的因素),别的就看其他人关于开发者态度、应用生态环境之类的分析吧(那都太主观了,如果开发者不想开发好,那谁也没辙)。

流畅度取决于程序运行速度,在配置相当的硬件上比较才有意义。在这方面,iOS系统本身确实比Android系统占优势:一方面,iOS系统很大程度上是单任务的,你当前使用的app独占计算资源,而Android上后台其他程序也在分享计算资源; 另一方面,iOS系统上程序用Objective-C(C语言的扩展)编写,而Android上则大多用Java编写,C语言程序的效率比Java高也是公认的。
基于以上两点,在其他条件同等时,iOS上当前运行的程序既可以使用更多的计算资源,本身代码效率又高,比Android程序运行得快也是理所当然的了,于是用户觉得流畅。

当然,上述差异只在计算资源比较紧俏时才会明显,如果硬件配置足够好,速度差异也就基本感觉不出来了。

另外:

其他人也提到,由于Android系统和硬件的多样化,导致开发者需要花更多的精力去适配不同机型;而iOS软件和硬件都是统一的,这也是iOS相对于Android系统的一大优势。