您的位置:首页 > 移动开发 > Android开发

Android 是什么

2012-10-10 10:01 309 查看
[align=left]Android是一个完整的手机软件平台,包含底层的操作系统(Linux), 中间件以及一些关键应用。 Android 还提供了一个SDK 帮助开发者使用Java语言来开发。[/align]
[align=left] [/align]
[align=left]特性[/align]
[align=left]l
  应用框架:提供机制使组件(component)能够被复用和替换[/align]
[align=left]l
  Dalvik 虚拟机:为移动设备专门进行优化[/align]
[align=left]l
  浏览器:基于Webkit引擎[/align]
[align=left]l
  优化的图形库:基于一个定制的2D图形库; 3D图形库基于OpenGL ES 1.0草案(硬件加速功能可选)[/align]
[align=left]l
  SQLite[/align]
[align=left]l
  媒体支持:包括常见的音频,视频和静态图像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)[/align]
[align=left]l
  GSM 库(硬件相关)[/align]
[align=left]l
  Bluetooth,EDGE, 3G,和 WIFi (硬件相关)[/align]
[align=left]l
  Camera,GPS, compass 和accelerometer (硬件相关)[/align]
[align=left]l
  完善的开发环境,包括一个模拟器,调试工具,内存和性能分析工具以及Eclipse IDE插件[/align]
[align=left] [/align]
[align=left]Android架构[/align]
[align=left][/align]
[align=left]下图给出了Android平台的主要组成应用[/align]
[align=left]Android平台预装了一些核心手机应用,包括电子邮件,短信,日历,地图,浏览器,地址本等等。这些应用都是使用Java语言编写。开发者也需要使用Java语言在Android平台上开发自己的应用程序。[/align]
[align=left] [/align]
[align=left]应用框架[/align]
[align=left][/align]
[align=left]核心应用(电子邮件,短信等)所使用的任何API, Android 开发者都可以访问。Android架构设计的一个重要考虑是使组件(component)易于复用:任意一个应用都可以向系统发布功能,而任意一个其他应用都可以调用这些功能(在不违背系统安全策略前提下)。这个机制还使任意组件(component)都可被开发者替换。[/align]
[align=left] [/align]
[align=left]在应用之下是一组服务(service)和功能库, 包括:[/align]
[align=left]l
  一组丰富和易于扩展的View(控件),用于构建应用的图形用户界面,包括list, grid, 文本框, 按钮,甚至一个强大的web浏览器控件[/align]
[align=left]l
  Content provider (内容提供者),使一个应用能够访问另外一个应用的数据(如地址本),或者共享自己的数据给其他应用使用。[/align]
[align=left]l
  资源管理器(Resource Manager), 提供接口访问应用的non-code (非代码)资源,如本地化的字符串,图片文件,布局文件等。[/align]
[align=left]l
  Notification Manager (通知管理器):所有应用都可以通过Notification Manager在状态栏显示定制化的Alert (通知)或状态信息[/align]
[align=left]l
  Activity Manager: 管理应用的生命周期以及activity 窗口的后退机制。[/align]
[align=left] [/align]
[align=left][/align]
[align=left][/align]
[align=left]Android平台包含一套C/C++库, 供上层的组件使用。开发者不能直接访问这些库,但是可以通过Android应用框架来访问。下面列出了一些核心库:[/align]
[align=left]l
  系统C语言库- 标准C系统库(libc)的一个BSD-派生实现,并为嵌入式设备进行了优化[/align]
[align=left]l
  媒体库 - 基于PacketVideo的OpenCORE。这个库支持许多音視频格式以及静态图像的播放和录音/像, 如MPEG4, H。264, MP3,AAC,AMR, JPG和PNG。[/align]
[align=left]l
  Surface Manager - 管理对显示子系统的访问,并无缝的合成多个应用的2D和3D图层[/align]
[align=left]l
  LibWebCore - 先进的web浏览器引擎。 Android浏览器应用以及web view (控件,可嵌入其他应用)都是基于这个库。[/align]
[align=left]l
  SGL - 底层的2D图形引擎[/align]
[align=left]l
  3D 库 -基于OpenGL ES 1.0 API的一个实现库。如果硬件提供3D加速功能,这个库会利用硬件这个功能,否则使用一个优化的3D软件库[/align]
[align=left]l
  Freetype - 位图和矢量字体引擎[/align]
[align=left]l
  SQLite - 轻量级的关系数据库引擎。[/align]
[align=left] [/align]
[align=left]Androidruntime[/align]
[align=left][/align]
[align=left]Android 包含一套核心库,提供了Java核心库的大多数功能。[/align]
[align=left]每个Android应用运行在自己的进程空间中, 运行在一个单独的Dalvik 虚拟机实例上。Dalvik的设计能够保证同一个设备上有效的运行多个虚拟机(实例)。Dalvik上运行的可执行文件格式是DalvikExecutable (.dex)。这个格式文件占用较小内存。VM是Register-based (?),运行的类由一个Java 编译器编译生成,然后由"dx"工具转化成.dex格式。[/align]
[align=left]Dalvik虚拟机依赖Linux kernel 提供提供一些基础功能,如线程,初级内存管理等。[/align]
[align=left] [/align]
[align=left]LinuxKernel[/align]
[align=left]Android依赖Linux 内核2.6提供的一些核心功能,如安全机制,内存管理,进程管理,网络协议栈和驱动模型等。内核还为硬件提供一个抽象层。[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: