Android SDK为开发人员使用Java语言编写Android平台下的应用程序提供了必要的工具和API。

Android是由Linux+Java构成的

(1) Linux 内核(LINUX KERNEL)
Linux 内核层是Android 的最底层,由于智能手机和平板电脑的功能及其周边设备
日趋繁杂,因此,需要一个作为这些周边设备载体的操作系统,用来管理这些软硬件装
置,避免这些软硬件因使用不当而产生不可预期的后果。Android 操作系统依赖于Linux
版本2.6 提供的核心系统服务,目前支持2.6 以上的版本。
Android 对操作系统的使用包括核心和驱动程序两部分,基于Linux 2.6 的内核层的
作用之一是提供核心的系统服务,如安全性、进程管理、内存管理、网络协议栈以及驱
动模型。Linux 内核层的另一个作用是为硬件和上层软件提供一个虚拟的中间层[4]。另
外,Android 对操作系统的使用还包括驱动程序,主要驱动有:显示驱动(Display Driver)、
照相机驱动(Camera Driver)、WiFi 驱动(WiFi Driver)、音频驱动(Audio Driver)。

Android运行环境主要是指虚拟机技术——Dalvik。Android包括了一个核心库的集合,该核心库为java编程语言核心库提供了大部分功能。在Android系统中,每个应用程序都是Dalvik虚拟机中的实例,运行在它们自己的进程中,因此,Dalvik虚拟机在设计时就添加了可以在一台设备上高效运行多个虚拟机的特性。

(3) 应用程序框架(APPLICATION FRAMEWORK) Android应用程序框架为应用程序层的开发者提供API,这使得开发者能够编写出极其丰富和新颖的应用程序[13]。由于上层的应用程序是以JAVA构建的,因此,本层首先提供了包含UI程序中所需的各种控件,例如Views(视图组件),其中又包含了Lists(列表)、Grids(网格)、Text Boxes(文本框)、Buttons(按钮)等,甚至一个嵌入式的Web浏览器。

(4) 应用程序层(APPLICATIONS) Android应用程序层主要是用户界面(User Interface)方面的。Android提供了Home(主屏幕)、Contact(联系人)、Phone(电话)、Browser(浏览器)等核心应用,所有的应用程序都是用java语言编写的。同时应用程序的开发者还可以使用应用程序框架层的API来实现自己的程序,这也是Android开源的巨大潜力的体现,更加丰富的应用程序给开发者进一步开发提供了便利的条件[15]。