文章转载自深入Android 【一】
序
携来百侣曾游,忆往昔峥嵘岁月稠。 -- 《沁园春·长沙》
对于Android,我也算是老人了,所谓,有文有真想。正由于这段玩票经历,使得我在毕业后,鬼使神差的成为移动平台的一名码工,再次有机会放肆的拥抱Android。
2010开年,手上突然有了一把闲散时间,有机会进一步总结和学习Android。于是想再一次为Android写一系列的东西,这些东西来自于一些开发经验,对源码的学习和对Android的浅薄认识,也算是鞭笞自己学习的一种手段。
其下所有内容,预计有十数篇,抑或更多。基本和技术相关,也许会配有一些其他相关比较闲淡的话题。可能会有一些具象实例,但更多的可能是自己的一些理解和认知。所有一切,源自于妄自挖掘,难免有疏漏或误解,观者淡定。
以此为序,有心者,望共勉。
Android简史
人生若只初识,何事秋风悲画扇。 -- 《木兰辞》
要说当今移动平台的当红辣子鸡,Android说它是第二,也许没有别家敢认这个第一(好吧,iPhone,有意见就说...)。了解Android开发平台的过去和现状,除了往下看,另有便捷的方式就是在WikiPedia中键入Android,在这里,特此鸣谢GFW友情放生。
诞生
早在2005年7月,Google舞动着手中的美刀,收下了由Andy Rubin(传说中的Android之父...)等人创立的一家小公司,他们当时做的就是基于Linux内核的手机操作系统,也就是小时候的Android。经过Google多年打磨,Android在07年末,正二八经的粉墨登场开门接客。
自打一出生,Android便被钉板在富二代的角色上,不仅是因为老爹有钱的令人发指,也是因为其后有一帮金光闪耀的叔伯们保驾护航。这个叔伯群,便是响当当的开放手机联盟OHA(Open Handset Alliance)。这个联盟涵盖了中国移动、T-Mobile、Sprint这样的移动运营商,也包括HTC、Motolora、三星这些的手机制造商,同时还有以Google为代表的手机软件商,以Inter、Nvidia为标志的底层硬件厂商和Astonishing Tribe这样的商业运作公司(这公司是啥我也不晓得...)。作为后援团,他们理论上的任务,是各尽其长,全力捧红Android,实际上的任务是齐心协力,借Android东风赚一个盆钵满响。
当然,Android自所以被万众瞩目一炮走红,不仅仅是丫实在太有背景,同时,它也有这太多的新鲜的概念。Android是一个开源的平台(恩,真正的全面开源,是在发布后很久以后了...),它给那些捂着自家平台源码当宝的竞争对手们一记当头棒喝。Android自行研发了一套Java虚拟机,当时仅提供JavaAPI的支持(NDK是更久以后的事情了...),号称为专为高端智能设计。Android开发环境支持所有主流操作系统平台,包括Windows,Linux,Mac,即便到今天,在手机开发中也是极其罕见的。Android的带头人Google,本身是做网络起家,Android内嵌大量Google网络应用,听上去就显得很酷。这所有的一切,共同造就了Android那鹤立鸡群,不染风尘的少侠形象。
造势
推出伊始,Google还有一个很震撼的推广举动,就是举行所谓的Android程序挑战赛(Android Developer Challenge,ADC)。整个比赛分成两场,第一场(ADC1)比赛,在没有任何真机问世,SDK还是个雏形的状况下,便鸣金开锣了。
比赛套路是无差别的群殴,基本概念是无论你来自何方(还是要满足美国法律要求和避嫌要求的),无论你想做些什么,也不管你是光杆司令还是流氓团伙,只要提交一个能在模拟器上跑起来的程序,就可参赛。而比赛只是对你作品进行参观评比,作品的所有权依然放在开发者的口袋中。当然,这还不算什么创新,NB的是无比丰厚的奖金,整个ADC的奖金高达1千万美刀,每场各半,基本上首轮入围奖(前50)已经超越了那时候一般程序比赛的头名奖金,这对很多小公司和个人而言,无疑是具有很强吸引力的。于是,各路打酱油好手蜂拥而至,各论坛、博客、网站也七嘴八舌的讨论开来,一时间,满城风雨。ADC1我也很厚颜无耻的参加了,结果当然可以预想,一毛钱都没摸上。回想整个过程,差距最大的并不是在技术上,而是认知上,我们玩的产品是人家几年前玩剩下的,说创新只是一抹笑谈。
当时觉着,Google太NB了,ADC这种车马未动粮草先行的招太华丽了,就这动静,不论比出来个啥结果,这1千万刀也掏值了。但时过境迁,现在回头来想,也许一切并不是看上去那么美。由于没有扎扎实实的真机摆出来,大家普遍抱着一种玩票的心理,真的敢不顾一切舍下身家性命押宝在Android上的尽在少数,这就锻造了Android平台很长一段时间的只见雷不见雨的局面。而等喧嚣过后,很多人热情消退,Google真端出Android真机的时候,还需要重新热场再来一次,也许,真的有些得不偿失。
困境
所有的东西现在来说,都是事后诸葛亮,只能听个响不能当个真。而真实的状况是ADC1很快进入囧境,由于架构设计上的种种原因,Google花了比预想多的多的时间做Android的优化工作,ADC1比赛被迫不断延期,彻底沦为懒婆娘的裹脚布。各路曾热捧Android的媒体,也不失时机的倒戈,亲手在自己画上的感叹号后面,重重画上了个大大的问号。
祸不单行,同样是由于Android的性能问题,虽然各路高手把Android移植到了不同的手机平台上,但传说中的GPhone一直难产中,使得人们不免有了胎死腹中的猜测。与此同时,其他对手可一点也没闲着。iPhone很快宣布开放SDK,以此来勾引纯情的开发人员。Symbian被Nokia彻底收购,成为Nokia的自留地,开源计划也很快浮出水面。所有景象,对Android而言都犹如梦魇。
破茧
所有一切困境,都在G1发布后,渐渐消散了。2008年10月,第一款搭配Android平台的真机,搭载着无限光荣与梦想的HTC Dream正式发售,这就是注定要载入史册的G1。虽然比之当时绝代风华的iPhone,粗陋的G1犹如村姑遇上公主一般,但无论如何,G1让人们真真切切的看到了Android。这就犹如你家买的跳票N久的期房,终于见着了个毛胚房,那种感觉,除了踏实,找不到更适合的词汇了。
好事当然也会成双,G1它不是一个人在战斗。ADC1总算是落下帷幕,Android Market的也顺理成章的破茧而出,早期的应用,大都来自于ADC1的贡献。Android也结束了伪开源的历史旅程,正式开发SDK的源码实现,搭配的是Apache的License,这种坦诚相见的感觉看上去很不错。忠心耿耿的HTC,更是再接再励,在G1后,陆续发布了Magic(G2)和Hero(G3)。尤其是Hero的现身,惹得一阵小惊艳,HTC为Hero搭配的是基于Android改造UI的Sense系统,以华丽的界面风格赚足了眼球,也创了改造Android的先河。
在HTC高歌猛进的同时,猫在螳螂后的一群黄雀,也敌在动我也动了。摩托罗拉,三星,LG,华为,戴尔,联想等一干手机厂商纷纷跟进,各式各样的Android蜂拥而至。与此同时,其他嵌入式厂商也推陈出新,爱可视(Archos)发布了基于Android的平板设备,明基的Android上网本也是箭在弦上,而基于Android的手持电子书阅读设备也不断的被推出,庞大的Android联盟初现峥嵘。
为了避免同质化,各个厂商纷纷对Android进行的改造,摩托罗拉推出了Cliq,打得是SNS整合牌,三星的新系统也是被广泛期待,而中移动的OMS丑媳妇也要见婆娘了,打着整合移动服务牌@_@的OMS,以丑陋的外貌、低下的SDK版本和雷死人不偿命的宣传文案(绝口不提Android,只说自己做了大量很NB的工作,其实...,哎,咋就那么小家子气呢...)也算是招来大量眼球。
而还是没能耐住寂寞的Google,联手HTC,一同推出了至今只为止最重量级的Android手机:Nexus One。江湖有云:天下武功,无快不破。搭载了全新的Android 2.1,1G的CPU,史上最清晰的手机屏幕的Nexus One,快的是一塌糊涂迅雷不掩耳盗铃小叮当,在单机层面,第一次使得Android手机与iPhone掰手腕的能力(之前与iPhone的比较,都需要依靠集团力量,三英战吕布...)。
在各家厂商努力的同时,Android本身也没有闲着,版本从1.1,一步步进阶到了2.1,SDK的升级,伴随着大量性能、接口的改进,和功能的丰富,Android变得越来越快,越来越省电,越来越丰富,越来越多Google服务被嵌入@_@。由于Android SDK是基于Java的,即便虚拟机做的很是NB,在某些情况下,性能也是无法与原生的C++代码相提并论,于是,从1.5版起,除了SDK,Android还拥有了NDK(Native Develop Kit),它提供了一些C++的库和编译环境(库是真的很少...),开发人员可以基于C++写底层库,用Java写上层逻辑,通过混编的方式,兼得鱼和熊掌。
Android Market的发展也甚为迅猛,虽然和其鼻祖App Store相比,应用的规模和盈利能力还显得比较幼齿,但其涨势凶猛,发展趋势远胜于前辈。国内一些比较著名的手机软件,也纷纷拥有了Android版本的小弟,比如网易有道的出品的有道词典Android版(好吧,这是在插播广告,欢迎大家进行围观并提宝贵意见...)。
起飞
种种迹象表明,2010,也许就是姗姗来迟的Android元年。三星,moto,LG,HTC等多家手机制造厂商,都为2010年将推出的半数以上的手机搭配了Android。在国内,移动的OPhone,丑媳妇要正式揭开盖头了,惨烈是惨烈了一点,但聊胜于无,除了水货,2010毕竟至少多了条购买Android手机的道路。
软件开发方面,大家也从抱着双臂冷眼旁观的状态,进入到了一种伺机而动的战略准备阶段。前不久召开的moto开发者大会,惊现国内各领域的公司,试水开始,可见一斑。国内各个山寨的Market的,也越来越货源充足,下载量稳步上升,升温,就在当下。而随着G2为首的Android水机价格火速下调,身边路边地铁边,可以看到越来越多的人,把玩着各式各样的Android手机,状况尤为喜人。
所以,2010,如果你有心,就做好准备吧。