- Android 开发入门与实战(第二版)
- 姚尚朗 靳岩等编著
- 65字
- 2020-06-26 06:53:29
第1章 掀起你的盖头来——Android开发扫盲
从本章你可以学到:
Android行业概述
Android开发概述
Android开发资源
1.1 Android行业概述
1.1.1 Android缘起
让我们先从 Android 系统的历史说起,首先我们就要说说 Android 这个名字的来历。Android这个词最先出现在法国作家维里耶德利尔·亚当于1886年发布的科幻小说《L'Eve Future》中,中文翻译为《未来夏娃》,又称《未来的夏娃》。在《未来夏娃》中,作者将外表像人类的机器起名为“Android”(安德罗丁),这也就是Android名字的由来。它由4部分组成,分别如下:
(1)生命系统(平衡、步行、发声、身体摆动、感觉、表情、调节运动等);
(2)造型解质(一种盔甲,关节能自由运动的金属覆盖体);
(3)人造肌肉(在上述盔甲上有肌肉、静脉、性别特征等人的身体的基本形态);
(4)人造皮肤(含有肤色、机理、轮廓、头发、视觉、牙齿、手爪等)。
知道了Android名字的来历后,我们再来看一下Android系统的来历。说到Android就必须要提到的一个人就说安迪·鲁宾(Andy Rubin),Andy Rubin 创立了两个手机操作系统公司,分别是Danger和Android。
Danger在2008年以5亿美元卖给Microsoft。Microsoft依靠收购Danger的团队启动了Kin的研发计划“ProjectPink”,用了两年时间研发,2010年4月12日,Microsoft发布KinOne和KinTwo两款Kin机器,2010年5月6日上线,并于2010年5月13日由Verizon Wireless开始销售。但仅仅上市48天,2010年6月30日微软已经决定不再推广Kin品牌手机,并且终止Kin手机的欧洲沃达丰发布计划,将Kin的团队并入到Windows Phone 7团队。
Android于2005年以4千万美元卖给了Google,也就是本书将要介绍已经席卷全球的Android手机操作系统。这也就是说Android系统一开始并不是由Google研发出来了。Google在2005年收购了这个仅成立22月的高科技企业后,Android系统也开始由Google接手研发,Android系统的负责人以及Android公司的CEO安迪·鲁宾(Andy Rubin)成为谷歌公司的工程部副总裁,继续负责Android项目的研发工作。
经过两年时间的研发,在2007年11月5日,Google正式向外界展示了这款名为Android基于Linux平台的开源移动操作系统平台,并且在当天Google宣布与34家手机制造商、软件开发商、电信运营商以及芯片制造商组成开放手持设备联盟(Open Handset Alliance)。这一联盟将共同研发Android系统以及应用软件,共同开发Android系统的开放源代码,并生产Android系统的智能手机。
当天,发布了第一个面向开发者的软件开发包(SDK)Android 1.0 beta,Android平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件平台。
▲图1-1 Andy Rubin
至此,Android进入大家的视野,成为大家重点关注的对象,也开始了移动互联网的伟大征程。
1.1.2 Android市场发展轨迹
苹果公司(Apple,Inc.)在2007年1月9日举行的Macworld宣布推出iPhone,iPhone于2007年6月29日在美国上市,开启了智能手机的革命,并且很快获得了消费者的青睐。但Android平台正以一个更快的速度蔓延世界。从第一台Android设备T-Mobile G1(Dream)于2008年10月22日在美国上市以来,在不到4年的短短时间里,Android成长为移动操作系统的霸主。截至2012年第二季度豪取全球52.6%的市场份额,较7月多了 0.4%,与同年5月相比有 1.7% 的成长,如图1-2所示。
▲图1-2 Android 2012年Q2占有率达52.6%
其中从2012年第二季度来看,国际数据公司IDC发布的一项最新报告数据显示,2012年第二季度大约有 1.54亿部智能手机出货。其中,Android和iOS 占所有智能手机系统的85%。而BlackBerry和Symbian所占的份额都下降到 5%以下,如图1-3所示。
▲图1-3 2012年2Q 全球智能机市场占有率比例图
仔细看下具体的数据,如图1-4所示。
▲图1-4 2012年2Q 全球智能机详细数据
从图1-4所示中可以看到,在2012年第二季度:
· Android的市场份额占有率为 68.1%,比去年同期增长超过 15%。
· iOS的市场份额占有率为 16.9%,而去年同期达到23%,下降了 6.1%。
· BlackBerry占据第三的位置,但是所占份额只有4.8%,而去年同期达到了11.5%。BlackBerry的所占份额创下了2009年以来的最低纪录。RIM在第二季度的手机出货量只有740万部。
· Windows Phone以及Windows系统的占有率达到 3.5%,比去年同期的2.3%上升了1.2%。
· Symbian 则由去年同期的16.9%下降到现在的 4.4%。
大家可能在惊叹,Android疯狂蔓延全球是如何做到的。在2012年的世界移动大会上,Accenture (埃森哲)的分析师Lars Kamp分享了一份非常有参考价值的研究报告,揭示了移动世界的未来趋势,同时也充分展示了Android发展的强劲势头,我们一起来看一下。
首先,世界人口在2007~2012年这5年里增长了6%,而移动用户增幅超过了4倍,如图1-5所示。
Android设备每天的激活量仍然快速增长,如图1-6所示。
▲图1-5 移动用户增长图
▲图1-6 Android设备每日激活数
从图1-6所示中可以看到,Android设备在2011年底每天激活的Android设备数已经接近100万部。据最新消息(笔者写作的时候),在2012年10月,每天激活的Android设备数已经达到150万部。Android设备型号也从最初的HTC一家硬件厂商逐渐成为各个硬件厂商的新宠,各种型号的Android设备层出不穷,如图1-7所示。
▲图1-7 Android设备型号
在整个移动操作系统的对决中,Android从2009年起开始飙升,并于2010年超过iOS,并很快超越RIM一举成为份额最大的操作系统,如图1-8所示。
在图1-8所示中可以看到,伴随Android的迅速崛起,RIM、Windows Phone和塞班成为最大的输家,特别是RIM,直接从50%的市场占用率跌到不足10%的份额,塞班系统目前只有0.8%的市场份额。
▲图1-8 移动设备增长趋势
目前在手机市场上,随着 Android 平台的发展以及不断完善,越来越多的手机厂商开始选择Android系统作为其主要发展方向。自2008年9月Android系统的第一个版本发布至今,Android系统在手机市场大放异彩,已经占据市场份额第一的位置许久。IDC 高级研究员 Kevin Restivo 表示现在全球的手机用户很多还在使用功能手机,因此智能手机系统的市场份额之战远未结束,一些手机系统的竞争者依旧有增长的空间。
随着iOS新版本的不断推出,以及Microsoft已经推出的Windows Phone系统的不断完善,再加上RIM即将推出的全新操作系统BlackBerry 10做最后一搏,手机智能系统的竞争越加激烈。但就目前来说,Android手机的统治地位还是无法改变的,而我们要做的,就是在这个时候,果断加入Android开发者阵营。
1.1.3 Android SDK发布里程碑
Android SDK最早对外发布的一个版本开始于2007年11月的Android 1.0 beta,至今为止已经更新到Android 4.x版本。这些更新版本都在前一个版本的基础上修复了bug并且添加了前一个版本所没有的新功能。
▲图1-9 Android SDK发布
如图1-9所示,Android SDK采取大写字母表顺序来命名代号的习惯,最开始两个不太为人知晓的预发布的内部版本分别是铁臂阿童木(Astro)和发条机器人(Bender)。真正被大家广泛接受的是从2009年4月开始,Android操作系统改用甜点来作为版本代号,比如大家熟知的纸杯蛋糕(Cupcake)、甜甜圈(Donut)、闪电泡芙(Éclair)、冻酸奶(Froyo)、姜饼(Gingerbread)、蜂巢(Honeycomb)、冰淇淋三明治(Ice Cream Sandwich)及糖豆(Jelly Bean)。
在整个SDK更新的历程中,历经了多个里程碑式的大事,我们将其列举如下。
· 里程碑1:第一次面世
2007年11月5日,Google公司宣布其基于Linux平台的开源手机操作系统的项目代号为“Android”,同时成立开放手机联盟。
2008年3月,Android SDK发布,代号为m5-rc15。
· 里程碑2:第一次对外发布SDK
2008年8月,Android 0.9 SDK beta版本发布,代号为m5-0.9。
· 里程碑3:第一款智能手机
2008年9月23日,美国运营商T-Mobile在纽约正式发布第一款Android手机——T-Mobile G1。该款手机由宏达电(HTC)代工制造,是世界上第一部使用Android操作系统的手机,支持WCDMA网络,并支持Wi-Fi。当天,Android 1.0 SDK发布。
2009年2月2日,Android 1.1 SDK发布。
2009年4月30日,Android 1.5 SDK发布,代号为Cupcake,该版本基于Linux2.6.27内核。
· 里程碑4:加入NDK支持
2009年9月15日,Android 1.6 SDK发布,代号为Donut,该版本基于Linux2.6.29内核。
2009年10月26日,Android 2.0 SDK发布,代号为Eclair。
2009年12月3日,Android2.0.1 SDK发布。
2010年1月 12日,Android2.1 SDK 发布,同时 Google 在美国加利福尼亚州山景城(Mountain View)总部的Android发布会上,正式发布自有品牌手机Nexus One,该机正是采用Android 2.1操作系统。
2010年5月20日,Android 2.2 SDK发布,代号为Froyo,该版本基于Linux2.6.32内核。
2011年1月18日,Android 2.2.1 SDK发布。
2011年1月22日,Android 2.2.2 SDK发布。
2010年12月6日,Android 2.3 SDK 发布,代号Gingerbread,基于Linux2.6.35内核。
2011年2月9日,Android 2.3.3更新包发布。
2011年7月25日,Android 2.3.5更新包发布。
2011年9月2日,Android 2.3.6更新包发布。
· 里程碑5:开始支持平板电脑
2011年2月22日,Android 3.0 SDK发布,代号Honeycomb,该版本基于Linux2.6.36内核。
2011年5月10日,Android 3.1 SDK正式发布。
2011年7月15日,Android 3.2 SDK正式发布。
2011年9月20日,Android 3.2.1 SDK发布。
2011年8月30日,Android 3.2.2 SDK发布。
· 里程碑6:手机版和平板电脑版本合并
2011年10月19日,Android 4.0发布,代号Ice Cream Sandwich,同日发布搭载Andorid 4.0的Galaxy Nexus智能手机。
2012年6月28日,Android 4.1(Jelly Bean 果冻豆)在Google I/O大会上随搭载Android 4.1的Nexus 7平板电脑一起发布。
1.2 Android开发概述
前面我们了解了Android的缘起和市场发展轨迹,并了解了Android SDK的发布时间点和里程碑性的事件,接下来我们来看看Android开发相关的一些内容。
1.2.1 Android开发生态链
前面了解了Android及其SDK的发展历史,做为开发者,我们这里有必要了解下Android生态圈,看看我们到底在那个地方扮演什么角色,如图1-10所示。
从图1-10所示可以看到Android的生态圈很复杂,但是我们大致可以将其划分为如下几个部分。
· 芯片商:这些厂商生产Android设备需要的芯片,诸如Intel、高通、MTK等。
· 厂商:厂商又叫设备厂商,其生产Android设备,诸如华为、中兴、Moto、三星、HTC、小米、酷派、魅族等都是这个角色的典型代表。
▲图1-10 Android生态圈
· 操作系统平台:这里的操作系统指的是Android,iOS或者Windows Phone,Black Berry等专门针对智能手机的操作系统。
· 运营商:运营商在整个生态链中起到了非常重要的推动作用,诸如移动、电信、联通的网络状况,资费状况对整个生态链的发展有很大的影响。
· 开发者:这个群体就是包括笔者在内的广大开发人员了,其中有的是传统大公司的移动业务开发人员,有的是新型创业公司的从业人员,也有一些是以团队合作或者单枪匹马的开发者。开发者开发移动应用,最终用户来使用。
· 开发者服务:这个群体也相当大,因为有很多开发者在开发应用中需要的服务是共性的,诸如大家都需要支付功能,都有应用内统计功能等,这样就有公司将开发者的需求做成单独的服务供开发者服务。
· 用户:也称最终用户,这群用户是这个生态圈最后服务的对象,也就是我们常说的手机用户,用户购买手机,使用应用,产生付费或者其他有价值的行为。
上面阐述的Android生态圈是比较笼统和抽象的,只为了让大家能大致了解整个环节,搞清楚我们开发者的地位。
1.2.2 Android国内开发者现况
根据国内最大的Android开发者社区eoeAndroid社区近60万的注册开发者的统计数据来看,国内Android开发者主要分布在北京、上海、深圳、广州等城市。
从eoeAndroid社区最近1个月的访问来源来看,也得出一样的结论,如图1-11所示。
▲图1-11 eoeAndroid社区访问来源
从图1-11所示可以清楚看到,北京拥有超过20%的访问数,也就是说,北京占据了差不多1/5的Android开发者;深圳、上海分列第2、第3位,都超过10%的份额;紧接着的城市是广州、南京、成都、杭州、武汉、西安和厦门。这10个城市是目前为止国内Android开发人员最聚集的城市。
另外,据靳岩于2012年10月14日eoe移动开发者大会上发布的《2012 eoe 移动开发者生存报告》来看,我们还可以看到一些很有趣的Android开发者特征。
从图1-12所示中可以看到,Android开发群体中女性开发者只有8%的比例,这也说明了女开发者的缺口很大。此外,在年龄的统计上,Android开发者群体较为年轻,成长空间大,29岁以下的移动开发者约占到了94%。而在开发经验上有3年以上开发经验的很少,不足1年开发经验人数很多,也说明了大家的技术水平并无太大的差距,就算现在才接触Android开发,也是这个行业的先行者。
▲图1-12 Android开发者特征
1.3 Android开发资源
Android开发也就是最近3年的事,大家普遍觉得可以参考的开发资源有限,这里给大家推荐一些我们觉得有助于大家学习和成长的资源。
1.3.1 Android开发线上社区
关于Android开发人员最聚集的线上开发社区,这里介绍三个对大家最有用的。第一个要推荐的自然是Android Developers(http://developer.android.com/),如图1-13所示。
▲图1-13 Android Developers
图1-13所示是Android开发的官方网站,经过几次改版后现在网站整体结构清晰,资料丰富,是大家获取最新Android开发相关的信息的必备网站。但是其是英文的,对于英文水平不是很好的读者有些门槛。紧接着要推荐的是eoeAndroid开发社区(http://www.eoeandroid.com/),如图1-14所示。
▲图1-14 eoeAndroid社区
eoeAndroid社区成立于2009年4月,是国内做的最早也是最权威最大的Android开发者社区。社区内高手很多,问答区的问题很快就有其他高手帮你解决。社区氛围活跃,每个会员都积极贡献内容,帮忙其他人解决问题。另外,笔者也是这个社区的创始人,非常高兴看到这些年来这个社区帮助越来越多的人成为Android优秀开发者。
最后要推荐的是 stackoverflow(http://stackoverflow.com/questions/tagged/android),如图 1-15所示。
▲图1-15 stackoverflow
stackoverflow是基于问答的社区,其中有大量有质量的问题和解答,但是这个社区也是英文的,如果你的英语水平不错,可以尝试在这里问问题,或帮助其他人解答问题。
1.3.2 Android学习资料
前面介绍了三个很值得去的Android开发者社区,接着再介绍一些对大家很有价值的Android学习资料。Android开发学习资源零零碎碎的很多,但是大多不成体系,这里推荐如下几个供大家参考。首先要推荐的是eoeAndroid社区组织社区200多名志愿者参与翻译和撰写的“Android开发实战”(http://training.eoeandroid.com/,http://guide.eoeandroid.com/,http://design.eoeandroid.com/),如图1-16所示。
Android开发实战内容包括了Android入门篇,Android进阶篇,Android高级篇等系列知识,是经过eoe社区策划和编辑的,是很有系统的Android学习资源,而且会和Android最新版本SDK保持同步更新,是社区会员积极参与贡献的,除了涵盖了Android Developers官方网站的全部学习资料外,还有很多是社区会员亲自撰写的。
接着要介绍的是“eoeAndroid 特刊”(http://www.eoeandroid.com/eoemagazine/),如图 1-17所示。
▲图1-16 Android开发实战
▲图1-17 eoeAndroid特刊
eoeAndroid 特刊是 eoeAndroid 社区策划组织,社区会员参与整理,编撰,并公开免费发布的Android技术类电子期刊。其将Android技术点通过专题的形式组织,每期内容都力求“精、透”,力求将每个点都讲全、讲透,给Android开发者最有用的指导和参考。 eoeAndroid特刊自从2009年4月发布第一期以来,已经累计发布25期,内容涵盖了Android的诸多方面。
最后要介绍的是“移动开发百科(eoeWIKI)”Android客户端软件(http://www.eoeandroid.com/thread-194188-1-1.html),如图1-18所示。
移动开发百科(eoeWIKI)是一款移动开发知识百科软件,目前有Android版本,其内容依靠eoe开发者社区,将高质量移动开发内容用百科的形势进行组织和展示,以方便大家能更快更好地学习移动开发的相关知识,尽快成长。 大家可以在社区下载客户端的APK文件。有了客户端软件,就可以在空闲的时间(如坐公交车,等电梯等)的时候进行学习。
▲图1-18 移动开发百科(eoeWIKI)客户端截图
1.3.3 Android开发线下活动
前面给大家介绍 Android 开发社区和一些有用的资源,接下来给大家再介绍下可以关注的Android开发线下活动。首先要介绍的是eoe移动开放日(http://salon.eoe.cn/),如图1-19所示。
▲图1-19 eoe移动开放日
eoe移动开放日是eoe主办的一个在全国城市巡回举办的线下沙龙,沙龙从应用入手,以应用为单位多方位展开“微”解析。每期都将邀请在IT前线的几名战士,与参会者分享产品设计、开发、运营经验。以实践为基础,以数据为导向给大家揭示成功的应用是如何开发的。截至2012年10月,已经在北京、上海、深圳、广州、西安、成都、南京、厦门、武汉等十几个城市举办了近20场线下沙龙。有兴趣的同学请关注并及时报名参加。
最后给大家介绍的是“eoe同城会”线下聚会,如图1-20所示。
“eoe 同城会”是 eoe 社区会员在各个城市自行组织的线下核心用户聚会。全国很多城市都有eoe同城会,各地定期举办线下聚会讨论当前的技术话题或者eoe社区事务,一起推动eoe社区的发展。如果你想加入本地的“eoe同城会”,请关注eoe社区和本地负责人联系。
▲图1-20 eoe上海同城会
1.4 本章小结
本章是本书的第一章,要给还不熟悉Android开发的读者做个扫盲,让大家对Android开发有一定的认知。本章首先介绍了Android的缘起和市场发展轨迹,又介绍了Android SDK发布的时间点和里程碑。紧接着介绍了Android生态链让大家了解开发者在整个生态链中的位置,并介绍了国内Android开发者的现况和特征。最后推荐了一些优秀的Android开发者社区和开发学习资料,并简单介绍了一些大家可以参与其中的线下沙龙活动。