您的位置:首页 > 移动开发 > Android开发

什么是Android?

2009-09-28 00:20 183 查看
Android对于移动设备来说是一个包含了操作系统, 中间件和主要应用程序的软件栈. Android SDK提供了必要的工具和API以在Android平台上使用Java程序设计语言开始开发应用程序.

特色

应用程序框架
允许对组件的重用和替换

为移动设备优化了的Dalvik虚拟机

基于开源WebKit引擎的综合浏览器

由自定义2D图形库支持的优化的图形
; 3D图形基于OpenGL ES 1.0规范(硬件加速可选)

SQLite
作为结构化数据存储

媒体支持
常见的音频, 视频, 和静态图像格式(MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)

GSM通讯
(依赖于硬件)

蓝牙, EDGE, 3G, 和WiFi
(依赖于硬件)

照相机, GPS, 指南针, 和加速计
(依赖于硬件)

丰富的开发环境
包含一个设备模拟器, 调试工具, 内存和性能分析, 以及一个Eclipse集成开发环境的插件

Android体系结构

下图展示了Android操作系统的主要组成部分. 每个部分在下面被详细的描述.



应用程序

Android将会预装有一套核心应用程序, 包括一个email客户端, SMS程序, 日历, 地图, 浏览器, 联系人, 等等其它. 所有应用程序都使用Java程序设计语言编写.

应用程序框架

开发者对于核心应用程序使用的相同框架的API具有完全的访问权限. 应用程序架构被设计来简化组件的重用; 任何应用程序都能发布其功能, 然后任何其它应用程序都可以使用那些功能(以框架强迫的安全限制为准). 这个相同的机制允许组件被用户所替换.

所有基础的应用程序都是一套服务和体系, 包括:

一套丰富的, 可扩展的视图(Views), 可被用来构建一个应用程序, 包括列表(lists), 栅格(grids), 文本框(text boxes), 按钮(buttons), 以及内嵌网络浏览器

内容提供程序(Content Providers)使得应用程序能够从其它应用程序访问数据(例如联系人), 或共享它们自己的数据

资源管理器(Resource Manager), 提供对非代码资源的访问, 例如本地化字符串, 图形, 以及布局文件

通知管理器(Notification Manager)使得所有应用程序能够在状态栏显示自定义的警报

活动管理器(Activity Manager)管理应用程序的生命周期并提供一个公共导航回退栈(backstack)



Android包含了一套被Android系统各种各样组件所使用的C/C++库. 这些功能通过Android应用程序框架展现给开发者. 一些核心库列举如下:

系统C库
- 一个BSD驱动的标准C系统库(libc)的实现, 基于嵌入式Linux的设备所调整

媒体库
- 基于PacketVideo的OpenCORE; 这个库除了支持对很多流行的音视频格式的回放和录制之外, 也支持对静态图像文件, 包括MPEG4, H.264, MP3, AAC, AMR, JPG, 以及PNG

表面管理器
- 管理对显示子系统的访问以及从多个应用程序对2D与3D图形层的无缝合成

LibWebCore
- 一个现代的网络浏览器引擎, 使得Android浏览器和可嵌入的网络视图更加强大

SGL
- 基础的2D图形引擎

3D库
- 基于OpenGL ES 1.0 API而实现; 它或使用硬件3D加速(如果可用), 或使用内含的高度优化的3D软件光栅化引擎

FreeType
- 位图和矢量字体渲染

SQLite
- 一个对所有应用程序可用的强大且轻量的关系型数据库引擎

Android运行时

Android包含了一套核心库, 提供了在Java程序设计语言核心库中可用的大部分功能.

每个Android应用程序运行在它自己的进程中, 具有它自己的Dalvik虚拟机实例. Dalvik被编写以便于一个设备可以有效地运行多个虚拟机. Dalvik虚拟机通过为最小内存封装优化的Dalvik可执行文件(.dex)格式来执行文件. 虚拟机是基于寄存器的, 并且运行通过Java语言编译器编译并通过所含"dx"工具转换为.dex格式的类.

Dalvik虚拟机对于基础的功能依赖于Linux内核, 例如线程和低级内存管理.

Linux内核

Android对于核心系统服务基于Linux 2.6版本, 例如安全性, 内存管理, 进程管理, 网络堆栈, 以及驱动模型. 内核同样在硬件和其余软件栈之间起到一个抽象层的作用.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: