一种智能操作系统上的java虚拟机实现方法

文档序号:6543542阅读:112来源:国知局
一种智能操作系统上的java虚拟机实现方法
【专利摘要】本发明涉及一种智能操作系统上的JAVA虚拟机实现方法,将JAVA虚拟机软件分为以下两个部分:启动入口部分;CVM虚拟机部分;启动入口部分和CVM虚拟机部分之间,通过JNI和共享内存空间等方式通信。将JAVA虚拟机的运行环境结构分为两个层次:Linux用户层和Dalvik虚拟机层;其中:启动入口部分运行在Dalvik虚拟机层;CVM虚拟机部分运行在Linux用户层。本发明所述的实现方法,在Android系统中内置JAVA虚拟机软件,JAVA虚拟机软件可以独立、高效地运行,能独立的解释、运行J2ME软件包或其他J2ME程序,确保了对J2ME程序的完整兼容性和稳定性,J2ME程序通过JAVA虚拟机独立启动,直接运行,实时性高,用户体验更佳。
【专利说明】一种智能操作系统上的JAVA虚拟机实现方法
【技术领域】
[0001]本发明涉及JAVA虚拟机及J2ME (JAVA2Micro Edition)【技术领域】,具体说是一种智能操作系统上的JAVA虚拟机实现方法。尤指可以在智能操作系统平台之上运行J2ME软件包的JAVA虚拟机实现方法。所述智能操作系统平台特指Android及其衍生操作系统平台。
【背景技术】
[0002]Android是一种以Linux为基础的开源智能操作系统,主要使用于便携设备、智能电视、平板电脑、机顶盒等。Android操作系统最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域。Android系统由Linux操作系统内核、Dalvik虚拟机、支撑库、应用程序框架及应用程序组成。由于它具有良好的开放性和强大的功能,当前Android操作系统除了在手机等靠电池供电的嵌入式设备中广泛应用外,也逐步应用到数字电视等使用交流电源的设备和产品O
[0003]IPTV,是一种利用宽带有线电视网,集互联网、多媒体、通讯等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。IPTV业务大致分为基本业务和增值业务两大类,IPTV的基本业务是指以视听内容为主的视频内容服务,包括直播、点播、轮播、时移等;而IPTV的增值业务包括游戏、即时通信、电子支付以及卡拉OK等,其中,游戏分为网页游戏和JAVA游戏两种,是IPTV增值业务的重要组成部分。
[0004]目前接入IPTV平台的智能机顶盒大多采用Android系统,而基于Android系统的智能机顶盒需要满足能接入并使用原有IPTV平台业务,这里就包括能正常运行IPTV平台的JAVA游戏,IPTV平台的JAVA游戏为J2ME程序,通常是一个J2ME软件包。原来接入IPTV平台的机顶盒基本为基于嵌入式Linux的标清或高清机顶盒,运行JAVA游戏(J2ME软件包)的JAVA虚拟机也是基于嵌入式Linux系统而开发。现在基于Android系统的智能机顶盒也需要能支持并运行IPTV平台的JAVA游戏(J2ME软件包),但基于嵌入式Linux系统而开发的JAVA虚拟机不适用于Android系统。
[0005]目前在基于Android系统的智能机顶盒上运行JAVA游戏(J2ME软件包)已有一种转换式解决方案,该转换式解决方案利用J2ME软件包与Android系统自身应用程序在结构上相似的特点,利用不开源的商用软件对已有的J2ME软件包进行转换,将JAVA游戏的J2ME软件包变换为Android系统软件包文件,然后再将该Android系统软件包文件在终端设备的Android系统上安装使用。该方法应用在智能机顶盒上有几个明显的弊端:
[0006]1.兼容性缺乏保证,无法保证针对所有JAVA游戏的J2ME软件包都可以顺利转换。
[0007]2.实时性不足,通过该方法运行JAVA游戏的J2ME软件包,需要经过转换、安装、运行3个阶段,耗费JAVA游戏启动时间,用户体验不佳。
[0008]3.开放性不足,该方法核心部分为不开源的商业软件,不可能完全针对平台需求进行及时修改。[0009]现有技术中对这些问题暂无进一步的解决方案。

【发明内容】

[0010]针对现有技术中存在的缺陷,本发明的目的在于提供一种智能操作系统上的JAVA虚拟机实现方法,所述智能操作系统特指Android及其衍生操作系统,通过在Android系统中内置JAVA虚拟机软件,且对JAVA虚拟机软件的构成以及JAVA虚拟机的运行环境结构进行细化,以确保JAVA虚拟机软件可以独立、高效地运行。
[0011]为达到以上目的,本发明采取的技术方案是:
[0012]一种智能操作系统上的JAVA虚拟机实现方法,其特征在于:首先将JAVA虚拟机软件分为以下两个部分:
[0013]启动入口部分,负责图形显示、音频播放、用户输入处理等工作,作为正常的Android应用程序的启动入口 ;
[0014]CVM虚拟机部分,以动态库的形式工作在Linux用户空间,负责J2ME软件包的解析和运行,执行J2ME软件包的绘图、音频逻辑,并根据J2ME软件包逻辑处理用户输入事件;
[0015]启动入口部分和CVM虚拟机部分之间,通过JNI和共享内存空间等方式通信,使JAVA虚拟机能在智能操作系统平台之上运行J2ME软件包。
[0016]在上述技术方案的基础上,所述智能操作系统特指Android及其衍生操作系统。
[0017]在上述技术方案的基础上,所述智能操作系统运行在接入IPTV平台的智能机顶盒中。
[0018]在上述技术方案的基础上,所述智能机顶盒为标清或高清机顶盒。
[0019]在上述技术方案的基础上,将JAVA虚拟机的运行环境结构分为两个层次:Linux用户层和Dalvik虚拟机层;其中:
[0020]启动入口部分的Android应用程序模块及其JNI模块运行在Dalvik虚拟机层,[0021 ] CVM虚拟机部分的CVM虚拟机模块及其JNI模块运行在Linux用户层;
[0022]启动入口部分和CVM虚拟机部分的JNI模块同为C/C++实现,并且公用内存空间,他们之间的通信作为Linux用户层和Dalvik虚拟机层这两个层次之间的桥梁使用。
[0023]在上述技术方案的基础上,JAVA虚拟机运行J2ME软件包的工作过程包括:
[0024]启动和运行流程,
[0025]JAVA虚拟机图形显示处理流程,
[0026]JAVA虚拟机音频播放处理流程,
[0027]JAVA用户输入处理流程。
[0028]在上述技术方案的基础上,启动和运行流程包含以下步骤:
[0029]步骤Al, Android应用程序模块启动,启动参数中设置jar软件包文件路径;
[0030]步骤A2,CVM虚拟机模块被编译为Linux动态库,通过Android JNI装载CVM虚拟机的动态库,并获取其入口函数来启动CVM虚拟机模块,此时将步骤Al中获取到的jar软件包文件路径传递给CVM虚拟机的动态库;
[0031 ] 步骤A3,CVM虚拟机模块根据步骤A2中获取到的jar软件包文件路径来读取jar文件,解析出其中的类文件,并加载J2ME类入口点,从而启动程序;
[0032]步骤A4,开始J2ME软件包的生命周期,进入J2ME软件包规定的程序逻辑,包含绘图、音频、用户输入处理等逻辑;
[0033]步骤A5,将J2ME软件包逻辑中处理好的绘图、音频等信息,通过CVM JNI模块的接口传递到Android JNI模块;
[0034]步骤A6, Android JNI模块再将绘图、音频等信息传递到Android应用程序模块,在Android应用程序模块中予以显示、播放;
[0035]步骤A7, Android应用程序模块接收用户输入,通过虚拟Linux键盘设备文件的方式传递到CVM虚拟机模块;
[0036]步骤A8,用户选择退出,CVM虚拟机模块通过CVM JNI模块发出退出命令;
[0037]步骤A9,退出命令通过Android JNI模块传递到Android应用程序模块,Android应用程序模块收到退出命令,退出程序流程结束。
[0038]在上述技术方案的基础上,JAVA虚拟机图形显示处理流程包含以下步骤:
[0039]步骤BI,程序启动后,Android应用程序模块初始化应用程序视图,视图中使用一块 Android, graphics.Bitmap 绘图;
[0040]步骤B2,通过Android JNI模块初始化步骤BI中所述的Android, graphics.Bitmap 结构;
[0041]步骤B3,CVM虚拟机模块通过共享内存的方式取得绘图缓冲的实际指针,即步骤B2中所初始化的Android, graphics.Bitmap结构中的实际绘图内存;
[0042]步骤B4,CVM虚拟机模块根据所运行的J2ME程序逻辑,完成图象解码、图形绘制、文本绘制等操作;
[0043]步骤B5,将步骤B4中绘制完成的图像处理结果输出到步骤B3所取得的绘图缓冲中;
[0044]步骤B6,绘图完成,通过CVM JNI模块发出要求刷新屏幕的指令;
[0045]步骤B7, Android JNI模块收到刷新屏幕的指令,通知Android应用程序模块绘图缓冲已更新;
[0046]步骤B8,拉伸绘图缓冲的内容以适应显示设备,并刷新视图,完成图像的显示。
[0047]在上述技术方案的基础上,JAVA虚拟机音频播放处理流程包含以下步骤:
[0048]步骤Cl,程序启动后,Android应用程序模块初始化Android播放器Android,media.MediaPlayer ;
[0049]步骤C2,CVM虚拟机模块根据所运行的J2ME程序逻辑,发出播放,停止等命令;
[0050]步骤C3,在CVM JNI模块中,将播放、停止等命令封装为命令字符串;
[0051]步骤C4,CVM JNI模块将命令字符串发送到Android JNI模块处理;
[0052]步骤C5,Android JNI模块将命令字符串发送到Android应用程序模块;
[0053]步骤C6,Android应用程序模块收到并解析命令字符串,根据命令的内容顺序执行播放、停止等操作,实现音频媒体的播放。
[0054]在上述技术方案的基础上,JAVA用户输入处理流程包含以下步骤:
[0055]步骤Dl,Android应用程序模块接收用户按键输入,并保存键值;
[0056]步骤D2,在文件系统中创建虚拟键盘设备文件的文件,该文件会被当做一个键盘设备使用;
[0057]步骤D3,按照Linux输入设备文件结构定义,把用户按键输入转换,写入步骤D2里创建的虚拟设备文件中;
[0058]步骤D4,CVM虚拟机模块创建监听线程,监听步骤D2里创建的虚拟设备文件,一旦有输入信息便读取并处理;
[0059]步骤D5,读取到用户输入键值后,将输入键值转换为J2ME规定的按键键值并交由CVM虚拟机处理,CVM虚拟机模块会将其转换为按键事件并最终发送到J2ME程序逻辑中。
[0060]与现有技术相比,本发明采用与基于嵌入式Linux系统的标清或高清机顶盒的作法一致,通过在Android系统中内置JAVA虚拟机软件,且对JAVA虚拟机软件的构成以及JAVA虚拟机的运行环境结构进行细化,使JAVA虚拟机软件能独立的解释、运行J2ME软件包或其他J2ME程序,确保了对J2ME程序的完整兼容性和稳定性。例如:当应用在基于Android系统的智能机顶盒上时,JAVA虚拟机能在智能操作系统平台之上运行J2ME软件包,可以确保对IPTV平台的JAVA游戏的完整兼容性和稳定性。
[0061]与现有技术相比,本发明运行J2ME软件包时不需要将原生态的J2ME软件包进行转化、安装、启动运行等过程,J2ME软件包通过JAVA虚拟机独立启动,直接运行,实时性高,用户体验更佳。
[0062]综上所述,本发明所述的实现方法,在Android系统中内置JAVA虚拟机软件,JAVA虚拟机软件可以独立、高效地运行,能独立的解释、运行J2ME软件包或其他J2ME程序,确保了对J2ME程序的完整兼容性和稳定性,J2ME程序通过JAVA虚拟机独立启动,直接运行,实时性高,用户体验更佳。
【专利附图】

【附图说明】
[0063]本发明有如下附图:
[0064]图1是表示本发明的JAVA虚拟机运行环境结构示意图。
[0065]图2是表示J2ME程序启动和运行流程图。
[0066]图3是表示JAVA虚拟机图形显示处理流程图。
[0067]图4是表示JAVA虚拟机音频播放处理流程。
[0068]图5是表示JAVA用户输入处理流程。
【具体实施方式】
[0069]以下结合附图对本发明作进一步详细说明。
[0070]本发明所述的智能操作系统上的JAVA虚拟机实现方法,首先将JAVA虚拟机软件分为以下两个部分:
[0071]启动入口部分,负责图形显示、音频播放、用户输入处理等工作,作为正常的Android应用程序的启动入口 ;
[0072]CVM虚拟机部分,CVM即C virtual machine,是JAVA虚拟机嵌入式版本,以动态库的形式工作在Linux用户空间,负责J2ME软件包的解析和运行,执行J2ME软件包的绘图、音频逻辑,并根据J2ME软件包逻辑处理用户输入事件;
[0073]启动入口部分和CVM虚拟机部分之间,通过JNI (JAVA NATIVE INTERFACE, JAVA本地调用技术)和共享内存空间等方式通信。
[0074]在上述技术方案的基础上,将JAVA虚拟机的运行环境结构分为两个层次:Linux用户层和Dalvik虚拟机层(Google专为Android系统开发的JAVA虚拟机使用.dex格式的JAVA程序);其中:
[0075]启动入口部分的Android应用程序模块及其JNI模块(Android JNI模块)运行在Dalvik虚拟机层,
[0076]CVM虚拟机部分的CVM虚拟机模块及其JNI模块(CVM JNI模块)运行在Linux用
户层;
[0077]启动入口部分和CVM虚拟机部分的JNI模块同为C/C++实现,并且公用内存空间,他们之间的通信作为Linux用户层和Dalvik虚拟机层这两个层次之间的桥梁使用,参见图1o
[0078]本发明所述的智能操作系统上的JAVA虚拟机实现方法,JAVA虚拟机运行J2ME软件包(J2ME程序)的工作过程包括:
[0079]启动和运行流程(J2ME程序启动和运行流程),
[0080]JAVA虚拟机图形显示处理流程,
[0081 ] JAVA虚拟机音频播放处理流程,
[0082]JAVA用户输入处理流程。
[0083]以下逐一说明。
[0084]本发明的启动和运行流程包含以下步骤(参见图2):
[0085]步骤Al, Android应用程序模块启动,启动参数中设置jar (JAVA Archive,是指将JAVA类文件和各种资源文件以及meta-data打包发布的文件格式)软件包文件路径;
[0086]步骤A2,CVM虚拟机模块被编译为Linux动态库,通过AndroidJNI装载CVM虚拟机的动态库,并获取其入口函数来启动CVM虚拟机模块,此时将步骤Al中获取到的jar软件包文件路径传递给CVM虚拟机的动态库;
[0087]步骤A3,CVM虚拟机模块根据步骤A2中获取到的jar软件包文件路径来读取jar文件,解析出其中的类文件,并加载J2ME (JAVA Platform, Micro Edition专为手机、机顶盒等嵌入式设备提供的JAVA标准)类入口点,从而启动程序(J2ME程序);
[0088]步骤A4,开始J2ME软件包的生命周期,进入J2ME软件包规定的程序逻辑,包含绘图、音频、用户输入处理等逻辑;
[0089]步骤A5,将J2ME软件包逻辑中处理好的绘图、音频等信息,通过CVM JNI模块的接口传递到Android JNI模块;
[0090]步骤A6, Android JNI模块再将绘图、音频等信息传递到Android应用程序模块,在Android应用程序模块中予以显示、播放;
[0091]步骤A7, Android应用程序模块接收用户输入(如方向键、确定),通过虚拟Linux键盘设备文件的方式传递到CVM虚拟机模块;
[0092]步骤A8,用户选择退出,CVM虚拟机模块通过CVM JNI模块发出退出命令;
[0093]步骤A9,退出命令通过Android JNI模块传递到Android应用程序模块,Android应用程序模块收到退出命令,退出程序流程结束。
[0094]JAVA虚拟机图形显示处理流程包含以下步骤(参见图3):
[0095]步骤BI,程序(J2ME程序)启动后,Android应用程序模块初始化应用程序视图(派生自 Android, view.SurfaceView),视图中使用一块 Android, graphics.Bitmap 绘图;[0096]所述Android, graphics.Bitmap 结构即绘图缓冲;
[0097]步骤B2,通过Android JNI模块初始化步骤BI中所述的Android, graphics.Bitmap结构,即初始化绘图缓冲;
[0098]步骤B3,CVM虚拟机模块通过共享内存的方式取得绘图缓冲的实际指针,即步骤B2中所初始化的Android, graphics.Bitmap结构中的实际绘图内存;
[0099]步骤B4,CVM虚拟机模块根据所运行的J2ME程序逻辑,完成图象解码、图形绘制、文本绘制等操作;
[0100]步骤B5,将步骤B4中绘制完成的图像处理结果输出到步骤B3所取得的绘图缓冲中;
[0101]步骤B6,绘图完成,通过CVM JNI模块发出要求刷新屏幕的指令;
[0102]步骤B7, Android JNI模块收到刷新屏幕的指令,通知Android应用程序模块绘图缓冲已更新;
[0103]步骤B8,拉伸绘图缓冲的内容以适应显示设备,并刷新视图(即步骤BI中初始化的Android, view.SurfaceView衍生类),完成图像的显示。
[0104]JAVA虚拟机音频播放处理流程包含以下步骤(参见图4):
[0105]步骤Cl,程序启动后,Android应用程序模块初始化Android播放器(Android,media.MediaPlayer);
[0106]步骤C2,CVM虚拟机模块根据所运行的J2ME程序逻辑,发出播放,停止等命令;
[0107]步骤C3,在CVM JNI模块中,将播放、停止等命令封装为命令字符串;
[0108]步骤C4,CVM JNI模块将命令字符串发送到Android JNI模块处理;
[0109]步骤C5,Android JNI模块将命令字符串发送到Android应用程序模块;
[0110]步骤C6,Android应用程序模块收到并解析命令字符串,根据命令的内容顺序执行播放、停止等操作,实现音频媒体的播放。
[0111]JAVA用户输入处理流程包含以下步骤(参见图5):
[0112]步骤D1,程序启动后,Android应用程序模块接收用户按键输入,并保存键值;
[0113]步骤D2,在文件系统中创建虚拟键盘设备文件的文件,该文件(虚拟设备文件)会被当做一个键盘设备使用;
[0114]步骤D3,按照Linux输入设备文件结构定义,把用户按键输入转换,写入步骤D2里创建的虚拟设备文件中;
[0115]步骤D4,CVM虚拟机模块创建监听线程,监听步骤D2里创建的虚拟设备文件,一旦有输入信息便读取并处理;
[0116]步骤D5,读取到用户输入键值后,将输入键值转换为J2ME规定的按键键值并交由CVM虚拟机处理,CVM虚拟机模块会将其转换为按键事件并最终发送到J2ME程序逻辑中。
[0117]本发明所述的JAVA虚拟机实现方法,不但适用于智能机顶盒等嵌入式终端设备实现运行JAVA游戏,还适用于基于Android系统的其它智能设备上实现运行J2ME程序的JAVA虚拟机实现。
[0118]当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本明所附的权利要求的保护范围。[0119]本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
【权利要求】
1.一种智能操作系统上的JAVA虚拟机实现方法,其特征在于:首先将JAVA虚拟机软件分为以下两个部分: 启动入口部分,负责图形显示、音频播放、用户输入处理等工作,作为正常的Android应用程序的启动入口; CVM虚拟机部分,以动态库的形式工作在Linux用户空间,负责J2ME软件包的解析和运行,执行J2ME软件包的绘图、音频逻辑,并根据J2ME软件包逻辑处理用户输入事件; 启动入口部分和CVM虚拟机部分之间,通过JNI和共享内存空间等方式通信,使JAVA虚拟机能在智能操作系统平台之上运行J2ME软件包。
2.如权利要求1所述的智能操作系统上的JAVA虚拟机实现方法,其特征在于:所述智能操作系统特指Android及其衍生操作系统。
3.如权利要求1所述的智能操作系统上的JAVA虚拟机实现方法,其特征在于:所述智能操作系统运行在接入IPTV平台的智能机顶盒中。
4.如权利要求3所述的智能操作系统上的JAVA虚拟机实现方法,其特征在于:所述智能机顶盒为标清或高清机顶盒。
5.如权利要求1所述的智能操作系统上的JAVA虚拟机实现方法,其特征在于:将JAVA虚拟机的运行环境结构分为两个层次:Linux用户层和Dalvik虚拟机层;其中: 启动入口部分的Android应用程序模块及其JNI模块运行在Dalvik虚拟机层, CVM虚拟机部分的CVM虚拟机模块及其JNI模块运行在Linux用户层; 启动入口部分和CVM虚拟机部分的JNI模块同为C/C++实现,并且公用内存空间,他们之间的通信作为Linux用户层和Dalvik虚拟机层这两个层次之间的桥梁使用。
6.如权利要求5所述的智能操作系统上的JAVA虚拟机实现方法,其特征在于JAVA虚拟机运行J2ME软件包的工作过程包括: 启动和运行流程, JAVA虚拟机图形显示处理流程, JAVA虚拟机音频播放处理流程, JAVA用户输入处理流程。
7.如权利要求6所述的智能操作系统上的JAVA虚拟机实现方法,其特征在于:启动和运行流程包含以下步骤: 步骤Al, Android应用程序模块启动,启动参数中设置jar软件包文件路径; 步骤A2,CVM虚拟机模块被编译为Linux动态库,通过Android JNI装载CVM虚拟机的动态库,并获取其入口函数来启动CVM虚拟机模块,此时将步骤Al中获取到的jar软件包文件路径传递给CVM虚拟机的动态库; 步骤A3,CVM虚拟机模块根据步骤A2中获取到的jar软件包文件路径来读取jar文件,解析出其中的类文件,并加载J2ME类入口点,从而启动程序; 步骤A4,开始J2ME软件包的生命周期,进入J2ME软件包规定的程序逻辑,包含绘图、音频、用户输入处理等逻辑; 步骤A5,将J2ME软件包逻辑中处理好的绘图、音频等信息,通过CVM JNI模块的接口传递到Android JNI模块;
步骤A6, Android JNI模块再将绘图、音频等信息传递到Android应用程序模块,在Android应用程序模块中予以显示、播放; 步骤A7,Android应用程序模块接收用户输入,通过虚拟Linux键盘设备文件的方式传递到CVM虚拟机模块; 步骤A8,用户选择退出,CVM虚拟机模块通过CVM JNI模块发出退出命令; 步骤A9,退出命令通过Android JNI模块传递到Android应用程序模块,Android应用程序模块收到退出命令,退出程序流程结束。
8.如权利要求6所述的智能操作系统上的JAVA虚拟机实现方法,其特征在于:JAVA虚拟机图形显示处理流程包含以下步骤: 步骤BI,程序启动后,Android应用程序模块初始化应用程序视图,视图中使用一块Android, graphics.Bitmap 绘图; 步骤B2,通过Android JNI模块初始化步骤BI中所述的Android, graphics.Bitmap结构; 步骤B3,CVM虚拟机模块通过共享内存的方式取得绘图缓冲的实际指针,即步骤B2中所初始化的Android, graphics.Bitmap结构中的实际绘图内存; 步骤B4,CVM虚拟机模块根据所运行的J2ME程序逻辑,完成图象解码、图形绘制、文本绘制等操作; 步骤B5,将步骤B4中绘制完成的图像处理结果输出到步骤B3所取得的绘图缓冲中; 步骤B6,绘图完成,通过`CVM JNI模块发出要求刷新屏幕的指令; 步骤B7, Android JNI模块收到刷新屏幕的指令,通知Android应用程序模块绘图缓冲已更新; 步骤B8,拉伸绘图缓冲的内容以适应显示设备,并刷新视图,完成图像的显示。
9.如权利要求6所述的智能操作系统上的JAVA虚拟机实现方法,其特征在于:JAVA虚拟机音频播放处理流程包含以下步骤: 步骤Cl,程序启动后,Android应用程序模块初始化Android播放器Android, media.MediaPlayer ; 步骤C2,CVM虚拟机模块根据所运行的J2ME程序逻辑,发出播放,停止等命令; 步骤C3,在CVM JNI模块中,将播放、停止等命令封装为命令字符串; 步骤C4,CVM JNI模块将命令字符串发送到Android JNI模块处理; 步骤C5,Android JNI模块将命令字符串发送到Android应用程序模块; 步骤C6,Android应用程序模块收到并解析命令字符串,根据命令的内容顺序执行播放、停止等操作,实现音频媒体的播放。
10.如权利要求6所述的智能操作系统上的JAVA虚拟机实现方法,其特征在于:JAVA用户输入处理流程包含以下步骤: 步骤Dl,Android应用程序模块接收用户按键输入,并保存键值; 步骤D2,在文件系统中创建虚拟键盘设备文件的文件,该文件会被当做一个键盘设备使用; 步骤D3,按照Linux输入设备文件结构定义,把用户按键输入转换,写入步骤D2里创建的虚拟设备文件中; 步骤D4,CVM虚拟机模块创建监听线程,监听步骤D2里创建的虚拟设备文件,一旦有输入信息便读取并处理; 步骤D5,读取到用户输入键值后,将输入键值转换为J2ME规定的按键键值并交由CVM虚拟机处理,CVM 虚拟机模块会将其转换为按键事件并最终发送到J2ME程序逻辑中。
【文档编号】G06F9/455GK103870316SQ201410146039
【公开日】2014年6月18日 申请日期:2014年4月11日 优先权日:2014年4月11日
【发明者】王子健, 姜超, 叶剑, 杨娟, 石艳 申请人:烽火通信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1