Android本意为机器人,是基于Linux的操作系统,更直观的说,Android更像是一款环境为java的Linux操作系统。对于开发者来说,Android所指的更多是Android平台所提供的技术框架和安装包(SDK)。Android平台的功能非常丰富,大致有如下几类:

1)提供应用程序框架(framework),开发者可以根据框架搭建自己的应用程序;

2)Android平台定制的Dalvik虚拟机;

3)集成了基于Webkit开源项目的浏览器;

4)2D和3D图形引擎;

5)提供了SQLite数据库用于结构化数据存储;

6)提供对音频、视频和图片等媒体的支持;

7)提供GSM电话控制;

8)支持蓝牙、EDGE、3G和Wi-Fi;

9)支持加速计、罗盘和GPS等设备。

Android平台是基于Linux2.6内核进行改造的,Linux内核包括系统调用接口、进程管理、内存管理、虚拟文件系统、网络协议栈、设备驱动程序和框架等。因此,Android内核也包括这些。Android平台架构图中,按依赖关系层次,依次为Linux内核、支持库、Android运行时、应用程序框架和应用程序。作为开发者。我们关注的重点在应用程序框架层和应用程序层。开发者可以完全使用与那些内核应用程序相同的框架,这些框架用于简化和重用应用程序的组件。通过应用程序框架,用户可以自定义自己的应用程序,并能执行框架的预设功能。

Android的核心在它的运行时环境,包括一套核心库和Dalvik虚拟机,核心库提供了Java开发库的大多数功能。Dalvik虚拟机用于执行Android应用程序,每一个Android应用程序都在他自己的进程中运行,每一个进程都拥有一个独立的Dalvik虚拟机实例,Dalvik虚拟机与java虚拟机的最大不同在于,Dalvik虚拟机基于寄存器,Java虚拟机基于栈,所以性能较Java有较大的提升。Android程序中的Java文件都要先经过Java编译器编译成类文件,然后通过SDK中的dex文件转换工具转换成dex格式的字节码文件,再由Dalvik虚拟机加载执行。