什么是Android?

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 Architecture


应用程序


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版本, 例如安全性, 内存管理, 进程管理, 网络堆栈, 以及驱动模型. 内核同样在硬件和其余软件栈之间起到一个抽象层的作用.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值