Apple有Foxconn们,MS有Nokia,但Android在垂直整He方面,并没有一个强有力的伙伴。Moto除掉那个专利包,就只剩下全 球4%的智能机份额和20万台tablet季出货量。抱着Moto的Google,只能让其移动业务战略更快滑向shen渊。如果普通人都能看到这一点,相信 Google管理层不会没有考虑。
前面有问到,觉得android逐渐兴起,在平板电脑有可能超过ipad,那我就给再分析一下这个情况从*作系统层面分析下这个情况。
自苹果收购了乔布斯的NeXT之后,花了六年把它打磨成了Mac OS X;又在2005年左右花了两年半时间,基于它制造了iOS。从各种意义上来说,iOS是一个传统技术的*作系统。它有一个基于微nei核Mach的 Darwinnei核,有一个叫做Cocoa Touch的运行时,用的是Objective-C这个C语言的超集。而Android在Linuxnei核之上,集成了一个Java虚拟机Dalvik,整个应用层跑在虚拟机之上,而开发语言用的是Java。
goole当初选择java,当然有它的道理。它起步晚,失去了先机,只能祭起两款大旗:开源和争取广大的开发者来为其迅速增加应用。而要广大的开发者为其开发,就只有选择JAVA语言这条路。说起这个JAVA,我前文也有多次提及过了,这里就不再赘述了,在我的软件同行中,只要做C和C++做得比较好的,没有几个喜欢这个JAVA语言,没错,开发是方便,但是效率x就大打了折扣。君不见这两年来,手机的CPU主频像火箭般的提升,1.4G,双核什么的,而在几年前,600M的主频也就到头了,大部分都是三四百M的主频,更没有什么双核了,这都android吃硬件导致的,有点像当年的wintel阵营,WINDOWS不断的提升对硬件的需求,而intel则不断的升级硬件,只不过,这回的主角分别变成了google和高通。
而说到开发语言,android的开发语言和苹果的开发语言就一点微小的区别:android用的java只有自动nei存回收,而iOS用的Objective-C语言自动与手动nei存回收均可(但注意iOS只有手动nei存回收)。这小小的区别导致,谷歌只能做一个Java虚拟机,而苹果可以继续他们在Mac OS X上的经验。而这个行为导致了两者在系统流畅x上的最大区别。Java由于只有自动nei存回收,系统会在任意时间停掉所有进程开始回收nei存,这个过程是人类可以_gan受到的数百毫秒。而iOS由于可以手动管理nei存,可以在用户*作的间歇由程序员进行回收,用户不会在频繁使用过程中_gan受到停顿。在日常使用中这个停顿其实是可以忍的,但是在游戏过程中这个停顿是不可以忍的,比如想像一下一只愤怒的小鸟在空中停顿了零点几秒再继续飞行。
谷歌事实上意识到了这个问题,于是它在Android 2.3版本中大修了这个问题并将之作为一个特x大书特书。且抛开2.3的普及x不谈,单说这个大修的行为,也并没有修好这个问题。于是谷歌抛出了第二个在开发上的修补:引入C/C++ NDK。可以说到了这一步, Android整个nei核往上的应用层才有了与iOS抗衡的实力,可惜时间已经过去了近四年,iOS积累了十五年,Android刚刚起步。
由于开发语言派生出来的问题远远不止于此,在iOS上的娱乐应用,无论是数量还是质量都远胜Android。究其原因,一是用户更愿意花钱从而开发者更有激情,二是开发更加便利不需要考虑数百机型。事实上这个世界上大部分正经游戏都是用C++开发的,而Objective-C与C++天生一家的特xxi引了太多游戏开发者(你可以直接用C++给 iOS开发游戏),而Android的Java就不必再提了......
除了软件方面外,苹果方面优势的地方还在于和硬件相结He。大家看的时候可能不太明白如何的结He法,那我就简单的说一下。
本章未完...
=== 华丽的分割线 ===