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

对于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,如果你有心,就做好准备吧。

转载于:https://www.cnblogs.com/duguguiyu/archive/2010/01/21/1652868.html

深入Android 【一】 —— 序及开篇相关推荐

  1. 深入Android 【一】 —— 序及开篇 序

    深入Android [一] -- 序及开篇 序 序 携来百侣曾游,忆往昔峥嵘岁月稠. -- <沁园春·长沙> 对于Android,我也算是老人了,所谓, 有文有真想.正由于这段玩票经历,使 ...

  2. 【Android应用保护技术探索之路系列】之一:Android应用保护技术开篇

    [Android应用保护技术探索之路系列]章节目录 [Android应用保护技术探索之路系列]之一:Android应用保护技术开篇  [Android应用保护技术探索之路系列]之二:对抗反编译  [A ...

  3. Android系统(111)---Android稳定性专题之开篇

    Android稳定性专题之开篇 一.稳定性问题有哪些 Android应用程序自身的稳定性问题主要有两类一类是Crash,一类是ANR. Crash:比如空指针.数组越界.子线程中刷新UI等错误造成的程 ...

  4. 深入Android【一】—— 序及开篇

    序 携来百侣曾游,忆往昔峥嵘岁月稠. - <沁园春·长沙> 对于Android,我也算是老人了,所谓,有文有真想 .正由于这段玩票经历,使得我在毕业后,鬼使神差的成为移动平台的一名码工,再 ...

  5. Android日志系统分析之开篇

    在android系统中, 提供了一个轻量级的日志系统.该日志系统基于在内核中实现的一个字符设备驱动 logger(misc字符设备驱动).通过该字符设备驱动,android分别提供了C/C++和Jav ...

  6. Android音频架构工程师开篇引言

    Android音频架构师 目的 风格 受众 文章结构 更新进度 目的 写这样一个专栏的初衷,是因为本人在2019年上半年入职目前这家公司,最初入职的职位是驱动工程师,一开始从事的内容也都是驱动这一块的 ...

  7. Android Studio(0)开发开篇 环境搭建 创建工程 2020.3.1版本 虚拟手机

    系列文章目录 文章目录 系列文章目录 前言 一.Android Studio简介 二.安装并创建新项目 1.Hello Android 前言 近期因公司开发的项目需要开发手机APP,所以开始学习And ...

  8. Android应用性能优化 - 开篇

    Android技术优化日异月新,谷歌在GoogleI / O 2018 上终于发布了Android 9.0,系统性能也已经非常流畅,在我看来已远超某果(哈哈其实是因为我是穷逼用不起某果),但是由于国内 ...

  9. Android单元测试系列(1)-开篇

    目录 一.测试金字塔 二.单元测试工具链 三.单元测试基本规范 1. 测试用例存放目录 2. 单元测试代码规范 3. 单元测试验证标准 ​ 本篇进行Android单元测试简介. 一.测试金字塔 Goo ...

最新文章

  1. 使用Xcode和Instruments调试解决iOS内存泄露
  2. 实战案例丨使用云连接CC和数据复制服务DRS实现跨区域RDS迁移和数据同步
  3. 数据处理--One Hot Encoding
  4. RN学习笔记02:利用WebStorm创建RN项目
  5. 目标检测——COCO数据集上SOTA模型的学习笔记
  6. Centos7 linux 卸载自带安装的jdk 并yum自动安装jdk1.8
  7. Matlab魔方矩阵的创建及逻辑矩阵的用法
  8. Jeff Dean的神话
  9. 海淀牙齿矫正:牙齿矫正的步骤
  10. 【⚠️windows删除文件夹抽风了⚠️】“错误0x80070091:目录不是空的”问题处理
  11. @Windows server 2022安装使用(Workstation)
  12. Redis基本数据类型和使用场景
  13. Linux- 网络配置
  14. COMSOL RLC串联电路暂态分析
  15. oracle asmb关闭,[Oracle 11g r2(11.2.0.4.0)]集群守护进程CSS资源管理
  16. 博客发展是否面临拐点
  17. Charles的功能介绍与使用教程,一学就会,不信就来试试?
  18. 分布式服务器框架之搭建C#+MongoDB+Redis初步
  19. php 12306余票查询,PHP火车余票查询的API,12306官方的API
  20. 《数据分析咖哥十话》包邮送3本

热门文章

  1. C#实现发送手机短信
  2. java web 的标准目录结构(zz)
  3. 好像是第一次在公司外的论坛上公开演讲
  4. 通用分页实现及其OO设计探讨
  5. hdu2489-DFS+最小生成树
  6. 什么是补码,怎么求补码
  7. 【Linux 内核 内存管理】内存管理架构 ⑤ ( sbrk 内存分配系统调用代码示例 | 在 /proc/pid/maps 中查看进程堆内存详情 )
  8. 【C 语言】文件操作 ( 学生管理系统 | 插入数据 | 查询数据 | 删除数据 )
  9. 【Java 虚拟机原理】垃圾回收算法 ( 标记-清除算法 | 复制算法 | 标记-整理算法 )
  10. 【Android 组件化】路由组件 ( 页面跳转参数依赖注入 )