摘 要:通过对基于JAVA的手持终端软件开发平台和J2ME应用程序设计方法的阐述,实现了基于J2ME的移动视频手持终端软件设计,主要包括移动视频信号的正常回放及放大回放、目标捕获和跟踪效果等功能,并给出效果演示图
关键词:智能移动;视频监控;手持终端;J2ME
中图分类号:TP311 文献标识码:A 文章编号:
1.基于JAVA的手持终端软件开发平台
从贝尔发明电话以来,电话通讯服务经过长期的发展,现已成为人们在社会生活中交流信息的重要工具之一。近年来,电话无论在技术层面,还是在业务方面都发生了相当大的变化,尤其值得一提的是其工作方式已由原来的固定方式转为现在的移动方式,而且移动通信(手持终端)正朝着智能化方向发展。
目前大多手持终端都是智能机,其智能化主要体现在其具有专门的手持终端操作系统,除此而外,JAVA语言的出现也为手持终端增添了更多的智能性。由Sun公司开发的新一代编程语言JAVA的最大特点是使用其开发的软件能够在不同设备、不同平台上运行。
基于JAVA的手持终端软件开发平台基础是采用J2ME中的CLDC和MIDP。J2ME通常被称为无线JAVA技术,在设计J2ME的规格时,一般大体上将嵌入式装置分为两种:其一是运算功能相对较弱、电力供应相对有限的装置;另外一种是运算能力相对较强,并且在电力供应上相对比较充足的装置。另外,根据这两种嵌入式装置的不同特点,J2ME引入了Configuration的概念,并通过Configuration的概念把嵌入式装置区分为两种抽象的形态。
目前,由于JAVA技术的跨平台、开放和安全等特性,使其已经成为智能手持终端软件开发平台的标准。其"一次编写,到处运行"的特点,使采用JAVA语言编写的应用程序不必考虑接受其服务的手持终端所采用的操作系统类型和所使用的芯片类型,同时也使生产手持终端的厂商也不必考虑将来谁来提供服务。
2.基于J2ME的应用程序设计方法
使用J2ME开发程序的流程一般需要经过编译、混淆、预审核、打包和编写描述文件等过程,最后将包文件(.jar)和描述文件(.jad)通过某种途径(如数据线、红外线、蓝牙和OTA空中下载等方法)传输到相应的移动设备上运行即可。
采用基于MIDlet类的J2ME软件设计时,完整的MIDP手持终端程序开发流程如表1所示。
其中,编译的过程是将java源文件编译成为二进制的类文件(.class)。通过使用由Sun公司开发的一个编译器javac.exe,可以把*.java文件编译成为未混淆的二进制类文件(.class)。由于二进制类文件格式是透明的,故该java文件比较容易被反汇编。因此,如果不希望其他人掌握源代码,可以对类文件进行混淆。所谓混淆,就是利用第三方提供的相应工具软件,将类文件的方法名、类名改成没有实际意义的相应特定字符或代码等,这样就可以增加其阅读的难度。同时,混淆之后还能够达到减少代码的目的,其主要原因是使用混淆器将方法名、类名变成没有实际意义的短字符或代码之后,进而缩短了相应代码的长度。在完成编译、混淆之后,接下来还必须做的是要对混淆后的二进制类文件进行预审核,这一点与传统的Java程序是不同的。对于手持终端资源有限(如CPU主频、电力供应等)的设备来说,在手持终端上进行大量的此类审核非常浪费资源。因此,最好的方法是在PC机上进行部分的预选审核工作,这样一来,就大大减少了手持终端上进行的审核工作。然后将通过预审核的类文件利用jar.exe打包工具打包成 MIDP认可的可执行文件(.jar),再通过文本编辑工具得到jar的描述文件(.jad),最后通过相应的途径(如数据线、红外线、蓝牙和OTA空中下载等方法)将它们装载至手持终端上安装并运行即可。
3. 基于J2ME的智能移动视频监控手持终端软件设计
开发基于J2ME设计的应用程序需继承MIDlet类,MIDlet类可处于暂停状态、活跃状态和销毁状态等三种状态中,其生命周期如图1所示。
其中,当一个MIDlet刚刚启动但还没执行Start App方法时,它是处于暂停状态。这时MIDlet一般是保持尽可能少的资源,来等待被系统的调度执行。当MIDlet被系统调度执行时,调用Start App方法,MIDlet从暂停状态转换到活跃状态。此时MIDlet保持所有需要的资源,并被系统执行。当系统需要暂停MIDlet的执行的时候,Pause App被调用,MIDlet释放掉尽可能的资源,从活跃状态转换到暂停状态。当系统结束MIDlet的执行的时候,Destroy App方法被调用,MIDlet从暂停状态或者活跃状态转换到销毁状态,MIDlet释放所有资源,等待被垃圾收集程序回收。
本设计涉及的类结构关系如图2所示。其中,作为程序入口的TCPMIDlet为主类,TCPMIDlet调用TCPFrom,TCPFrom继承TCPHandler Listener,TCPFrom调用ShowImge和TCPHandler,TCPHandler调用ImageCanvas。
笔者采用Netbeans 6.1作为手持终端软件开发平台集成开发环境,由于该平台环境中集成了手持终端模拟器,当所开发的手持终端应用软件在模拟器上能够正常运行后,通过数据线、红外线、蓝牙和OTA空中下载等方式将jar包文件和jad描述文件下载至手持终端上即可运行。本设计采用诺基亚N96手机作为测试用的手持终端,其测试效果如图3所示。
由图3可以看出,所设计开发的手持终端软件能够实现智能移动视频监控所需的各种功能,并达到了预期的设计目的和效果。
参考文献:
[1] 郭雪妍.JAVA语言程序设计[M].北京:机械工业出版社,2003.
[2] 姜帆,罗蕾.基于MVC模式的J2ME应用程序框架设计[J].单片机与嵌入式系统应用,2007,3.
[3] 詹建飞.J2ME开发精解[M].北京:电子工业出版社,2006.
作者简介:王洪革(1968-),男,吉林警察学院信息工程系副教授,工学硕士,主要研究方向:信息处理及计算机通信。