Android 是一个包含有操作系统、中间件和关键应用程序的软件集。Android SDK为在Android平台上,用java开发应用程序提供了必要的工具和API接口。

 

Android平台特性:

  1. 应用程序框架:提供可重用和可替代的组件。
  2. Davlik 虚拟机:为移动设备优化的虚拟机。
  3. 内置浏览器:基于WebKit的内置浏览器。
  4. 经过优化的图形处理:支持自定义的2D图形库,基于OpenGL ES 1.0的3D图形库(可硬件加速)
  5. SQLite:用于结构化数据存储的轻量级数据库。
  6. 多媒体支持:支持常用的音频、视频格式和静态图片格式(MPEG3、H.264、MP3、AAC、AMR、JPG、PNG、GIF)
  7. GSM通话:(依赖于硬件)
  8. 蓝牙、EDGE网络、3G和WIFI:(依赖于硬件)
  9. 完备的开发环境:包括模拟器、调试工具、内存和性能分析、Android在Eclipse上的插件ADT。

Android 构架:
    下图显示了Android的主要组件,每层都将在下面进行更详细的描述。

system-architecture

 

Android应用程序:

    Android推出的时候包含了email客户端、SMS应用程序、日历、地图、通讯了等等核心应用程序集。所有的应用程序都是使用Java语言编写的。

 

Android应用程序框架:

    通过提供一个开放的开发平台,开发人员可以构建丰富多彩、富有创意的应用程序。开发者可以自由的使用设备的硬件、访问本地信息、运行后台服务、设置闹钟、在状态栏上增加提示等等。

    开发者可以像Android核心应用程序一样访问Android API. Adnroid应用程序框架的设计方法简化了组件的复用。任何应用程序可以发布它的功能块,并且任何其他应用程序都可以使用这些功能块(必须遵循框架的安全访问限制)。该应用程序重用机制使得组件可以被用户程序替换。

    以下的所有应用程序都由一系列的服务和系统功能组成,包括:

  1. 一个丰富的可扩展的视图(Views),可以用来构建应用程序的界面。包括列表(lists)、网格(grids)、文本框(text boxes)、按钮(buttons),甚至一个可嵌入的Web浏览器。
  2. 内容提供器(Content Providers),提供了数据共享的能力,应用程序访问其他应用程序的数据(例如联系人),或者共享它们自己的数据。
  3. 一个资源管理器类(Resource Manager),提供了访问非代码数据的能力,例如:本地字符长、图片、和布局文件(layout files)
  4. 一个通知管理器(Notification Manager),应用程序可以在状态栏中显示客户通知消息。
  5. 一个活动类管理器(Activity Manager),管理应用程序的生命周期并提供常用的回退切换功能。

Android 程序库:

    Android 包含了一个被Android系统中各个不同组件所使用的C/C++库。这些库经过android应用程序框架的封装之后提供给开发者使用。一下是一些主要的核心库:

  1. 系统C库:一个从BSD继承来的标准系统C库(libc),libc是专门为Embedded linux设备定制的C库。
  2. 媒体库:基于PacketVideo’s的OpenCRE; 这个库支持录放,并且可以录制许多流行的音频视频格式,还有静态图像文件,包含MPEG3、H.264、MP3、AAC、AMR、JPG、PNG。
  3. 显示管理(Surface Manager):对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝连接。
  4. LibWebCore:一个最新的Web浏览器引擎,用来支持Android浏览器和可嵌入的Web视图。
  5. SGL: 内置的2D图形引擎。
  6. 3D图形库(3D libraries):基于OpenGL ES 1.0 APIs实现的3D库;该库可使用3D硬件加速(如果可用)或者包含高度优化的3D软件加速。
  7. FreeType:位图(bitmap)和向量(vector)字体的显示。
  8. SQLite:一个对所有应用程序可用、轻量级关系型数据库。

Android 运行时库:

    Android包含了一个核心库,该库提供了java编程语言核心库的大多数功能。

    每个Android应用程序都运行在它自己的进程中,拥有一个独立的Davlvik虚拟机实例。Dalvik是针对同时高效运行多个VMs实例而设计实现的。Dalvik虚拟机执行Dalvik可执行文件(后缀名为.dex),该格式(Dalvik Executable format)文件针对小内存进行了优化。该虚拟机是针对寄存器的,该虚拟机上运行的类都经过java编译器编译,然后经过android的dx工具转换为.dex格式。

    Dalvik 虚拟机依赖于linux内核的一些功能,例如线程机制和底层内存管理机制。

 

Linux 内核:
    Android 基于 linux2.6 内核,通过 linux内核提供一些核心系统服务,例如:安全性、内存管理、进程管理、网络协议栈、驱动模块等。这个内核也同时作为硬件和软件之间的硬件抽象层。

 posted on 2011-04-22 12:05  Braincol  阅读(782)  评论(0编辑  收藏  举报