【译】Android开发指南(1)--什么是Android?

本博文乃原创翻译,欢迎转载,转载时请注明博客作者,谢谢:-)

http://simlelin.iteye.com/admin/blogs/1163816

 

什么是Android?
Android是一个移动设备的软件栈,包含了一个操作系统,中间件和一些关键的应用程序。Android SDK提供了在Android平台上使用Java语言开发应用程序所需要的工具和API。

特性

  •     应用程序框架可以支持组件的重用和替换
  •     Dalvik虚拟机针对移动设备进行优化
  •     集成了基于开源引擎WebKit的浏览器
  •     由通用的2D图形库渲染的优化的2D图形绘制;基于OpenGL ES 1.0规范的3D图形绘制(硬件加速可选)
  •     用于结构化数据存储的SQLite
  •     多媒体支持:通用的音频、视频和图形格式(MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF)
  •     GSM通话技术(依赖于硬件)
  •     蓝牙,EDGE,3G和WiFi(依赖于硬件)
  •     照相机,GPS,指南针和加速度传感器(依赖于硬件)
  •     丰富的开发环境,包含设备模拟器,调试工具,内存和性能分析和基于Eclipse的开发环境插件


Android架构
下图展示了Android操作系统的主要组件。每个部分在下面有更详细的描述。


Android系统架构

 

应用程序
Android将随系统提供一系列的核心应用程序包括:email客户端,短消息程序,日历,地图,浏览器,联系人等等。所有的应用程序由Java语言编写。

应用程序框架
通过提供一个开放的开发平台,Android提供给开发者构建极其丰富和新颖的应用程序。开发者可以免费利用设备的硬件来访问位置信息,运行后台服务,设置闹钟和状态栏的提醒,以及更多。

开发者可以全面使用和核心的应用程序完全相同的框架API。应用程序架构被设计成可以简化组件的复用;任何应用程序都可以对外提供它的功能,其它的应用程序就可以去调用这些功能(取决于框架所进行的安全限制)。同样的机制允许组件被用户所替换。

所有应用程序的基础是一系列的服务和系统组件,包括:

  •     丰富和可扩展的一系列视图,以被用来构建一个应用程序,包括列视图,网格视图,文本框,按钮,甚至于一个内嵌的web浏览器
  •     允许应用程序访问来自其它应用程序(例如联系人)的数据或共享它们自己数据的内容提供组件
  •     一个资源管理器,提供对于非代码资源如本地化字符串、图形和布局文件的访问
  •     一个通知管理器,可使所有的应用程序在状态栏理显示自定义的提醒
  •     一个Activity管理器,管理应用程序的生命周期,并提供一个通用的导航返回栈


更多的细节和演示请阅读Notepad指南


Android包含一系列的供Android系统组件使用的C/C++库。这些功能通过Android应用程序开发框架暴露给开发者。一些核心的库列举如下:

  •     系统C程序库 - 一个标准的C系统库(libc)的BSD继承的实现,适合于嵌入式的linux设备
  •     多媒体库 - 基于PacketVideo的OpenCORE;此库支持播放和录音许多流行的音频和视频格式,还有静态图形文件,包括MPEG4,H.264,MP3,AAC,AMR,JPG和PNG
  •     图面管理器 - 管理显示子系统的访问和在多个应用程序中无缝地合成2D和3D图层
  •     LibWebCore - 一个现代的web浏览器引擎,应用在了Android浏览器和嵌入的web视图中
  •     SGL - 2D图形引擎的基础
  •     3D库 - 一个基于OpenGL ES 1.0 API的实现;此库使用了硬件的3D加速(当可用的时候)或者是高度优化的3D的软件渲染
  •     FreeType - 位图和矢量图的字体呈现
  •     SQLite - 一个强大的轻量级的可供所用引用程序使用的关系型数据库引擎


Android运行时
Android包括了一系列的提供了最常用的Java语言的核心库。

每一个Android应用程序运行在单独的进程中,拥有它自己的Dalvik虚拟机实例。Dalvik虚拟机被实现成可以让一个设备高效地运行多个虚拟机实例。Dalvik虚拟机能运行的Dalvik可执行文件(.dex)针对小内存设备进行了优化。Dalvik虚拟机基于寄存器,所运行的被Java编译器编译的class文件已经被dx工具转换成了.dex格式。

Dalvik虚拟机依赖于Linux内核,提供系统底层的功能,如并发机制和低级别的内存管理。

Linux内核
Android依赖于Linux的2.6版本的核心系统服务,如安全管理,内存管理,进程管理,网络协议栈和驱动模型。此内核也可看作是硬件和其它软件栈之间的抽象层。

 

你可能感兴趣的:(android)