Android是什么(What is Android)

Android是什么?

    Android是一个针对于移动设备的软件栈,它包括操作系统,中间件和关键应用。AndroidSDK提供了在Android平台使用Java编程语言进行开发应用程序的必要的工具和API。


特点

    *应用程序框架  使组件可重用并且可替换

    *Dalvik虚拟机  为移动设备优化

    *集成的浏览器  基于开源的WebKit引擎

    *优化的图形处理  以定制的2D图形库和基于OpenGLES 1.0规范的3D图形(可选的硬件加速)为基础

    * SQLite 结构化数据的存储

    *媒体支持  常见的音视频格式,还是图形格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

    *GSM电话  (基于硬件)

    *蓝牙,EDGE,3G和WiFi  (基于硬件)

    *照相机,GPS,指南针,加速感应器  (基于硬件)

    *丰富的开发环境  包括设备模拟器,调试工具,内存和性能分析工具和用于Eclipse IDE的插件

Android构架

    下图显示了Android操作系统的主要组成部分。每个部分进行了更详细说明。

 


应用

 

    Android将配备一系列核心应用程序,包括电子邮件客户端,短信程序,日历,地图,浏览器,通讯录等。所有的应用程序都是使用Java编程语言。


应用框架

    通过提供一个开放的开发平台,Android给予了开发者构建极为丰富和创新类的应用程序的机会。开发这可以自由地利用设备,访问位置信息,运行后台服务,设置闹钟,在状态条里添加通知等等。

    开发人员可以使用和核心应用程序使用的完全相同的API框架。应用程序架构的设计的目的是为了简化组件的重用;任何应用程序都可以发布它的功能,其他的应用程序可能会利用到这些功能(需遵守框架提供的安全约束)。依靠同样的机制,组件可以被用户所取代。


    底层的所有的应用程序是一组服务和子系统,包括:

    *一组丰富并且可扩展的view,这组view可以被用来构建一个应用程序,包括列表,表格,文本框,按钮,甚至可嵌入的Web浏览器

    *一组ContentProvider,可以使应用程序访问其它应用程序的数据(比如通讯录),或者共享自己的数据。

    *一个资源管理器,提供对非代码资源的访问,比如本地化的字符串,图形和布局文件

    *一个通知管理,可以使所有的应用程序在状态栏显示定制的提醒

    *一个Activity管理,它管理的应用程序的生命周期,并且提供了一个通用的后台切换栈

    如需了解一个应用程序的详细信息和具体示例,请参考Notepad代码示例。




    Android包括了一套C/C++库,这套库被Android系统的各个组件使用。这些能力通过Android应用框架展示给应用开发人员。一些核心库的如下:


    *系统C库 - 一个针对于标准C系统库(libc)的BSD派生的实现,针对于嵌入式Linux设备进行了调整

    *媒体库 - 基于PacketVideo的的OpenCore;该库支持回放和录制许多流行的音频和视频格式,以及静态图像文件,包括MPEG4,H.264,MP3,AAC,AMR,JPG和PNG格式

    *Surface管理器 - 管理访问显示子系统和从多个程序中无缝合成二维和三维图形层

    *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虚拟机是基于寄存器的,并运行由dx工具将Java语言编译器编译完的class文件转换为的dex格式文件。

    Dalvik虚拟机的底层功能依赖Linux内核,例如线程和底层的内存管理。


Linux内核

    Android的核心系统服务,比如安全,内存管理,进程管理,网络协议栈和驱动模块都是依赖于Linux 2.6。内核也作为在硬件和软件栈之间的抽象层。

posted @ 2010-12-21 11:19 gansc23 Views(...) Comments(...) Edit 收藏