微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 移动操作系统带来差异化设计

移动操作系统带来差异化设计

时间:02-17 来源:互联网 点击:

移动设备市场一直以来都非常火爆,特别是具有苹果的iPhone和Verizon Wireless公司的Droid的智能手机市场。这些平台上的硬件技术令人印象深刻,但事实上,围绕系统的软件和服务基础架构使得这些产品实现了差异化。

大量iPhone应用程序显然说明了一个好的开发平台能使应用程序的普及非常容易。iPhone也许很流行,但它的软件平台是为有限数量的硬件平台设计的,并且全部是苹果公司的平台。Symbian操作系统和框架用于与iPhone相同的领域,但Symbian可以用于更广泛的平台,包括基于ARM的智能手机。Symbian操作系统现在是由Symbian FoundaTIon负责的一个开源项目。

Android与这些操作系统框架非常类似,它的最初应用目标也是智能手机。这也就不奇怪它的赞助商是Open Handset了。Android与众不同的一点是,很多人将它用于智能手机以外的平台。如果开发人员想充分发挥Android的优势,那么他们就需要了解它的工作原理。为了与Android进行比较,先看看能够满足这一领域中硬件要求的另外两种平台。

最流行的平台之一是微软的Windows CE,在智能手机市场被称为Windows Mobile。但它的基本框架架构与微软的台式机和服务器平台上的是一样的,包括最新的台式机版本Windows 7。

另外一个平台是就像Android一样基于Linux的Moblin,它适用于使用Intel Atom处理器的上网本和移动互联网设备(MID)。从这个角度讲,Moblin与苹果和Symbian解决方案非常相似。

所有这些平台都很独特,但它们共享许多类型的公共组件。例如,Android和微软的.NET框架都是基于虚拟机(VM)技术创建的。

Android的优势

“Android在Linux基础上削繁就简,向开发人员提供源自谷歌的易用和著名环境用于图形化用户界面(GUI)创建,使它们专注于针对远不止手机的嵌入式系统开发有竞争力的解决方案。”德州仪器(TI)公司开放平台技术专家Jason Kridner表示,“这使得Android成为一种强大的操作系统,能用于基于OMAP3处理器的设计,例如TI的OMAP35x*估模块或非常流行并且拥有众多支持者的BeagleBoard,可以帮助开源创新公司建立具有高性能和低功耗且基于ARM Cortex-A8的小型低成本系统。”

图1:Android应用程序是用Java编写的,运行在Dalvik虚拟机(DVM)上。

基于Linux的Android使用固有设备驱动程序向Android基本框架提供整套服务。固有应用程序可以运行在这个系统上,并且可以访问这些服务,但大多数应用程序将用Java编写,目标是Dalvik VM(图1)。这些应用程序还能充分发挥应用程序框架的优势,提供Verizon Wireless Droid用户熟悉的用户界面。Droid就是一款Android智能手机 (图2)。

图2:Verizon Wireless的Droid手机采用Android 2.0,有许多亮点。

Dalvik VM(DVM)运行Dalvik可执行(.dex)文件。这些编译过的Java应用程序类似Sun Java虚拟机(JVM)使用的类文件。从概念上讲,DVM和JVM的应用层几乎没有区别。但从架构上讲,基于寄存器的DVM和基于堆栈的JVM有很大的差异。

DVM和JVM都使用VM代码模型。然而,DVM使用基于寄存器的操作码,相当于大多数目标平台已经执行的基于寄存器的字节码指令。DVM包括了许多架构,如ARM和MIPS架构以及英特尔(Intel)、AMD和威盛的x86兼容架构。

谷歌开发Android和选用DVM的原因有几个,首先大多数JVM具有许可问题;其次DVM在内存使用和执行基于寄存器的机器方面更加高效,而且在执行多个DVM实例时也被认为更加高效。应用程序有自己的实例,因此多个有效应用程序要求多个DVM实例。与大多数Java实现一样,DVM有一个自动垃圾收集器。

有趣的是要看到这些优势在长期运行时是否能保持,特别是随着目标上的内存容量和处理器性能的不断提高。在这个方面,DVM不支持及时(just-in-time)编译。另一方面,dex文件在加载进系统时可以针对硬件进行优化。

如上所述,Android针对自己提供的服务有自己的Java类,这些类与Sun公司的Java SE或Java ME提供的类服务类型相当,但不完全一致。Android不支持Sun风格平台常用的图形化AWT和Swing库。相反,Android有它自己的用户界面类,包括对OpenGL的支持。类的基集可以在包括像蓝牙和电话这种接口的智能手机平台上找到,但在其它嵌入式Android平台上可能不作要求。

Android软件开发套件(SDK)可以从Android网站上免费下载,并且可以和许多开发工具一起使用。Android开发工具(ADT)Eclipse插件允许开发人员使用开源Eclipse平台开发Android应用程序,包括基于Eclipse的大量第三方工具集,如Mentor Graphics的ESD。

Mentor Graphics还提供Android支持服务。这也带

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top