分类分类
关注+2010-04-06作者:
什么是Android?
Android 是一个专门针对移动设备定制的软件堆栈,包括一个操作系统,中间件和一些重要的应用程序。本节对 Android SDK 的大致介绍提供了使用 JAVA 编程语言在 Android 平台上开发应用程序的工具链和必要的 API 接口。
Android 特性
·应用程序框架 支持组建的重用与替换
·Dalvik虚拟机 专门为移动设备做了优化
·优化的图形库 包括2D和3D图形库,3D图形库基于OpenGL ES 1.0 (硬件加速可选)
·#SQLite 用作结构化的数据存储
·多媒体支持 包括常见的音频、视频和静态印象文件格式 (如 MPEG4, H.264, mp3, AAC, AMR, JPG, PNG, GIF)
·GSM电话 (依赖于硬件)
·蓝牙Bluetooth, EDGE, 3G, and WIFI (依赖于硬件)
·丰富的开发环境 包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件
Android 架构
下图显示的是Android操作系统的主要组件。每一部分将会在下面具体描述。
Android 应用程序
Android会同一个核心应用程序包一起发布,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA编写的。
Android 应用程序框架
开发者也完全可以访问核心应用程序所使用的API框架。该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组建可以被用户替换。
以下所有的应用程序都由一系列的服务和系统组成,包括:
·一个可扩展的视图(Views )可以用来建应用程序,包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至包括一个可嵌入的web浏览器
·内容管理器(Content Providers )使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。
·一个资源管理器 (Resource Manager)提供非代码资源的访问,如本地字符串,图形,和分层文件( layout files )。
·一个通知管理器 (Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。
·一个活动类管理器 (Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。
有关更多的细节和怎样从头写一个应用程序,请参考 写一个 Android 应用程序 部分。
Android 程序库
Android 包括一个被 Android 系统中各种不同组件所使用的 C/C++ 库集。该库通过 Android 应用程序框架为开发者提供服务。以下是一些主要的核心库:
系统 C 库 - 一个从 BSD 继承来的标准 C 系统函数库( libc ),专门为基于 embedded linux 的设备定制。
媒体库 - 基于 PacketVideo OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。
Surface Manager - 对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。
LibWebCore - 一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。
SGL - 一个内置的2D图形引擎
3D libraries - 基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。
FreeType - 位图(bitmap)和向量(vector)字体显示。
SQLite - 一个对于所有应用程序可用,功能强劲的轻型关系行数据库引擎。
Android 运行库
Android 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。
Linux 内核
Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。 Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。
相关文章
更多+相同厂商
热门推荐
点击查看更多
点击查看更多
点击查看更多
说两句网友评论