Android 是一个为移动设备设计的软件栈,包括操作系统,中间件和关键应用。 Android SDK 提供了使用 Java Andorid 平台上开发应用所需的工具和 API

特性

应用框架 提供了组件的复用和置换

Dalvik 虚拟机 针对移动设备进行了优化

内置浏览器 基于开源的 WebKit webkit.org )引擎

优化图形支持 包括自定义的 2D 图形库; 3D 图形基于 OpenGL ES1.0 标准

SQLite 用于结构话的数据存储

多媒体支持 :支持常用的音频视频和图像格式( MPEG4 H264 MP3 AAC AMR JPG PNG GIF

GSM 技术 :依赖于具体硬件实现

蓝牙, EDGE 3G ,WiFi: 依赖于具体硬件

摄像, GPS ,加速: 依赖于硬件

丰富的开发环境 :包括设备模拟器,调试工具,内存和性能分析,以及 Eclipse IDE 插件

Android 架构

下图显示了 Android OS 的主要组件。下面每段对各个模块进行了详细描述

Android文档(一)——什么是Android?_第1张图片

应用

Android 封装了一组核心应用,包括 Email 客户端, SMS 应用,日历,地图,浏览器,联系人和其他应用。所有的应用都是有 Java 编写。

应用框架

开发者能够访问所有核心应用所使用的框架 API 。应用架构被设计成简洁的组建复用;任何应用发布本身的兼容性,任何其他的应用都可一利用这些兼容性(遵循框架的安全原则)。这种机制使得组建可以被其它用户置换。

应用之下是一系列服务和系统,包括:

1. 丰富的可扩展的视图( View 集合可以被用来构建应用,包括 lists, grids, text boxes,buttons, 以及嵌入式浏览器

2. 内容提供者 (Content Providers) 能够是应用访问来自其他应用的数据,例如联系人( Contacts , 或者与其他应用共享数据

3. 资源管理器( Resource Manager) ,支持访问非代码资源,例如本地字符,图像,布局文件

4. 消息管理器( Notification Manager 使得应用能够在状态栏中显示自定义的警告

5. 活动管理器( Activity Manager) 管理应用的生命周期,提供通用的导航返回栈。

Android 包括了一组被各个组件使用 C/C++ 库。这些兼容性通过 Android 应用框架暴露给开发者。下面列出一些核心库:

1. 系统 C 库( System C library - 一个基于 BSD 实现的标准 C 系统库( libc ),支持嵌入式 linux 的所有设备。

2. 多媒体库( Media Libraries - 基于 PacketVideo OpenCORE ;这个库支持播放和录制多种流行视频和音频格式,包括静态图像格式。

3. 表面管理器( Surface Manager - 管理访问显示子系统与多种应用的 2D 3D 图形层无缝连接。

3.LibWebCore- 一个现代的 web 浏览器引擎,支持 Android 浏览器和嵌入式 Web 视图。

4.SGL- 底层的 2D 图形引擎。

5.3DLibraries - 基于 OpenGL ES1.0 实现的 API ;该库使用 3D 硬件加速(如果硬件支持)或这高度优化的软件渲染。

6.FreeType - 位图和向量字体渲染。

7.SQLite - 一个强大的轻量级关系数据库引擎,可以被所有应用使用

Android 运行时环境

Anroid 包括一系列的核心库,这些库提供了绝大多数 Java 核心库所需的功能。

每个 Android 应用是一个独立运行的进程,在 Dalvik 虚拟机中有独立的例程。 Dalvik 被实现用于在一个设备上有效的运行多个虚拟机。 Dalvik 虚拟机的可执行文件 Dalvik Executeable(.dex) 被优化的占用最小的内存空间。虚拟机以注册为基础, Java 类编译的字节码被 dx 工具优化为 .dex 文件。

Dalvik VM 底层依赖于 Linux 内核, linux 内核为其提供线程和低级内存管理。

Linux 内核

Android 基于 Linux2.6 内核所提供的服务,包括安全,内存管理,进程管理,网络堆栈,以及驱动模型。内核同时扮演了一个介于硬件和其余软件栈之间的一个抽象层。

更多相关文章

  1. Android使用xutils3框架实现应用程序内的检查更新下载服务器存放
  2. android 常用测试框架
  3. Android图形框架简介
  4. Android下Protobuff框架性能测试结果
  5. Google应用在Android上的Push机制以及C2DM框架的底层实现

随机推荐

  1. Mysql数据库值的添加、修改、删除及清空
  2. 新手入门Mysql--概念
  3. MySQL 外键约束和表关系相关总结
  4. MySQL 使用索引扫描进行排序
  5. [置顶] Android上传文件到Web服务器,PHP接
  6. Android关机流程解析
  7. Android(安卓)技巧 - listview 里面的图
  8. Android(安卓)中加入SD card 应用
  9. Android(安卓)去掉标题栏,状态栏,导航栏
  10. android 布局