自言自语

I'm Wang Xianyuan, writing for myself, more studying, more experience…

关于Android与iPhoneOS的胡思乱想

By

Android SDk 2.2的发布影响可谓广泛,掐指一算,未来最值得关注的智能手机平台大战应该在Android与iPhone OS之间展开了。在近期Google I/O对Android的高调宣传下,又在老同学彪的支持下,我带着压抑已久的好奇心准备闯入Android的世界,摸摸Android这头小象。Android最吸引人的莫过于开源、Google、Moto等N家巨头的支持,那么我就从技术角度和市场前景角度胡思乱想、胡扯乱谈一番好了。

android-iphoneos

开发门槛

从入门开始,当然首先要谈开发门槛了。这个东西很重要,会环环相扣,是产品最终在市场上的杀伤力,甚至是占有率的重要影响因素。从开发语言上来看,Android是Java的,也是C++的,但归根结底是基于虚拟机的。一旦有了虚拟机这个东西,就可以用先进的OOP思想去Coding优雅的框架和程序代码。这一点将直接降低开发门槛,原来没有嵌入式平台开发经验的程序员只要熟悉Java就能以极快的速度上手,完成一般性应用也不需要去了解系统底层,更可免去与硬件打交道繁杂过程。

相比之下,Apple的iPhone OS在开发语言和开发方式的选择上就要少一些了。当然,没有选择也不是坏事。因为你没有选择,因为它是独一无二的Apple,你也不需要选择,Apple已经把选择给他的开发者省略掉了,这样一来作为开发者省事了很多,不用踌躇在专注于App开发还是专注于底层开发。不过话说回来,在这么多先进的、近乎自然语言的编程语言关怀下成长起来的现代开发者,要回头去忍受C语言(尽管是Objective的)的“禁锢”,怎么说都得击退一大批还在Java和C之间犹豫不定的浮躁的程序员(我曾经就是浮躁的程序员,后来我发现了这一点,第一时间改行了)。

以上将Android与iPhone OS从开发入门语言上做了一个对比,但先不作结论性的判断,因为依此下结论还为时尚早。下面从平台先进性上继续分析比对。

平台先进性

虽然得说说平台先进性,但我觉得既然Android与iPhone OS是同一个时代的产物,就不存在明显的孰优孰劣。我要谈的是以开发者角度来评判的,Android与iPhone OS在平台架构上,孰新孰旧。

先说看起来简单,实际上复杂的iPhone OS吧。说iPhone OS看起来简单是因为iPhone OS本身就是历史悠久,被广大开发者所熟知的Unix的Phone版。说iPhone OS实际上复杂也正因为此——要加入iPhone应用开发者的阵营就得熟悉Unix,熟悉C。虽然Unix开源,但iPhone OS并不开源。这就意味着你即便对Unix内核如何了解,也只能用繁琐的C去调用系统的API,开发相对“肤浅”的应用。要想深入到内核,并不容易。这也正符合Apple产品的封闭性的一贯原则。对产品在经过高质量优化之后,进行绝对的封闭,对于用户(包括开发者)来说并不是坏事。这样用户能接触到的东西更加受控,产品对用户的定位更加准确,用户拿到产品之后也会更加清自己该如何去使用这款产品。Apple在这一点上做得就异常出色。

用一句话概括形容iPhone OS的架构就是,iPhone OS看起来简单,实际上复杂,Apple的封闭使其对开发者变得简单。

相比之下,Android就是看起来复杂,实际上简单了。Android是基于Linux的,在开源的Linux基础上实现了一个并不开源的虚拟机——Dalvik。而Dalvik作为虚拟机是采用C++开发的,与虚拟机处于同一层的Service也是C++开发。再往上看,Framework和Activity才是Java开发的。要把Android玩到5分境界,起码要通晓Java和C++两种语言并搞清楚整个Android的架构。看起来不简单,但实际上也不难。Android尽管有底层的部分,但大都在Framework中提供了供上层调用的接口。要开发基于Android的应用,实际上只用掌握虚拟机之上的内容就行了。

同样用一句话概括形容Android的架构应该是,Android看起来复杂,实际上也确实复杂,强大的虚拟机和丰富的Framework让其开发变得更加简单。不过目前Android还不是熟透的苹果,在实现比较底层的需求时还是需要修改Linux内核。

这一节貌似有些废话,没有给Android或iPhone OS谁的架构更先进下结论。但我个人看好Android在架构上的优势一些,这种架构在理想情况下可以同时巴结应用开发者和底层开发者。

市场格局

市场格局很明显——一头刚出生不久的小象不如一只熟透了的苹果更吸引人眼球。Apple iPhone OS不论在OS本身的功能设计上还是配套硬件的设计和支持上都较Android成熟得多。AppStore方面,Android的AppStore目前还在起步发展阶段,现阶段的发展战略我想主要是4个字——开源+免费,开源和免费都是针对开发者的。哪里有开源,哪里就有更多的开发者;哪里有免费,哪里就有更多的用户。尽管当iPhone应用数超过10万的时候Android还没得到众多厂商的支持,但开源和免费会使得Android在市场的开拓上会有一股难以遏制的飙升势头。因为当Apple AppStore在向开发者收取99美元的App外放许可时,Android Store正在为开发者提供免费服务。

从增长性上看,Android的增长潜力的确略高一筹。但在经营上,在品牌建设、市场终端建设以及口碑的运营上,Android智能手机要达到iPhone的水平并非一朝一夕的事情。应用开发者从Android上能获得的收入期望值还远远比不上Apple的AppStore,这会使得Android Store上成熟的App比Apple AppStore上的要少上很多。优秀的App不足又反过来影响App的消费者群体数量。

这让我想到Android与iPhone OS之间的市场竞争有点像Linux与Windows之间的竞争。不知道N年以后,市场布局会不会是目前Linux与Windows这样一个比例的市场占有格局。

结论

我特意把Android和iPhone OS从硬件上扒下来,脱离了硬件的支撑而公平地对两个软件平台品头论足。所得到的结论显然有些“偏袒”Android而“剥夺”了iPhone的硬件设计上的优势,这也并不违背我的初衷——仅讨论Android和iPhone OS,而非讨论基于Android的设备和iPhone。
综上述对关键点简单的分析比对之后,得出的结论也很简单。Android就像一札草纸,很容易火,事实上已经着火了。但点着了火,会不会带来重磅炸弹iPhone那样的市场利润,就看各大厂商在这札草纸里面加入了多少硝化甘油(市场利润引爆点)了。

2 Comments

  1. May 22, 2010 at 9:30 pm

    Google 打响和 Apple 的全面战争
    http://apple4.us/2010/05/google-vs-appl.html

  2. June 3, 2010 at 1:57 pm

    你的博客可是很少更新了,:D