扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在开发移动应用软件时,选择哪种技术构架进行开发是非常关键的,有时甚至能达到事半功倍的效果。目前市场上占主导地位的移动开发技术构架不外乎Microsoft的.NET和SUN的 J2ME两种。
.Net战略和.Net Compact Framework
2003年8月,微软的.net(下一代互联网软件和服务)战略计划又走出了重要的一步:即发布了Visual Studio.net 2003开发平台(包括C#、VC++.net、VB.net、ASP.net、VBScript.net、JScript.net等)。微软.net计划的体系结构其实是一个可以作为平台支持下一代Internet的可编程结构。作为一个理想化的未来互联网环境,.net不再关注单个网站、单个设备与因特网相连的网络环境,而是要让所有的计算机群、相关设备和服务商协同工作在一个大的网络计算环境里。. net的最终目的,是要让用户在任何地方、任何时间利用任何设备都能访问他们所需要的信息、文件和程序。用户不必关心这些东西存在什么地方、如何获取,他们只需发出请求,即可得到结果,所有后台的复杂性是完全屏蔽起来的。
.Net Compact Framework,顾名思义,即精简版的.Net 开发框架。他和Smart Device Extensions (SDE) for Visual Studio .NET 一起,将更强的开发能力和强大的编程平台带到了手持设备的开发工作中。.NET Compact Framework 是一个硬件无关的运行环境,他主要用在手持设备上,包括:个人数据助理(PDAs) ,移动电话,机顶盒和各种运行Window CE .NET操作系统的嵌入式设备。需要注意的是目前使用.NET技术作出的程序只能在Windows系列平台上使用,但是现在Ximian公司(Linux上著名的XWindow系统GNOME的制造商)正在推行一个在Linux平台上支持.NET 的项目MONO(http://www.go-mono.com)相信不久的将来,.NET程序一样可以在非Windows的操作系统上运行。
.NET Compact Framework包括一部分 .NET Framework 类库和部分 .NET Compact Framework 所独有的类库。他继承了所有的.NET 框架结构中的中间语言运行时和受管代码执行。
.NET Compact Framework 提供了下列关键功能:
◆ 程序的硬件与操作系统无关性
◆支持公共的网络协议,无缝连接XML Web services
◆无论开发者的目标应用或组件是提供给大范围的设备还是几个特殊的设备,他都提供一个统一的模型
◆提供了有助于设计和优化有限的系统资源的功能
◆包含最优性能的产生本地代码的运行时编译器
.NET Compact Framework 的平台结构
.NET Compact Framework 的平台结构图
J2ME构架
为了应对移动数据的发展,推进无线电子商务等业务的发展,Java 2 Sun公司引入了用于嵌入式系统的Java,即J2ME(Java 2 Micro Edition)。J2ME作为Java技术在移动设备的版本,它针对屏幕、电能和内存等有限资源都进行了优化和定义,为了解决无线设备多样化的矛盾,Sun依照各种设备的资源特性将J2ME技术架构逐层细分,这使J2ME能够在每一类设备的限制下工作,而同时提供最低限度的Java语言功能性。随着J2ME的应用,它为移动互联引入了一种新的模型,即允许移动设备从互联网上下载各种应用程序,并在设备中创造了可执行环境以便离线运行这些程序。由于定义了可执行程序下载的标准,并在设备上创立了可执行环境和程序开发语言,由此,在移动通信业第一次为软件开发商创造了巨大的商业机会,用户在得到丰富应用体验的同时,也大大提高了运营商的网络流量。
J2ME的出现实际上是Java技术的回归,作为Java 2平台的一部分,J2ME与J2SE、J2EE一道,为无线应用的客户端和服务器端建立了完整的开发、部署环境。由于专门针对多样化的嵌入设备和消费电子设备,J2ME的结构与传统的编程序语言和规范有很大的不同,它是由配置(Configuration)、简档(Profile)和可选包(Optional Package)三要素构成。J2ME技术由一个虚拟机和一组API组成,这组API适合于为消费和嵌入式电子设备提供经过剪裁的运行环境。J2ME主要有两种组件:配置(configuration)和概要(profile)。Configuration的分类是根据计算能力的不同来划分的,同类设备的计算能力相近。Configuration是一个规范,定义了这类设备的共同Java平台,定义与设备无关的Java虚拟机和核心库,是平台相容性的基础。Profile的分类是根据设备功能划分的,同类功能的设备其他各种硬件条件和需求也相近。Profile是一组API,在某一Configuration的基础上扩展了针对设备特定功能的API,使得标准能够完全适应特殊的设备,彻底发挥设备的功能。
J2ME体系的一般结构是:由Configuration定义的Java虚拟机运行于设备的宿主操作系统之上,构成整个平台的基础。Configuration提供了基本的语言特性,Profile提供针对设备的特殊功能API和扩展类库。应用程序的运行环境需要一个Configuration和至少一个Profile,多个Profile可以共存,也可以叠加。
下面用两个具体设备的实现作为例子说明。在一个运行Palm OS的PDA上,Configuration采用CLDC,虚拟机采用KVM(虚拟机和Configuration是紧密相连的,KVM只是CLDC定义的一个参考实现(reference implementation),并不是唯一的选择),然后采用PDA Profile的Profile。在另一个运行Symbian的智能手机上,则可以采用KVM,CLDC,MIDP。
SUN J2EE的一个关键优点是它能同时为多种连网的便携机、台式机或其他工作站和服务器提供服务,无论运行在这些客户机上的软件是Java applets 、独立的Java程序、HTML浏览器还是本地的应用程序,它都可以同时支持。利用J2ME,这些J2EE构架的企业系统也可以直接与各种移动手持设备进行通信。
小结
总的来说,Windows .Net Compact Framework和J2me作为两大体系的嵌入式构架部分,都有一个受控的运行时环境,它不但将源代码转换成中间语言,而且将这些中间语言编译成本地的可执行代码。两个环境都支持碎片整理、动态类加载和异常处理等。Windows .Net Compact Framework和J2me都倡导和支持基于组件的设计、多态性、继承和接口等,也提供基础类库来执行I/O、XML处理、带有连接池的数据库接入、文本操作与网页脚本编写等。
但是,两者的侧重点又是不同的。JAVA是一个单一语言的平台,关注跨平台的可移植性。这就意味着,利用了J2ME设计框架就能在多个操作系统中使用同一个JAVA程序。而Microsoft提供的.Net Compact Framework构架作为Embedded Windows开发工具的一部分。开发者能使用多种语言开发同一个应用,并且效率很高而不用进行一种新语言的重新训练。J2ME目前的标准很多,其中最为开发者熟悉的是CLDC(Connected, Limited Device Configuration,针对个人化的移动的信息设备)和MIDP(Mobile Information Device Profile,针对移动信息处理设备)。而Windows .Net Compact Framework则强调对所有 Pocket PC & Windows CE .NET CPU简单的一次部署。在对嵌入式数据库支持方面,.Net Compact Framework支持嵌入式数据库访问,这主要用于有一定当量的数据查询要求场合。数据库能在移动设备上直接操作,接着再和服务器数据重新同步。而J2ME基本上不在移动设备上直接调用数据库连接处理,最多只是操作文本类型的数据库或者外部调用一个server代理完成。
2003年的移动设备软件开发充分体现了.net战略与Java 2所代表的全然不同的跨平台应用解决方案之间的竞争。这只是刚刚开始,我们期待着这种竞争的局面能够更长久,因为不管结果如何,这个过程本身对未来软件技术的创新和IT产业的推动就有着不可估量的价值,而且更多的人将从中获得启迪。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者