Android是一个移动设备的软件集,他包括一个操作系统、中间件,和重要的应用程序。Android SDK提供了使用Java编程语言在Android平台上开发的必要的工具和APIs。
功能特点:
Android架构:
下面那张图表显示了Android操作系统的主要部件,每一部分将会详细讲解。
应用程序:
Android 将会携带有一些核心的应用,比如邮件客户端、SMS程序、日历、地图、浏览器、联系人等等。所有的应用程序都用Java语言开发。
应用框架:
通过提供一个开源的平台,Android可以让开发者自由的开发丰富、创新的应用程序。开发者可以免费利用设备的硬件,访问本地信息、启动后台服务、设置闹铃、给状态栏增加提醒功能,等等非常多的应用。
开发人员通过核心应用程序,可以完全访问同一框架的APIs。应用框架是设计用来提高组件的可重用。任何程序都可以公布他的功能让其他程序来调用(在框架许可的前提下)。相同的机制允许用户替换掉某些功能。
和所有程序相关的是一些服务和系统,包括:
Libraries:
通过提供一个开发的平台,Android包含了一些系统各个部分使用到的C/C++库,通过Android应用程序程序框架,这些功能对于开发者来说是公开的,部分核心库如下:
Android 运行时库:
Android包含了Java语言的大部分的核心库。
每一个Android应用程序运行在自己的线程里,有自己的dalvik虚拟机实例,Dalvik虚拟机被用来支持在一个移动设备上支持多个虚拟机。Dalvik虚拟机执行文件(.dex)被优化的内存占用(memory footprint)很小。VM是基于寄存器( register-based),并且通过Java语言编译器运行由class文件转换的.dex文件,通过内置的dx工具。
Dalvik虚拟机依赖Linux核心,来管理线程和底层的内存管理。
Linux kernel:
Android 依赖Linux2.6内核作为核心系统服务,像安全、内存管理、进程管理、网络堆(network stack)、驱动模型(driver model)。Kernel扮演者一个软硬件之间的抽象层的角色。
建议初学者结合中文翻译看英文原版,我们以后还是逃避不了要读英文原著,现在我也硬着头皮把原版的看一遍,Bless