第一章 开启启程——你的第一行Android代码
欢迎你来到Android世界!Android系统是目前世界上市场占有率最高的移动操作系统,Android手机无处不在。今天的Android世界可谓是欣欣向荣,可是你知道它的过去是什么样的吗?一起来了解一下他的发展史。
2003年10月,Andy Rubin等人一起创办了Android公司。2005年8月谷歌收购了这家仅仅成立了22个月的公司,并让Andy Rubin继续负责Android项目。在经过了数年的研发之后,谷歌终于在2008年推出了Android系统的第一个版本。但最那之后,Android的发展就一直受到重重阻挠。乔布斯自始至终认为Android是一个抄袭iPhone的产品,里面剽窃了诸多iPhone的创意,并声称一定要毁掉Android。而本身就是基于Linux开发的Android操作系统,在2010年被Linux团队从Linux内核主线中除名。又由于Android中的应用程序都是使用Java开发的,甲骨文则针对Android侵犯Java知识产权一事对谷歌提起了诉讼……
可是,似乎再多的困难也阻挡不了Android快速前进的步伐。由于谷歌的开发政策,任何手机厂商和个人都能免费获取到Android操作系统的源码,并且可以自由地使用和定制。三星、HTC、摩托罗拉、索爱等公司都推出了各自系列的Android手机。仅仅推出两年后,Android就超过了已经霸占市场逾十年的诺基亚Symbian,成为了全球第一大智能手机操作系统。
目前Android已经占据了全球智能手机操作系统70%以上的份额。说了这些,想必你已经体会到Android系统炙手可热的程度,并且迫不及待地想要加入到Android开发者的行列当中了吧。试想一下,十个人中有七个人的手机都可以运行你编写的应用程序,还有什么能比这个更诱人的呢?
好了,现在我们就来一起窥探一下Android世界吧。
1.1了解全貌——Android王国简介
1.1.1 Android系统架构
为了让你能够更好地理解Android系统是怎么工作的,我们先来看一下它的系统架构。Android大致可以分为四层架构:Linux内核层、系统运行库层、应用框架层和应用层。
1.Linux内核层
Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。
2.系统运行库层
这一层通过一些C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持,Webkit库提供了浏览器内核的支持等。
同样在这一层还有Android运行时库,它主要提供了一些核心库,能够允许开发者使用Java语言来编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机(5.0系统之后改为ART运行环境),它使得每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik虚拟机实例。相较于Java虚拟机,Dalvik是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况做了优化处理。
3.应用框架层
这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序。
4.应用层
所有安装在手机上的应用程序都是属于这一层的,比如系统自带的联系人、短信等程序,或者是你从Google Play上下载的小游戏,当然还包括你自己开发的程序。
1.1.3 Android应用开发特色
预告一下,你马上就要开始真正的Android开发旅程了。不过先别急,在开始之前我们再来一起看一看,Android系统到底提供了哪些东西,可供我们开发出优秀的应用程序。
1.四大组件
Android系统四大组件分别是活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。其中活动是所有Android应用程序的门面,凡是在应用中你看得到的东西,都是放在活动中的。而服务就比较低调了,你无法看到它,但它会一直在后台默默地运行,即使用户退出了应用,服务仍然是可以继续运行的。广播接收器允许你的应用接收来自各处的广播消息,比如电话、短信等,当然你的应用同样也可以向外发出广播消息。内容提供器则为应用程序之间共享数据提供了可能,比如你想要读取系统电话簿中的联系人,就需要通过内容提供器来实现。
2.丰富的系统控件
Android系统为开发者提供了丰富的系统控件,使得我们可以很轻松地编写出漂亮的界面。当然如果你品味比较高,不满足于系统自带的控件效果,也完全可以定制属于自己的控件。
3.SQLite数据库
Android系统还自带了这种轻量级、运算速度极快的嵌入式关系型数据库。它不仅支持标准的SQL语法,还可以通过Android封装好的API进行操作,让存储和读取数据变得非常方便。
4.强大的多媒体
Android系统还提供了丰富的多媒体服务,如音乐、视频、录音、拍照、闹钟,等等,这一切你都可以在程序中通过代码进行控制,让你的应用变得更加丰富多彩。
5.地理位置定位
移动设备和PC相比起来,地理位置定位功能应该可以算是很大的一个亮点。现在的Android手机都内置有GPS,走到哪儿都可以定位到自己的位置,发挥你的想象就可以做出创意十足的应用,如果再结合功能强大的地图功能,LBS这一领域潜力无限。