【译】Android开发指南(1)--什么是Android?
本博文乃原创翻译,欢迎转载,转载时请注明博客作者,谢谢:-)
http://simlelin.iteye.com/admin/blogs/1163816
?
什么是Android?
Android是一个移动设备的软件栈,包含了一个操作系统,中间件和一些关键的应用程序。Android SDK提供了在Android平台上使用Java语言开发应用程序所需要的工具和API。
特性
Android架构
下图展示了Android操作系统的主要组件。每个部分在下面有更详细的描述。
Android系统架构
?
应用程序
Android将随系统提供一系列的核心应用程序包括:email客户端,短消息程序,日历,地图,浏览器,联系人等等。所有的应用程序由Java语言编写。
应用程序框架
通过提供一个开放的开发平台,Android提供给开发者构建极其丰富和新颖的应用程序。开发者可以免费利用设备的硬件来访问位置信息,运行后台服务,设置闹钟和状态栏的提醒,以及更多。
开发者可以全面使用和核心的应用程序完全相同的框架API。应用程序架构被设计成可以简化组件的复用;任何应用程序都可以对外提供它的功能,其它的应用程序就可以去调用这些功能(取决于框架所进行的安全限制)。同样的机制允许组件被用户所替换。
所有应用程序的基础是一系列的服务和系统组件,包括:
更多的细节和演示请阅读Notepad指南
库
Android包含一系列的供Android系统组件使用的C/C++库。这些功能通过Android应用程序开发框架暴露给开发者。一些核心的库列举如下:
Android运行时
Android包括了一系列的提供了最常用的Java语言的核心库。
每一个Android应用程序运行在单独的进程中,拥有它自己的Dalvik虚拟机实例。Dalvik虚拟机被实现成可以让一个设备高效地运行多个虚拟机实例。Dalvik虚拟机能运行的Dalvik可执行文件(.dex)针对小内存设备进行了优化。Dalvik虚拟机基于寄存器,所运行的被Java编译器编译的class文件已经被dx工具转换成了.dex格式。
Dalvik虚拟机依赖于Linux内核,提供系统底层的功能,如并发机制和低级别的内存管理。
Linux内核
Android依赖于Linux的2.6版本的核心系统服务,如安全管理,内存管理,进程管理,网络协议栈和驱动模型。此内核也可看作是硬件和其它软件栈之间的抽象层。
?