什么是 Android?

什么是 Android?

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

组件

  • 应用程序框架 使组件可以重用/替换
  • Dalvik 虚拟机 专门为移动设备优化
  • 集成浏览器 基于开源WebKit引擎
  • 优化的图形组件 包含一个2D的图形库、 一个基于 OpenGL ES 1.0规范的3D图形库 (硬件加速可选)
  • SQLite 用于结构化数据存储
  • 多媒体支持 支持通用的视频、音频格式,以及各种图像格式 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • GSM 技术 (依赖于硬件)
  • 蓝牙, EDGE, 3G, 以及WiFi (依赖于硬件)
  • 照相, GPS, 指南针, 以及accelerometer (依赖于硬件)
  • 丰富的开发环境 包括设备模拟器, 调试工具, 内存和性能分析工具, 以及Eclipse IDE插件

Android 体系结构

下图展示了Android操作系统的主要组件. 下文有对每个部分的详细介绍.

应用程序

Android 随机附带一批核心应用,包括邮件客户端, SMS应用, 日历, 地图, 浏览器, 联系人,以及其它应用. 所有的应用都是使用Java编程语言.

应用程序框架

通过提供一个开放的开发平台, Android 使开发者拥有了构建极端丰富和创新的应用程序的能力.开发者可以自由利用设备硬件的优势,访问位置信息, 运行后台服务, 设置警报, 向状态栏添加通知等等.

开发者可以完全访问核心应用所使用的应用程序框架. 应用程序框架简化了组件的重用; 任何应用程序都可以发布自己的组件并且任何其它的应用程序都可以使用这些组件 (受制于框架的安全约束). 同样的机制允许用户组件替换内置组件.

应用的底层依赖于一套服务和子系统,包括:

  • 用于构建应用的一套丰富、可扩展的View, 包括lists, grids, text boxes, buttons, 以及内置浏览器
  • 内容提供器,使应用可以向其它应用提供自己的数据或者访问其它应用提供的数据
  • 资源管理器, 用于访问各种非代码资源,比如 localized strings, graphics, 以及layout files
  • 通知管理器, 使所有的应用都可以在通知栏显示自定义的信息
  • 活动管理器, 管理应用的生命周期并提供一个通用的导航栈

For more details and a walkthrough of an application, see the Notepad Tutorial.

Android 包括一套由各种系统组件使用的C/C++ 库. 这些库的功能通过Android应用程序开发框架暴露给开发者. 下面列出了一些核心库:

  • System C library - a BSD-derived implementation of the standard C system library (libc), 专门为嵌入式Linux设备做了优化
  • Media Libraries - 基于 PacketVideo's OpenCORE;支持很多受欢迎的音视频格式的录制与播放, 也支持各种图片格式, 包括MPEG4, H.264, MP3, AAC, AMR, JPG, 以及PNG
  • Surface Manager - 管理对显示子系统的访问, and seamlessly composites 2D and 3D graphic layers from multiple applications
  • LibWebCore - a modern web browser engine which powers both the Android browser and an embeddable web view
  • SGL - the underlying 2D graphics engine
  • 3D libraries - an implementation based on OpenGL ES 1.0 APIs; the libraries use either hardware 3D acceleration (where available) or the included, highly optimized 3D software rasterizer
  • FreeType - bitmap and vector font rendering
  • SQLite - a powerful and lightweight relational database engine available to all applications

Android 运行时

Android includes a set of core libraries that provides most of the functionality available in the core libraries of the Java programming language.

每个Android应用都运行在自己的进程里, 拥有自己的Dalvik虚拟机实例. 设备可以高效的运行多个Dalvik虚拟机实例. Dalvik虚拟机执行为最小内存占用做了优化的dex格式的文件. The VM is register-based, and runs classes compiled by a Java language compiler that have been transformed into the .dex format by the included "dx" tool.

Dalvik虚拟机的底层功能(如线程、内存管理)依赖于Linux内核.

Linux 内核

Android relies on Linux version 2.6 for core system services such as security, memory management, process management, network stack, and driver model. The kernel also acts as an abstraction layer between the hardware and the rest of the software stack.


原文:http://developer.android.com/guide/basics/what-is-android.html

你可能感兴趣的:(什么是 Android?)