日期:2014-05-17  浏览次数:20859 次

Android:Google的阳谋和Apache Harmony

Gphone终于尘埃落定,机器人(Android)携34个厂商,和Google 1000w$的重赏问世,世人无不为其的盛大登场而侧目。好奇如我者不禁要问,Android究竟带来了什么?它对业界有何影响?看了国内几篇不痛不痒,或者不知所云的报道后,忍不住多嘴多说几句了。

让我们从实际出发。Android的构架可以说是一个open source的大杂烩,Google善用开源的优良传统得到了发扬光大。看看Google自己的构架图吧

?

最底层的是一个Linux Kernel,加载了几个移动设备必要的系统驱动(这么说来Android基础系统是要以GPL发布了?不知道34家厂商的硬件开发商们是怎么样想的);上面是类库和Runtime,绿色的类库部分可以看到大名鼎鼎的SQLite,这个软件甚至声称自己属于公共领域(比MIT License还要强 @@,字体FreeTypeBSD-style License的,图形库OpenGL ES只需通过产品测试,无偿使用于产品。再向上看是应用层的东西了,这里可以做的事情就非常多了,各个社区,各个厂家都可以参与进来。难怪Androidsdk可以Apache License发布了,对企业和开发人员友好啊。

那么Google自己的东西在哪里呢?没错,就是右边那个runtime,最吸引技术人员的就是这个runtime(注意,这个才是Android的核心)。Google为它准备了一个虚拟机,叫做Dalvik。这个让人摸不着头脑的东西的到底是什么?从开发平台上我们清清楚楚地得到了答案:Java

Sun公司刚刚做了两件看上去很傻的事情,一个是为了TCKApache社区闹翻了,它只愿意给另一个完整的open source JDK(好吧,没有授权,不能叫JDK——仅仅是不能叫罢了) Apache Harmony一个受限制的TCK,保证它在PC平台之外不被许可(言外之意,就是拒绝他人进入广阔前景的J2ME);一个是把自己在NASDAQ的股票代码改成了JAVA。这两个让人啼笑皆非的事情清楚地摆明了Sun公司的态度,Java,尤其是J2ME是他的禁脔,Sun依靠各种专利,JCP,依然牢牢地控制了JavaSun之复兴,似乎也依赖于此了。

Google不声不响地做了一个Android,它什么也不说。然而,正是这一个看上去傻乎乎的机器人,开始了Java又一条道路。Dalvik从来没有声称自己是jvm,但它的确可以运行编译过的java程序(当然,编译的结果也不是.class了,但是这个一点也不重要)。那么Core Libs呢?偷偷看一眼就知道了,Apache Harmony

Google不需要借Java本身来宣传自己,不知道java的人却能知道Google。对于开发人员来说,知道jav