什么是Android?
什么是Android?
Android是一个含有操作系统、中间件和常用应用软件的移动设备的软件堆栈,AndroidSDK(软件开发工具包)提供了必要的工具和API(接口)用于开始在Android平台上使用Java程序设计语言开发应用程序。
特点:
应用程序框架:提供可重用和可替换的组件
Dalvik虚拟机:为移动设备优化的虚拟机s
集成浏览器:基于开源的WebKit引擎
优化的图形系统:其中定义了2D图形库,3D图形基于OpenGL ES 1.0(硬件加速可选)
SQLite:轻量级别的数据库
多媒体支持:支持常见的音频,视频和多种图片格式(如MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
GSM电话:硬件相关
蓝牙,EDGE网络,3G网络和Wi-Fi网络:硬件相关
照相机,GPS导航,指南针和加速计:硬件相关
完备的开发环境:包括模拟器,调试工具,内存管理和性能分析工具以及Eclipse的IDE差件
Android架构:
下图显示了Android操作系统的主要部分,每个部分都在下面进行了详细的描述
(对不起,还不太会使用图片功能,官方文档中有这张图片)
应用程序
Android将要推出一组包含email客户端,SMS程序,日历,地图,浏览器和一些其他程序的核心程序,所有的应用程序都是使用Java程序设计语言编写的。
应用程序框架:
通过提供一个开放的开发平台,Android提供开发人员开发丰富的和创新的应用程序的能力。开发人员可以任意的利用设备的硬件,存储单元信息,管理后台服务,设定闹钟,添加状态栏的通知,还有更多。
开发人员完全使用同样的框架API访问核心应用程序。应用架构目的在于简化组件的重用;任何应用程序都可以发布其功能和任何其他的应用程序可以使用这些功能(安全约束执行受限于框架)。这种相同的机制允许组件被用户替换。
潜在的所有的应用程序都是一套服务和系统,包括:
一个丰富的可扩展的试图集合能够被用于创建一个应用程序,包括列表,网格,文本框,按钮,乃至一个可嵌入的浏览器。
允许应用应用到访问其他应用程序数据的内容提供者(比如联系人),或者分享他们自己的数据。
资源管理器,用于访问非编码资源,如本地化的字符串,图像,布局文件。
提醒管理器允许所有的应用程序显示自定义的闹铃提醒在状态条上。
活动管理器管理应用程序的生命周期,并且提供一个通用的导航回退功能。
对于应用程序的更多细节,请看记事本教程。
函数库:
Android包含一套基于Android系统各种各样的组件的C/C++库。这些功能通过Android应用程序框架完全显现在开发者面前。
一些核心的库在下面列出:
系统C库——一个BSD-derived实现标准的C系统库(libc),调整为嵌入式的以Linux为基础的设备。
媒体库——基于PacketVideo的OpenCORE;该库支持重放和多种流行格式的音频已经视频的录制,以及静态图片,包括MPEG4, H.264, MP3, AAC, AMR, JPG, 和 PNG。
外观管理器——管理访问显示子系统和多种程序的无缝隙的2D和3D图像面板的复合体。
LibWebCore——新式的Web浏览器引擎用来支持Android浏览器和可嵌入的Web视图。
SGL——潜在的2D制图引擎。
3D库——基于OpenGL ES 1.0 APIs;该库使用其他硬件3D加速(如果有的话),或者包括的,高度优化的3D软件光栅化。
FreeType——位图和矢量的字体渲染。
SQLite——一个强大的和轻量级的提供给所有的应用程序的关系型数据库引擎。
Android运行环境:
Android包含一组Java程序设计语言的核心库提供大多数可用功能的核心库。
每个Android应用程序运行在自己的进程中,随着它自己的Dalvik虚拟机。Dalvik够有效的运行多个虚拟机。Dalvik虚拟机执行Dalvik可执行的最大优化最小内存占用的文件格式(.dex)。该虚拟机是register-based,运行类所编制的Java语言编译器,已经变成.dex格式由包括“dx”的工具。
Dalvik虚拟机依赖Linux内核的基础功能,如线程处理和低级别内存管理。
Linux内核:
Android依赖于Linux 2.6版为核心的系统服务,如安全性,内存管理,进程管理,协议栈和驱动模型。内核也作为一个在硬件和其它软件堆栈之间的抽象层。
浙公网安备 33010602011771号