什么是Android?
Android是用于移动设备的软件包,包含操作系统、中间件以及各种关键应用。Android SDK 提供了必要的工具和API,以便开发者在Android平台上使用java语言开发应用程序。特性应用框架 组件重用 Dalvik虚拟机 为移动设备优化 浏览器集成 基于开源 WebKit 引擎 优化的图形功能 可自定义的2D图形库;3D图形基于OpenGL ES 1.0 版 (硬
Android是用于移动设备的软件包,包含操作系统、中间件以及各种关键应用。Android SDK 提供了必要的工具和API,以便开发者在Android平台上使用java语言开发应用程序。
特性
- 应用框架 组件重用
- Dalvik虚拟机 为移动设备优化
- 浏览器集成 基于开源 WebKit 引擎
- 优化的图形功能 可自定义的2D图形库;3D图形基于OpenGL ES 1.0 版 (硬件加速可选)
- SQLite 用于结构化数据存储
- 媒体支持 一般音视频,静态图像格式 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
- GSM (依赖于硬件)
- Bluetooth, EDGE, 3G, and WiFi (依赖于硬件)
- 摄像头, GPS, compass, and accelerometer (依赖于硬件)
- 丰富的开发环境包含设备包含设备模拟器,调试工具,内存和性能检测, Eclipse IDE插件
Android架构
下图显示了Android 操作系统的主要组件,每部分的详细解释在更后面。
Applications应用层
Android同时带着一套包含邮件客户端,短信程序,日历,地图,浏览器,通讯录等应用的软件包一起发布。所有的应用都是java程序开发的。
Application Framework应用框架
开发者可以访问被核心应用使用的全部API接口。应用架构被设计为简单地进行组件重用;任何应用都可以公开它的接口以使别的应用可以直接使用它的某些功能(框架增强了对象之间的安全限制),同样的机制允许用户替换某些组件功能。
下面就是一些可用的组件,包括:
- 一套丰富并可以扩展的视图控件,包括列表、网格、文本框、按钮、甚至嵌入式浏览器等。
- 内容提供器(Content Providers),让应用可以访问别的应用的数据(如联系人),或者把自己的数据共享出来。
- 资源管理器( Resource Manager),提供对一些非代码资源,如本地化的字符串、图形、布局文件等的访问。
- 提示管理器(Notification Manager )让所有应用可以在状态条上显示自定义的告示。
- 活动管理器(Activity Manager)管理应用的生命周期,并且提供一个浏览导航
Libraries库
Android包含一套用于各种组件的 C/C++ 库,这些接口通过Android应用框架提供给开发者,下面列出了一些核心库:
- 系统C库 – 一个继承自 BSD实现的标准C库(libc), 为钱入式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 Runtime运行时
Android包含一套可用于大多数java程序运行的核心库。每个Android应用运行在它自己的进程空间,使用一个它自己的Dalvik虚拟机实例。 Dalvik可以在一个设备上有效运行多个虚拟机,它特意优化成可以在小内存上运行Dalvik格式(.dex)的执行文件。 这个虚拟机是基于寄存器的,可以运行那些已经用“dx”工具转换为.dex格式的Java应用。
Dalvik虚拟机依赖于Linux内核的一些功能,如线程和低级内存管理。
Linux Kernel内核
Android基于Linux 2.6内核,用到的系统服务包括安全、内存管理、进程管理、网络协议栈、设备驱动等。这个内核同时也可以看作是硬件和其他软件之间的一个抽象层。
更多推荐
所有评论(0)