保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

MIDP2.0及其移植技术分析


,使MIDP能在目标平台上更高效地运行,这个过程就称为MIDP的移植。

MIDP由许多不同的部分组成,每一部分完成MIDP一个特定的功能接口。其中需要移植的部分主要包括事件处理、文件系统、用户图形化接口、网络、AMS、多媒体。它们都分为高端的JAVA层和低端的本地方法层。JAVA层是用JAVA语言实现的,由KVM解释执行;因此没有涉及到与操作系统平台相关的调用和操作,可以不经修改就在任何操作平台上运行,是平台无关的(PlateForm Independent)。它的移植主要是为满足用户的特殊要求而进行的个性化工作。本地方法层(NativeCode)是指为提高代码的执行效率,保持JAVA语言的平台无关性而使用C语言实现的部分MIDP功能的代码。本地即是指它是与当前的操作平台相关的,它的移植才是涉及到具体平台和执行效率而进行的具体调用和操作的替换过程,其结构如图1所示。

下面,我们就具体到MIDP的每一个部分的移植进行讨论。

2.1 事件处理

MIDP的事件处理部分要处理的事件主要来自两个方面:①来自虚拟机底层的事件,如虚拟机的异常消息;②来自MIDP内部的事件,如屏幕刷新、按键消息、触控笔点击消息、时钟消息等。由于不同的平台可能使用不同的事件消息获取和传递机制,因此MIDP事件处理的移植也集中在这上面,其实现被放在本地方法层的文件nativeGUI.c中的函数GetAndStoreKVMEvent中。我们只需根据目标平台获取和传递事件的要求修改该文件中的相应函数即可。

例如,Windows采用消息响应机制来处理各种事件,所有消息都可以通过系统API调用GetMessage获取,系统会调用消息处理函数WndProc(HWND hwnd、UINTiMsg、WPARAM wParam、LRARAM 1Param),在其中处理和传递不同的事件。其大致实现过程如下:

void

GetAndStoreNextKVMEvent(bool_t forever,ulong64 waitUntil){

MSG msg;

……

while(GetMessage(&msg,NULL,0,0)){

……

TranslateMessage(&msg);

DispatchMessage(&msg);

if(gotEvent){

StoreMIDPEvent(&kvmEvent);

Return;

}

}

return;

}

static LRESULT CALLBACK

WndProc (HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam){

……

switch(iMsg){

case WM_CREATE:

……

case WM_KEYDOWN:

case WM_KEYUP:

……

}

}

MIDP在GetAndStoreNextKVMEvent中获取事

《MIDP2.0及其移植技术分析(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/154245.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。