Android是谷歌推出的基于Linux的手机平台,作为开源的移动操作系统,不存在任何阻碍移动产业创新和发展的专利权障碍,因此Android一经面世就获得了空前的发展,在移动操作系统市场份额一度达到80%多,处于绝对的垄断地位。
现如今Android已经不局限于手机系统,越来越多的车载、穿戴、电视设备也集成了Android系统。我们相信随着物联网的不断深入和发展,Android系统将会以更多样的形式融入到我们的生活、学习和工作之中。因此,学习Android不会过时,正当其时!
1.1.1 Android系统架构
Android的系统架构,如图1.1所示。
图1.1 Android的系统架构
和其他操作系统一样,Android的系统架构也采用了分层的结构。从架构图来看,Android分为四个层次,下面分别来总结一下这几个层。
1.应用程序(Applications)
Android应用程序的源程序除了包含Java代码之外,还包含各种资源文件(放置于res目录中)、将源程序进行编译可以得到一个APK安装包,这个安装包可以安装到Android手机上,将对应一个Android应用程序。Android软件开发者可以使用应用程序框架层提供的API快速开发Android应用,这也是Android的巨大潜力所在。
2.应用程序框架(Application Framework)
Android的应用程序框架层有供Android开发者所调用的丰富API,该层实际上就是一个应用程序的框架。框架中不仅包含各种API,同时还内置了方便开发者开发的各种控件,比如Views(视图组件),其中又包含了List(列表)、Grid(栅格),Button(按钮)TextView(文本框)等等,甚至还内置了一个浏览器。有了这些基本控件,开发人员可以更快速地构建应用程序,提高开发人员的开发效率。
3.各种库(Libraries)和Android 运行环境(Android Runtime)
对应一般的嵌入式操作系统,本层相当于中间件层次。Android中的本层分成两个部分,一个是各种库(Libraries),另一个是Android运行时环境。本层的大多数代码是由C和C++语言实现。Android运行环境指的是Android虚拟机技术Dalvik。
4.操作系统层(OS)最底层
Android基于Linux,使用的是Linux 2.6操作系统作为底层。Android对操作系统的使用包括了核心和驱动程序两个部分,其中驱动程序有:显示驱动、蓝牙驱动、相机驱动、网络驱动和各种传感器设备驱动等等。
1.1.2 Android 历史
自2008年9月发布Android 第一版,时至今日,Android已经发展到了7.0时代。从2009年5月开始,Android版本开始使用甜点作为版本代号:1.5(纸杯蛋糕)、1.6(甜甜圈)、2.0(泡芙)、2.2(冻酸奶)、2.3(姜饼)、3.0/3.2(蜂巢)、4.0(冰激凌三明治)、4.1/4.2(果冻豆)、4.4(奇巧)、5.0(棒棒糖)、6.0(棉花糖)、7.0(牛轧糖),历代发布的时间请参考表1.1:
表1.1 历代Android版本时间表
1.1.3 Android 系统优势
对于想要从事移动开发的同学来讲,一开始都会万分纠结的一个问题就是到底该学习iOS还是Android系统,对于一些初学者来说,这一定是一个单选题。本书主要对Android知识进行讲解,当然要自卖自夸一下。就iOS系统而言学习Android系统可以获得如下便利:
- 更容易上手
对于初学者来说,最缺乏的就是基础知识,最渴望的就是快速上手,最苦恼的莫过于一头雾水。Android系统使用Java语言进行开发,对计算机语言稍有基础的同学对Java语言都不会陌生,Java语言也是常年霸占计算机语言流行榜No.1的位置,国内Java语言学习风气浓厚,随便百度一下即可获得海量Java语言学习资源。同时Java语言也是以其简单、易用而闻名于江湖,所以对于初学者来说,这第一个骨头并不难啃。而iOS系统采用Object-C进行开发(2014年推出了Swift作为新的开发语言),较Java语言来说,其学习难度要大不少,此外志同道合者较少,因此,学习资料也就相对缺乏,一起讨论交流的朋友也比较少。因此,对于上手难易程度来说,Android确实优于iOS系统。
- 更宽广的就业方向
即使不了解开发的朋友都会知道,iOS是闭源的系统,开发者除了能开发iOS应用来说什么也做不了,而Android是开放的系统,源代码公开,从上层的应用开发、到FrameWork层再到底层驱动都可以进行研究和学习,任何一个环节一个模块都可以作为今后从业的方向。此外,学习好Android的开发语言Java,就算以后不从事移动端开发,还可以转向Web开发等,而学习iOS开发语言就只能从事iOS相关开发了。因此学习Android开发你将拥有更宽广的就业渠道,更丰富的研究方向。
- 更多的学习资源
在百度搜索中输入“Android 学习资料”关键字并搜索,你可以获得8640000个相关结果,而输入“iOS 学习资料”,仅获得两百多万个相关结果。对于初学者最好的老师 - “搜索引擎”来说,显然,它知道Android的知识更多一些。此外,根据2016年TIOBE世界编程语言排行榜,Java语言以20.5%占有率的绝对优势占据榜首,而iOS的开发语言Swift和Object-C则排在了14和15位,两者之和还不到3%的占有率。因此,学习Android系统你将拥有更多志同道合的朋友,从他们那里你可以获得更多帮助和指导。最后,由于Android的开放性,较iOS来讲,Android拥有绝对数量优势的优秀开源项目,有一定基础的开发者可以登录github浏览这些项目,提升自己的开发能力。
- 学习成本
学习iOS系统,至少得配备一台Mac作为开发工具,配备一台iPhone作为调试工具,这两种开发工具都价值不菲,对于一穷二白的初学者来说,经济上的拮据是不可避免的问题。对于缺乏定力和恒心而半途而废的初学者来说,损失就更大了。而学习Android系统只需一台Windows电脑就好了(基本每个人都有),对于调试工具可以选择模拟器,也可以花几百块买一台入门级Android手机,所以前期投入几乎为零,不存在任何风险。因此,想学习Android开发马上就可以开始,不需要任何经济上的投入,没有经济压力和风险。
综上,对于踌躇不前、犹豫不决的初学者来说,何不先选择Android系统学习一下呢?因为它简单、易上手且无需任何前期投入。我也相信,鉴于Android系统的开放性、流行性,只要尝试你肯定会爱上它,因为作者本人就是这么掉进“陷阱”里来的。
如果你喜欢作者的文章,还可以购买他的书(京东自营):