移动通信终端的Java模拟方法

文档序号:6422795阅读:348来源:国知局
专利名称:移动通信终端的Java模拟方法
技术领域
本发明涉及移动通信终端的Java模拟方法,特别是涉及一种不在移动通信终端中下载软件,而是使用Windows API(application programminginterface-应用编程接口)更加容易地进行调试及错误追踪(Trace)的移动通信终端的Java模拟方法。
背景技术
太阳微系统公司(SUN)发布的SDK(Software Development Kit,软件开发工具包)一直被用作在Windows环境下测试/检验CP(ContentsProvider-内容提供者)等开发的JAVA内容或判断是否应用SUN新发布的规格等的工具。
但是,上述JAVA SDK虽然是一种用于JAVA内容开发人员参照的有用工具,但在移动通信终端的实际开发阶段,对于J2ME(Java 2 PlatformMicro Edition,Java 2平台微型版)终端开发人员或内容开发人员而言则没有有用价值,至今没有一种开发/检验工具,在终端环境下移植(Porting)MIDP(Mobile Information Device Profile,移动信息设备描述)/CLDC(Connected Limited Device Configuration-有限连接设备配置)时,可以确认在终端中是否正常工作。
作为参考,上述J2ME是指太阳微系统公司(SUN)对完全版Java规格进行简化使之适合手机等移动通信终端的一种规格,移动信息设备描述(MIDP)是指基于采用KVM(Kilobyte VM-千字节虚拟机)为默认VM(虚拟机)的CLDC的描述文件。
另一方面,搭载于移动通信终端的实时OS大部分使用高通公司OS的REX,如上所述,以往由于未提供针对J2ME开发人员的Windows环境的REX模拟器(JAVA REX WTK(Wireless Toolkits-无线工具包)),因此存在如下问题,即,为了对开发的软件进行调试和错误追踪,需要每次在移动通信终端中直接下载软件。
本发明的内容因此,本发明正是为了解决上述以往问题而提出的,目的在于提供一种移动通信终端的Java模拟方法,该方法不在移动通信终端中下载软件,而是使用Windows API,使调试及错误追踪更容易。
为实现上述目的,本发明提供了一种移动通信终端的Java模拟方法,利用动态链接库构成Windows用Java模拟器来模拟执行各种终端功能,包括如下步骤1)载入所述Windows用Java模拟器“WTK dll”,以使Windows用模拟器启动JAVA模块,主线程调用函数“WTK_Start()”,生成任务并对其进行初始化;2)上述任务的生成及初始化过程结束后,运行当前最高级任务“MC task”,然后,等待外部事件的发生,由“rex_wait_wtk()”函数判断该事件是何种类,设置符合所发生事件的恰当信号;3)当上述事件是键事件时,通过“pass_key_code()”函数设置键事件信号,通过“rex_set_sigs()”函数进行调度,使曾由REX OS执行的任务转换(task switching)动作由Windows OS来执行;4)处于待机状态的“UI task”的“rex_wait()”函数接收上述信号并传递给“handle_keys()”函数,“handle_keys()”函数分析输入的键事件是何种键值,并传递给作为“MVM task”的实际体现部的“uistate_mvm()”,针对传递来的键事件,驱动“Java VM”。
优选地,所述Windows用Java模拟器为终端形态的模拟器,从而在Windows环境下,利用键盘或鼠标获得与实现操作终端相同的效果。
本发明的要旨在于提供一种方法,改善曾无法实现多任务处理、无法在Windows中实现模拟(Emulation)的移动RTOS(Realtime Operating System-实时操作系统),即REX环境,不在移动通信终端中下载软件,而是使用Windows API,使调试及错误追踪更容易,从而对太阳微系统公司(SUN)发布的JAVA SDK(Software Development Kit)进行改进,使其可以在终端环境下使用。
附图的简要说明

图1是本发明的Windows环境下的移动通信终端模拟器运行画面示例图;图2是本发明的移动通信终端的Java模拟方法的状态图。
具体实施例方式
下面参照附图,说明本发明的优选实施例。
图1是本发明的Windows环境的移动通信终端模拟器运行画面示例图,如图所示,它由利用DLL(Dynamic Link Library,动态链接库)的终端形态的模拟器和用于执行终端功能的“Phone Native API(电话本地应用程序接口)”构成,使用J2ME CLDC/MIDP包(Package),在模拟器中驱动“JAVA KVM(千字节虚拟机)”。
图2是本发明的移动通信终端的Java模拟方法的状态图,首先,为了在Windows用模拟器中启动JAVA模块而载入“WTK dll”(也就是Windows用Java模拟器(JAVA WTK),即,利用动态链接库(DLL)构成的终端形态的模拟器),主线程调用“WTK_Start()”函数。
其中,上述“WTK_Start()”函数针对Rex进行环境初始化,生成各任务(MC task、UI task、MVM task等)及对其进行初始化。此时,任务可以根据需要追加生成,在任务生成过程中,使用Windows用API,以纤程(Fiber)形态生成。
接着,上述任务的生成及初始化过程结束后,运行当前最高级任务“MCtask”,然后等待事件(为在模拟器环境下进行终端操作而进行键输入等)的发生。
接着,外部事件发生之后,“MC task”的“rex_wait_wtk()”函数中接收到该事件,判断发生的事件是何种类,设置符合发生的事件的恰当信号(任务间事件传递形态),当该事件是键事件时,把事件传递给“pass_key_code()”函数。
这样一来,在“pass_key_code()”函数内便设置了键事件。
接着,“rex_set_sigs()”函数通过“rex_sched()”函数使用上述任务设置中使用的纤程(Fiber)进行调度,使终端中曾由REX OS执行的任务转换(taskswitching)动作由Windows OS来执行。
上述信号从处于待机状态的“UI task”的“rex_wait()”函数获得,传递给“handle_keys()”函数,“handle_keys()”函数分析输入的键事件是何种键值,传递给作为“MVM task”的实际体现部的“uistate_mvm()”。
这样一来,上述“uistate_mvm()”函数则针对传递来的键事件驱动“JavaVM”。
一般而言,REX OS以时间分割方式转换单一任务,本发明则是可以使用Windows提供的线程(Thread)和纤程(Fiber),同时转换多个任务。
因此,如果驱动本发明所体现的终端环境下的Java模拟器(JAVA REX WTK),则通过选择预先分配的模拟器键,运行JAVA内容,在这一过程中,可以执行与终端相同的动作,从而能够利用微软的visual studio等Windows工具进行模拟器/Rex/J2ME Native API等的调试。
如上述所作的说明,本发明移动通信终端的Java模拟方法具有如下效果,即,不在移动通信终端中下载软件,而是使用Windows API,使调试及错误追踪更容易。
本发明的另一效果是,使J2ME开发人员可以在Windows OS环境下,执行与在终端中相同的作业,可以测试/检验实现了商用化的内容,缩短编译和下载时间,从而提高开发人员的工作效率,更易于开发多样的内容。
权利要求
1.一种移动通信终端的Java模拟方法,利用动态链接库构成Windows用Java模拟器来模拟执行各种终端功能,包括如下步骤1)载入所述Windows用Java模拟器,主线程调用函数,生成任务并对其进行初始化;2)在所述任务的生成及初始化过程结束后,运行当前最高级任务,然后,等待外部事件的发生,在外部事件发生时判断所发生事件的种类,设置符合所发生事件的信号;3)当所发生的事件是键事件时,设置键事件信号,进行调度,使由REX操作系统执行的任务转换动作由Windows操作系统来执行;4)接收所述键事件信号,根据所述键事件信号分析输入的键事件是何种键值,针对传递来的键事件,驱动“Java千字节虚拟机”。
2.根据权利要求1所述的移动通信终端的Java模拟方法,其特征在于,所述步骤1)生成的任务包括MC task、UI task、MVM task,所述这些任务使用Windows应用编程接口以纤程形态生成并可以根据需要追加生成。
3.根据权利要求1所述的移动通信终端的Java模拟方法,其特征是所述Windows用Java模拟器为终端形态,以便在Windows环境下,利用键盘或鼠标获得与实现操作终端相同的效果。
全文摘要
本发明涉及一种移动通信终端的Java模拟方法,利用DLL构成终端形态的模拟器,从而可以执行各种终端功能,包括如下步骤1)载入所述模拟器,主线程调用“WTK_ Start()”函数,生成各种任务及对其进行初始化;2)上述任务的生成及初始化过程结束后,运行当前最高级任务“MC task”,等待外部事件的发生,“rex_wait_wtk()”函数判断所发生事件的种类,设置符合所发生事件的恰当信号;3)当事件是键事件时,设置键事件信号,进行调度,使由REX OS执行的任务转换动作由Windows OS来执行;4)处于待机状态的“UI task”的“rex_wait()”函数接收上述信号并传递给“handle_keys()”函数分析输入的键事件是何种键值,并传递给作为“MVM task”的实际体现部的“uistate_mvm()”,针对传递来的键事件,驱动“Java VM”。
文档编号G06F11/36GK1605991SQ20041006923
公开日2005年4月13日 申请日期2004年7月15日 优先权日2003年10月8日
发明者李大燮 申请人:乐金电子(中国)研究开发中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1