一、安卓系统架构
Android的系统架构大致可以分为四层:Linux内核层、系统运行库层、应用框架层和应用层
应用层
所有安装在手机上的应用程序都属于这一层
应用框架层
这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序
系统运行库层
这一层通过C/C++库来为Android系统提供了主要的特性支持。如SQLite库提供了数据库的支持,OpenGL|ES库提供了3D绘图的支持,WebKit提供了浏览器内核的支持等
还有Android运行时库,主要提供了一些核心库,能够允许开发者使用Java来编写Android应用
Android运行时库中还包含了Dalvik虚拟机(5.0之后改为ART运行环境),它使得每一个Android应用都能运行在独立的进程中,并且拥有一个自己的Dalvik虚拟机
相比于Java虚拟机,Dalvik是专门为移动设备定制的,针对手机内存,CPU性能的情况都做了优化处理
Linux内核层
Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、蓝牙驱动和电源管理等
网上有一张中文简化图,能比较好的描述这种分层:
二、Android应用开发特色
Android系统提供了哪些东西,可供我们开发出优秀的应用程序
四大组件
Android系统的四大组件分别是:活动(Activity)、服务(Server)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)
活动是所有Android应用程序的门面,凡是在应用中看到的东西,都是放在活动中的。简单来说活动就是一个个界面,点击一个按钮进入到新的界面,这个界面就是一个活动
服务无法直接看到,它一直在后台运行,即使用户退出了应用,服务仍然可以继续运行
广播接收器允许你的应用接收来自各处的广播消息,比如电话、广播等,当然你的应用同样可以向外发出广播消息
内容提供者则为应用程序之间共享数据提供了可能,比如你的应用想读取系统电话簿中的联系人,就需要通过内容提供者来实现
丰富的系统控件
Android系统提供了丰富的系统控件,使得我们可以轻松地编写出漂亮的界面。如果不满足系统自带的控件效果,也可以定制属于自己的控件
SQLite数据库
Android系统还自带了这种轻量级,运算速度极快的嵌入式关系型数据库。SQLite不仅支持标准的SQL语法,还可以通过Android封装好的API进行操作,让存储和读取数据变得更加方便
强大的多媒体
Android系统提供了丰富的多媒体服务,比如音乐、视频、拍照等,这一切都可以在程序中通过代码进行控制,让你的应用变得更加丰富多彩
地理位置定位
移动设备相对于PC,一个很大的亮点就是定位功能。此案在的Android手机都内置有GPS,走到哪都可以定位到自己的位置