Android 技术专题系列之一 -- Android 是什么

Android 是什么?

Android是一个完整的手机软件平台,包含底层的操作系统(Linux), 中间件以及一些关键应用。 Android 还提供了一个SDK 帮助开发者使用Java语言来开发。

特性

  • 应用框架:提供机制使组件(component)能够被复用和替换
  • Dalvik 虚拟机:为移动设备专门进行优化
  • 浏览器:基于Webkit引擎
  • 优化的图形库:基于一个定制的2D图形库; 3D图形库基于OpenGL ES 1.0草案(硬件加速功能可选)
  • SQLite
  • 媒体支持:包括常见的音频,视频和静态图像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM 库(硬件相关)
  • Bluetooth, EDGE, 3G, 和 WIFi (硬件相关)
  • Camera, GPS, compass 和accelerometer (硬件相关)
  • 完善的开发环境, 包括一个模拟器,调试工具,内存和性能分析工具以及Eclipse IDE插件

Android 架构
下图给出了Android平台的主要组成元素(参见http://code.google.com/android/images/system-architecture.jpg)
应用
Android平台预装了一些核心手机应用,包括电子邮件,短信, 日历,地图,浏览器,地址本等等。这些应用都是使用Java语言编写。开发者也需要使用Java语言在Android平台上开发自己的应用程序。
应用框架
核心应用(电子邮件,短信等)所使用的任何API, Android 开发者都可以访问。Android架构设计的一个重要考虑是使组件(component)易于复用:任意一个应用都可以向系统发布功能,而任意一个其他应用都可以调用这些功能(在不违背系统安全策略前提下)。 这个机制还使任意组件(component)都可被开发者替换。

在应用之下是一组服务 (service)和功能库, 包括:

  • 一组丰富和易于扩展的View(控件),用于构建应用的图形用户界面,包括list, grid, 文本框, 按钮,甚至一个强大的web浏览器控件
  • Content provider (内容提供者),使一个应用能够访问另外一个应用的数据(如地址本),或者共享自己的数据给其他应用使用。
  • 资源管理器(Resource Manager), 提供接口访问应用的non-code (非代码)资源,如本地化的字符串,图片文件,布局文件等。
  • Notification Manager (通知管理器):所有应用都可以通过Notification Manager在状态栏显示定制化的Alert (通知)或状态信息
  • Activity Manager: 管理应用的生命周期以及activity 窗口的后退机制。


Android平台包含一套C/C++库, 供上层的组件使用。开发者不能直接访问这些库,但是可以通过Android应用框架来访问。下面列出了一些核心库:

  • 系统C语言库 - 标准C系统库(libc)的一个BSD-派生实现,并为嵌入式设备进行了优化
  • 媒体库 - 急于PacketVideo的OpenCORE。这个库支持许多音�频格式以及静态图像的播放和录音/像, 如MPEG4, H。264, MP3,AAC,AMR, JPG和PNG。
  • Surface Manager - 管理对显示子系统的访问,并无缝的合成多个应用的2D和3D图层
  • LibWebCore - 先进的web浏览器引擎。 Android浏览器应用以及web view (控件,可嵌入其他应用)都是基于这个库。
  • SGL - 底层的2D图形引擎
  • 3D 库 - 基于OpenGL ES 1.0 API的一个实现库。如果硬件提供3D加速功能,这个库会利用硬件这个功能,否则使用一个优化的3D软件库
  • Freetype - 位图和矢量字体引擎
  • SQLite - 轻量级的关系数据库引擎。

Android runtime
Android 包含一套核心库,提供了Java核心库的大多数功能。
每个Android应用运行在自己的进程空间中, 运行在一个单独的Dalvik 虚拟机实例上。Dalvik的设计能够保证同一个设备上有效的运行多个虚拟机(实例)。Dalvik上运行的可执行文件格式是Dalvik Executable (.dex)。这个格式文件占用较小内存。VM是Register-based (?),运行的类由一个Java 编译器编译生成,然后由"dx"工具转化成.dex格式。
Dalvik虚拟机依赖Linux kernel 提供提供一些基础功能,如线程,初级内存管理等。
Linux Kernel
Android依赖Linux 内核2.6提供的一些核心功能,如安全机制,内存管理,进程管理,网络协议栈和驱动模型等。内核还为硬件提供一个抽象层。

更多相关文章

  1. Android中通过NTP服务器获取时间功能源码分析
  2. Android多分辨率适配框架(1)— 核心基础
  3. Android记事本NotePad应用功能拓展(四)
  4. Android 核心分析 之八------Android 启动过程详解
  5. 让star也具有CheckBox 功能
  6. 浅谈 下载实例 核心架构设计
  7. 浅谈 基础回顾 核心架构设计
  8. 基于Cookie使用过滤器实现客户访问登录功能的详解

随机推荐

  1. 实时监听Android系统的网络连接状态
  2. Android(安卓)app 适配
  3. android 应用程序的内存分析
  4. Google Play services SDK的安装
  5. Android之BroadcastReceiver(三):发送自定义
  6. Android(安卓)AppWidget核心之AppWidgetS
  7. Android架构组件(3)LiveData框架
  8. EventBus源码解析-总结篇
  9. Ubuntu14.04交叉编译i2c-tools
  10. Android(安卓)SurfaceView 图像拉伸