android 结构简介

来源:互联网 发布:windows管理工具 编辑:程序博客网 时间:2024/05/29 17:30

Android是移动设备的一种软件栈,它包括一系列的操作系统,中间件和主要的应用。Android SDK 提供了在Android平台上使用Java程序设计语言来开发应用程序的工具和API。
特点
••应用程序框架(Application framework)能够重用和替换组件
•Dalvik虚拟机(Dalvik virtual machine)为手机设备提供优化
•集成浏览器(Integrated browser)以开源WebKit引擎为基础
•最佳优化的图形(Optimized graphics)由一个定制的2D图形库驱动;以OpenGL ES1.0规格的3D制图法(可选的硬件加速)
•SQLite 为结构化数据存储的轻量级别数据库
•媒体支持(Media support)通用的音频,视频,还有静态影像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
•GSM Telephony(从属硬件)
•相机,GPS,罗盘,和加速计(从属硬件)
•丰富的开发环境 包括设备仿真器,调试工具,存储器工具,性能调试工具,一个用于Eclipse IDE的插件

 

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

Applications(应用程序)
Android搭载了一系列的核心应用程序,其中包括email 客户端,SMS程序,日历,地图,浏览器,联系人等等其他。所有的应用程序使用Java程序语言编写。
Application Framework(应用程序框架)
在核心应用程序中使用的框架APIs,开发者也完全拥有其访问权限。应用程序架构被设计为简单的组件复用;任何一款应用程序都可以发布它的性能,并且其他的应用程序可以使用这些性能(受到框架安全的限制)。相同的机制允许了用户可以将组件进行替换。

所有的应用程序底层是一套服务和系统进程,包括:
•一套丰富的并且可扩展的视图,可以用来构建应用程序,包括列表,网格,文本框,按钮甚至可嵌入的web浏览器
•内容提供器,可以使应用程序访问其他应用程序(比如联系人)的数据,或者共享它们自己的数据
•资源管理器,提供非代码资源诸如本地字符串,图形,布局文件
•通知管理器,能够使所有应用程序在状态栏显示定制的通知
•活动管理器,管理应用程序的生命周期并且提供一个通用的导航回退功能。
更多的细节和应用程序的预览,请查阅Notpad Tutorial。

Libraries(类库)
Android 包括一套Android系统使用的各种各样组件的c/c++类库。这些功能通过Android应用程序架构展现给开发者。部分核心类库如下:
•System C library:一个BSD实施的标准类库,被修改为嵌入式Linux设备使用
•Media Libraries:以视频软件的开放式内核为基础;类库支持回放和录制多种流行音频和视频格式,并且还支持静态图片文件,包括MPEG4, H.264, MP3, AAC, AMR, JPG, 和 PNG
•Suiface manager:管理访问显示子系统和无缝衔接复杂应用程的2D和3D图形层
•LibWebCore:一个现代的网络浏览器引擎,同时支持Android浏览器和嵌入式的网络控件
•SGL:底层2D图形引擎
•3D libraries:以OpenGL ES 1.0 APIs为基础的接口;这些类库用来硬件3D加速,最佳化的3D软件xx?
•FreeType:位图和矢量字体渲染
•SQLite:功能强大轻量级相关数据引擎,可以被所有应用程序使用。
Android Runtime
Android包含一套核心库,它用来给Java程序设计语言的核心库提供大部分的功能实现
每一个Android应用程序在它自己的线程中运行,还有他们在Dalvik虚拟机中的实例。Dalvik已经设计成的使设备运行复杂虚拟机更有效率。Dalvik虚拟机执行.dex格式的文件,这个文件可以更大程度的优化内存使用。虚拟机是一个基于寄存器的,运行着已经被dx工具格式化为.dex格式的并且被Java编译工具编译过的类文件的虚拟机。
Dalvik虚拟机依赖于Linux内核,用于类似线程,低级内存管理这些底层管理。

Linux Kernel
Android依赖于Linux2.6版本内核,用于核心系统服务,比如安全,内存管理,进程管理,网络堆栈,驱动模型。内核同时扮演着一个硬件和软件之间的中间层角色。

原创粉丝点击