新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > MTK系统下的J2ME运行平台设计

MTK系统下的J2ME运行平台设计

作者: 时间:2009-05-08 来源:网络 收藏

移植接口层包含以下部分:
①文件部分,对文件操作,实现创建、打开、关闭、读、写等功能。KVM在的时候需要通过这部分接口使用本地文件,如打开jar、jad文件等。
②网络部分,提供Socket访问功能。
③外部事件,获取用户输入,包括按键输入和触摸屏输入。
④图形显示部分,负责KVM图形及文字显示。
时间部分,提供给KVM精确的时间。
⑥输入法,Java程序时可能要求用户输入,此接口实现调用系统输入法功能。
⑦其他接口,内存访问、交互性事件通知以及扩充的JSR实现所需要的接口,如JSRl20、JSRl35等。
2.4 应用程序管理系统
应用程序管理系统管理整个Java环境,实现如下功能:
①显示应用程序列表,展示给用户当前手机系统的所有可用的应用程序。
②应用管理功能选择菜单,菜单应包括两种类型,分别是程序已经安装好的菜单项和程序还未下载,只有jad文件在本地,需要向服务器请求下载应用安装后才能运行的菜单项。
③下载应用,与服务器通信下载用户选择的应用。用户启动Java应用流程如图4所示。

根据UI和engine的划分,可以把应用程序管理系统分为应用程序管理界面和应用管理系统核心:应用程序管理界面提供给用户交互式界面,包括管理系统主界面、程序下载界面、程序运行界面、管理功能菜单以及各级子界面;应用管理系统核心由实现功能的一系列API组成,提供给上层界面调用,实现程序的下载、安装、删除、运行等功能。


3 的实现
3.1 Java虚拟机移植的实现
在实现内存管理模块时,由于不提供动态分配内存方式,而虚拟机需要一块比较大的内存,不能从MED模块分配,且根据需要会对内存进行压缩整理,不适合采用系统托管方式。所以,采用虚拟机自己管理内存的方式,实现内存管理模块。
KVM就像一个软处理器一样控制解释Java字节码和它的执行状况,每一个创建的Java线程在Java堆中都会有各自的线程执行栈,并且由KVM运行来调度管理。为了使KVM能尽量正确地划分时间片,需要给一个时间标准作为KVM的内部时钟,由时间接口实现。系统提供void kal_get_time(kal_uint32*tieks_ptr)函数,可精确到1个ticks(4.615 ms)。
系统只提供一种大小字体,而Java应用需要使用3种大小字体。可以采用以下方式实现:
实现虚拟机自身的文字模块,采用3种大小的ASCII和GB2312字体点阵字库,从中提取文字点阵信息,由虚拟机图形显示模块显示。
②只提供一种大小的字体,这样应用会受限制。由于系统可用内存小,文字点阵字库相对比较大,不适合在这个平台使用,因此选择采用第2种方式。如今在移动多媒体领域,Java应用大多要求联网,所以实现网络通信,即要实现TCP/IP,支持套接字,是KVM一个非常重要的功能。系统“soc_api.h”文件中定义了套接字接口API,使用此接口实现虚拟机网络方面移植非常方便。
Java应用要求支持多媒体音频和事件处理,提供用户最好的交互功能。在多媒体音频方面,系统提供了非常全面的支持――支持MID、MP3等格式的音频播放。根据Java应用的需求,一些基于MIDP2.O扩展包的实现成为必要。本系统实现了JSRl20的短信功能以及JSRl35的部分功能。
3.2 应用程序管理系统的实现
实现了应用程序管理核心API,包括对jar、jad文件的安装、删除、信息获取等等。系统MMI层提供了丰富的UI元素,因此比较容易地实现了应用程序管理界面。实现了应用下载模块,与服务器通信下载应用。由于平台未提供HTTP协议的实现,因此在基于所的虚拟机Socket接口之上,实现了HTTP协议,连接服务器下载用户选择的相关应用。


结 语
运行平台在系统上的设计和实现,充分考虑了系统空间的局限性和运行效率这两大要素,以及Java运行时与系统的交互事件处理问题,实现了在平台上下载、安装、运行Java应用一体化平台,并在MIP2.0基础上扩充实现了JSR120、JSR135部分功能。该平台已经在多款MTK6225平台手机上运行。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭