android 软件栈如图所示:

  

  Android平台的核心是Linux内核,它负责设备驱动程序、资源访问、电源管理和完成其他操作系统的职责。提供的设备驱动程序包括显示器、照相机,键盘、WiFi、闪存、音频和IPC(Inter:ProcessConmnmication,进程间通信)(IPC binder机制)。尽管核心是Linux,但Android设备(比如Motorola Droid,乐os,cymode)上的绝大部分应用程序都是使用Java开发,通过DalⅥk VM运行的。

  我们看一下另一层,内核之上是许多C/C++库,比如OpenGL、WebKit、FreeType、SSL(Secure SocketsLayer,安全套接字层)、libc (C运行时库),SQLite和媒体。基于BSD (Berkeley Sofiware Distribution,伯克利软件套件)的系统C库针对嵌入式Linux设备进行了调优(大小约为原始大小的一半).媒体库基于PacketVideo(www.packetvideo.com/)的OpenCORE。这些库负责录制和播放音频和视频格式的内容。一个名为Surface ManagertYJ库控制对显示系统的访问,支持2D和3D。在新版本中可能添加更多这样的本地库。

  WebKit库负责浏览器支持.WebKit也是Google公司的Chrome和苹果公司的Safari使用的库。
  FreeType库负责字体支持。SQLite (www.sqlite.org/)是一个可在设备自身上使用的关系数据库。SQLite也是关系数据库的一项独立的开源成果,没有直接绑定到Android。适用于SQLite的工具也可用于Android教据库。
  大多数应用程序框架都通过Dalvik VM访问这些核心库,Dalvik VM就像Android平台的入口。上节已经提到,Dalvik经过了优化,可以运行多个VM实例。访问这些核心库时,每个Java应用程序都会获得自己的VM实例。
  Android Java APl的主要库包括电话、资源,位置、Ul、ContentProvider(数据)和包管理器(安装、安全等)。程序员使用此Java API开发最终用户应用程序。设备上的一些最终用户应用程序示例包括Home、Contacts、Phone、Browser等。
Android还支持Google公司一个名为Skia的自定义2D图形库,这个库是使用C和C++编写的。Skia也是Google Chrome溯览器的核心组件。然而,Android中的3D API基于来自Khronos小组(www.khronos.org)的一个OpenGL ES实现。OpenGL ES包含OpenGL中面向嵌入式系统的子集。
  从媒体角度讲,Android平台支持最常见的音频,视频和图像格式。也是支持多媒体最多的移动平台。从无线角度讲.Android的API可支持蓝牙,EDGE、3G、WiFiaIGSM (Global System for Mobile Communication.全球移动通信系统)、电话而具体则取决于设备硬件。

更多相关文章

  1. AndroidMainfest.xml详解
  2. 第一个android应用程序
  3. Android数据存储---数据备份(Data Backup)(二)
  4. Android(安卓)NDK开发:NDK概览
  5. android:inputType 属性及其支持的取值
  6. Android应用程序的权限列表
  7. android开发学习笔记(1)我的第一个android应用程序
  8. 谷歌Android被Linux内核除名
  9. 第3.1.1节 应用程序的基本结构

随机推荐

  1. Android(安卓)微信分享,分享到朋友圈与分
  2. Android(安卓)Studio菜鸟开发————Tim
  3. Android(安卓)DownloadManager下载文件,实
  4. Android(安卓)UI学习 Linear Layout, Rel
  5. adobe air android INSTALL_FAILED_INVAL
  6. Android(安卓)Nine-patch(.9.png)小结
  7. raspberryPi2 移植Android系统
  8. eclipse 和 android studio 快捷键对比
  9. 利用adb安装和卸载android APK
  10. Android中文API(97)—— ContextMenu