求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
 
深入Android 【一】 —— 序及开篇
 

2010-04-13 作者:duguguiyu 来源:duguguiyu的blog

 

携来百侣曾游,忆往昔峥嵘岁月稠。 -- 《沁园春·长沙》

对于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虚拟机,当时仅提供Java API的支持(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,如果你有心,就做好准备吧。


相关文章

深度解析:清理烂代码
如何编写出拥抱变化的代码
重构-使代码更简洁优美
团队项目开发"编码规范"系列文章
相关文档

重构-改善既有代码的设计
软件重构v2
代码整洁之道
高质量编程规范
相关课程

基于HTML5客户端、Web端的应用开发
HTML 5+CSS 开发
嵌入式C高质量编程
C++高级编程
 
分享到
 
 
     


android人机界面指南
Android手机开发(一)
Android手机开发(二)
Android手机开发(三)
Android手机开发(四)
iPhone消息推送机制实现探讨
手机软件测试用例设计实践
手机客户端UI测试分析
手机软件自动化测试研究报告
更多...   


Android高级移动应用程序
Android应用开发
Android系统开发
手机软件测试
嵌入式软件测试
Android软、硬、云整合


领先IT公司 android开发平台最佳实践
北京 Android开发技术进阶
某新能源领域企业 Android开发技术
某航天公司 Android、IOS应用软件开发
阿尔卡特 Linux内核驱动
艾默生 嵌入式软件架构设计
西门子 嵌入式架构设计
更多...   
 
 
 
 
 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号