Android嵌入式应用开发
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.3 Android系统特点

Android之所以能够迅速地获得显著的成功,这与它的一些优良特性是分不开的,在系统及核心应用的层面上,Android具有如下一些特性。

(1)灵活的应用程序框架

Android所提供的应用程序框架十分灵活,使得各个应用程序的组件能够被方便地重用,应用程序的各个组件也都是可以替换的。

(2)专为移动设备优化设计的Dalvik虚拟机

Dalvik虚拟机是用于运行Android程序的虚拟机,是Android中Java程序的运行基础。其指令集基于寄存器架构,执行其特有的文件格式——dex字节码来完成对象生命周期管理、堆栈管理、线程管理、安全异常管理、垃圾回收等重要功能。它的核心内容是实现库(libdvm.so),架构由C语言实现。依赖于Linux内核的一部分功能——线程机制、内存管理机制,Android能够高效地使用内存,并在低速CPU上表现出高性能,每个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。

Dalvik虚拟机具有如下一些特点:在编译时提前优化代码而不是等到运行时;虚拟机很小,使用的空间也小,它被设计成可以满足高效运行多种虚拟机实例的要求;常量池已被修改为只使用32位的索引,以简化解释器。

(3)集成优秀的浏览器

Android集成了基于开源的WebKit引擎的浏览器,支持各种标准的Web技术,如HTML、CSS、JavaScript、PHP、Ruby On Rails和Python等。WebKit内核的浏览器在移动设备上应用非常广泛,除了Andorid,iOS、NOKIA S60以及黑莓的浏览器都是基于WebKit的。

作为浏览器的内核,WebKit作用就是通过输入的一个HTML文档,输出一个Web页面,WebKit由3部分组成,WebCore,JavaScript Core和WebKit。其中,WebCore是WebKit的核心部分,它实现了对文档的模型化,包括CSS、DOM、Render等的实现;JavaScript Core是对JavaScript支持的实现。WebKit的一个优势是开始支持移动设备页面,WebKit通过一些特殊的metatag,由设备的浏览器支持。

(4)优化的图形处理

Android采用了一个定制的二维图形库来进行二维图形处理,同时使用了基于OpenGL ES 1.0规范的三维图像处理。

(5)SQLite数据库

Android使用SQLite数据库来进行结构化的数据存储。

(6)原生支持丰富的媒体格式

Android原生支持了常见的音视频以及图像格式,包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG、GIF。

(7)支持多样的通信方式

Android支持GSM、蓝牙、EDGE、3G和WiFi(依赖于相应的硬件模块)。

(8)支持多种外设

Android支持相机、GPS、指南针、加速计等传感设备(依赖于相应的硬件模块)。

(9)完备的开发环境支持

Android提供的开发套件包括模拟器、调试工具、内存及性能分析工具,以及Eclipse插件,再加上详尽的Android开发文档,使得开发人员能够更加有效率地进行Android开发。

另外,在Android平台这个层面上,它又拥有如下几个特点。

① 稳定性

在Android 1.1版本刚刚推出的时候,由于其存在的稳定性缺陷,使其在初期并没有引起轰动。不过,随着Android快速的更新和完善,这方面的缺陷已经逐渐地被弥补,甚至开始成为Android的一个优势,稳定的系统使得用户体验获得相当大的提升,从而推动了Android的繁荣。

② 开源

Android系统的开源特性使得厂商可以随意打上自己的印记。Symbian系统和Windows Mobile系统使得手机厂商都是以适应操作系统为导向来进行生产的,而Android则彻底解放了手机厂商。这正是Android系统发布后迅速出现HTC Sence、MOTO Blur等众多优秀的自定义UI的原因。这种模式的出现不仅丰富了用户体验,对于手机厂商而言也是宣扬品牌理念的良好平台,实现了用户、厂商双赢的模式。

③ 免费

在Android系统出现之前,智能手机的价格一直居高不下。虽然智能手机在硬件方面确实具有比普通手机更高的要求,但是智能操作系统的授权费用才是其价格高昂的罪魁祸首。而Android开源的特性使得手机厂商可以免费地使用Android平台,这在一定程度上降低了手机厂商的开发成本,使得厂商更愿意将Android平台使用到产品的研发之中。