基于多平台的移动终端网络应用探析
[论文关键词]BREW; J2ME;网络
[论文摘要]本文以BREW和J2ME两种技术为基础,通过互联网上服务器实现不同平台移动终端的数据交互与信息共享。在应用中用户可以持有不同平台的移动终端进入同一个应用空间。用实例对移动终端网络进行了研究。
1.BREW,J2ME技术简介
1.1 BREW简介
BREW是Binary Runtime Environment for Wireless(无线二进制运行环境)的缩写,是美国高通为无线数据应用程序开发和执行提供的通用接口平台,是高通公司提供的全面的、端到端的无线应用开发、设备配置、应用分发、计费和支付的解决方案。
BREW提供了一套应用程序接口(API ),设备制造商和开发入员可 以随时对运行环境进行扩展,提供应用程序需要的各种附加性能模块。BREW商业运行的核心是BREW发布系统。允许运营商自主控制和管理应用程序发布、定价以及他们为用户提供的服务。BREW要求所有的BREW应用都要通过第三方的测试,这样将不会对终端用户造成伤害,还保证了应用的设计功能的实现。
1.2 J2ME简介
Java最初是为了开发嵌入式系统而设计的一种语言。Sun的开发小组在20世纪90年代初期的工作目标,是满足刚刚发展起来的嵌入式计算机市场对软件的需求,但随着因特网提供的更具竞争力的机会,这项工作转移了目标。Sun小组并没有为Java补充额外的API,而是与Java Community Process Program一起,将Java程序设计语言Java虚拟机分开。他们将Java API和JVM缩减到为支持嵌入式系统和微型计算机设备所需的最少的代码。这是必要的,因为有限的资源限制了这些设备的硬件设计。他们努力工作的结果就是J2ME的诞生。J2ME是Java API和VJM虚拟机的一个缩减版本,它设计用来在新型的嵌入式计算机和微型计算机所能提供的有限资源内进行操作。
2、应用系统概况
2.1系统概况
以手机为主的移动终端上的应用随着技术的发展,朝着网络化方向在不断前进。在国内运行的网络有GPRS和CDMA。两大移动运营商里,中国移动的用户群,其手机终端运行于GPRS上,联通用户,其手机终端运行于CDMA之上,现在CDMA网络处于CDMAIX阶段。本应用系统就是建立融合多平台的大型网络应用,通过互联网上服务器实现不同平台移动终端的数据交互与信息共享。在应用中用户可以持有不同平台的移动终端进入同一个应用空间。
2.2功能描述
主菜单:完成游戏各个功能的选择,包括有新游戏的进入,声音开关的设置,为用户提供的帮助等等。
新游戏:游戏的主循环体。
保存进度:在玩游戏的过程中,如果需要保存,则将游戏中的主要信息写入持久存储系统中,具体是写入一个二进制文件中。
载入进度:与保存进度的作用相反,将保存好的二进制文件读出,并将游戏的状态恢复到玩家保存处。
事件的处理:在游戏的过程中,应用系统要接受来自用户的按键事件,外界的来电中断和短消息信息等等。对于此类事件,游戏中要进行相应的事件处理。
屏幕的绘制:游戏应用中,画面的处理很关键,屏幕的绘制主要分为背景的绘制和精灵的绘制两种。
游戏的逻辑处理:这是游戏应用的中心,在逻辑处理中,会用到很多入工智能的方法,提高游戏的可玩性。
3,应用实现的关健问题
3 .1原则
应用在手机终端上的游戏与PC游戏的不同主要是由于手机与PC的CPU不同造成的。随着计算机技术的不断发展,PC机的CPU运算速率越来越快,内存容量也不断增大;虽然手机的技术也在不断的发展,大容量内存和较快CPU运算速度的手机不断面市,但是在与PC机进行对比时,我们很容易就发现,手机的CPU运算速率仍然比较慢,内存容量仍然比较小。因此,在设计游戏的时候,不能像PC游戏那样使用大量的资源,也就是说,游戏的资源要尽可能小。
其次,手机作为手持设备,其屏幕相对PC机比较小,尽管目前技术的发展使手机分辨率不断提高,但是屏幕仍然较小,另外,不同的手机的屏幕的大小也不尽相同,因此,游戏在设计时更加考虑到屏幕大小的问题,而对于PC游戏这方面考虑的则少得多。同时手机的输入设备相对单一,又由于手机作为手持移动设备来讲,不可能做得很大,事实上,手机也有向更小型化和超薄化发展的趋势,因此,对于手机游戏来讲,不可能与具有鼠标、键盘的PC机上的游戏相比,PC游戏往往操作比较复杂,而手机游戏要力求输入方便,用较少的键控便能操作。
由于手机开发平台中可以利用的资源远远小于PC游戏,因此在表现力上就较PC游戏差很多,这也决定了PC游戏的规模要远远大于BREW游戏,同时,PC游戏的情节上较手机游戏也更加复杂。由于手机是集合通信、信息管理、娱乐等为一体的设备,对于手机来讲,通信还是手机的主要功能。因此,这也决定了它比PC游戏要有中断性,要随时能够中断,在中断结束后应用程序也要能够及时的恢复。
3.2存储功能
游戏应用应该都具有能保存进度的功能。用户可采用间断性的方式,在玩到一定阶段时,把当前进度保存起来,等需要重新来过的时候读取即可。这里保存的数据,在用户退出游戏后,或者关机后,数据都不能丢失。无线设备通常情况下有两种类型的内存:用于正在运行着的应用程序的内存和用于持久存储的内存。后者存储的数据比前者时间长。对于游戏存储功能的实现就是要将数据存储到持久存储的内存当中。
BREW中提供了文件和数据库两种不同的方式进行数据的持久存储。J2ME提供的是一个类似于数据库的系统,并不是简单的文件系统,称为记录管理系统(RMS) 。
3.3程序运行速度
实际上,用户并不在意程序有多快,而更在意程序感觉起来有多快。有很多方法可以让程序感觉起来更快,虽然其中的一些方法使实际速度有所下降。但是仍旧需要使程序事实上更快,这样才能做到感觉起来快。
(1)使用更快的算法,找到程序的运行瓶颈,换用更有效和更快的算法,是提高程序速度的关键。
(2)将函数调用改为内联展开。
(3)尽量绘制大块图片,而不要使用小块图片。
(4 )J2ME由于支持多线程,还可以用一种叫做延迟掩盖的技术。所谓延迟掩盖技术,就是把程序实际上的延迟作了掩饰,而使用户实际上感觉不到程序延迟。
3.4网络性能
鉴于当前的移动的网络速度较慢,而且延时较大。这样对于程序中的网络连接部分来说需要做出最大限度约束和优化,才能够满足当前网络苛刻的要求。避免低效协议,对于网络程序来说,任何现有的协议都是对于扩展性和安全性作了全面的处理,这样不可避免的会导致程序的数据流量增加,对于手持设备的网络连接并不使用。这个时候需要用户自定义通信协议,一般自定义协议需要遵循的原则应当是使信息包体积最小、发送和接收数量最少,这样才能够最大限度的减小网络流量和提升网络的响应速度。