CN103870316B - 一种智能操作***上的java虚拟机实现方法 - Google Patents

一种智能操作***上的java虚拟机实现方法 Download PDF

Info

Publication number
CN103870316B
CN103870316B CN201410146039.4A CN201410146039A CN103870316B CN 103870316 B CN103870316 B CN 103870316B CN 201410146039 A CN201410146039 A CN 201410146039A CN 103870316 B CN103870316 B CN 103870316B
Authority
CN
China
Prior art keywords
virtual machine
module
android
cvm
java
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410146039.4A
Other languages
English (en)
Other versions
CN103870316A (zh
Inventor
王子健
姜超
叶剑
杨娟
石艳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN201410146039.4A priority Critical patent/CN103870316B/zh
Publication of CN103870316A publication Critical patent/CN103870316A/zh
Application granted granted Critical
Publication of CN103870316B publication Critical patent/CN103870316B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及一种智能操作***上的JAVA虚拟机实现方法,将JAVA虚拟机软件分为以下两个部分:启动入口部分;CVM虚拟机部分;启动入口部分和CVM虚拟机部分之间,通过JNI和共享内存空间等方式通信。将JAVA虚拟机的运行环境结构分为两个层次:Linux用户层和Dalvik虚拟机层;其中:启动入口部分运行在Dalvik虚拟机层;CVM虚拟机部分运行在Linux用户层。本发明所述的实现方法,在Android***中内置JAVA虚拟机软件,JAVA虚拟机软件可以独立、高效地运行,能独立的解释、运行J2ME软件包或其他J2ME程序,确保了对J2ME程序的完整兼容性和稳定性,J2ME程序通过JAVA虚拟机独立启动,直接运行,实时性高,用户体验更佳。

Description

一种智能操作***上的JAVA虚拟机实现方法
技术领域
本发明涉及JAVA虚拟机及J2ME(JAVA2Micro Edition)技术领域,具体说是一种智能操作***上的JAVA虚拟机实现方法。尤指可以在智能操作***平台之上运行J2ME软件包的JAVA虚拟机实现方法。所述智能操作***平台特指Android及其衍生操作***平台。
背景技术
Android是一种以Linux为基础的开源智能操作***,主要使用于便携设备、智能电视、平板电脑、机顶盒等。Android操作***最初由Andy Rubin开发,最初主要支持手机。2005年由Google收购注资,并组建开放手机联盟开发改良,逐渐扩展到平板电脑及其他领域。Android***由Linux操作***内核、Dalvik虚拟机、支撑库、应用程序框架及应用程序组成。由于它具有良好的开放性和强大的功能,当前Android操作***除了在手机等靠电池供电的嵌入式设备中广泛应用外,也逐步应用到数字电视等使用交流电源的设备和产品。
IPTV,是一种利用宽带有线电视网,集互联网、多媒体、通讯等多种技术于一体,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。IPTV业务大致分为基本业务和增值业务两大类,IPTV的基本业务是指以视听内容为主的视频内容服务,包括直播、点播、轮播、时移等;而IPTV的增值业务包括游戏、即时通信、电子支付以及卡拉OK等,其中,游戏分为网页游戏和JAVA游戏两种,是IPTV增值业务的重要组成部分。
目前接入IPTV平台的智能机顶盒大多采用Android***,而基于Android***的智能机顶盒需要满足能接入并使用原有IPTV平台业务,这里就包括能正常运行IPTV平台的JAVA游戏,IPTV平台的JAVA游戏为J2ME程序,通常是一个J2ME软件包。原来接入IPTV平台的机顶盒基本为基于嵌入式Linux的标清或高清机顶盒,运行JAVA游戏(J2ME软件包)的JAVA虚拟机也是基于嵌入式Linux***而开发。现在基于Android***的智能机顶盒也需要能支持并运行IPTV平台的JAVA游戏(J2ME软件包),但基于嵌入式Linux***而开发的JAVA虚拟机不适用于Android***。
目前在基于Android***的智能机顶盒上运行JAVA游戏(J2ME软件包)已有一种转换式解决方案,该转换式解决方案利用J2ME软件包与Android***自身应用程序在结构上相似的特点,利用不开源的商用软件对已有的J2ME软件包进行转换,将JAVA游戏的J2ME软件包变换为Android***软件包文件,然后再将该Android***软件包文件在终端设备的Android***上安装使用。该方法应用在智能机顶盒上有几个明显的弊端:
1.兼容性缺乏保证,无法保证针对所有JAVA游戏的J2ME软件包都可以顺利转换。
2.实时性不足,通过该方法运行JAVA游戏的J2ME软件包,需要经过转换、安装、运行3个阶段,耗费JAVA游戏启动时间,用户体验不佳。
3.开放性不足,该方法核心部分为不开源的商业软件,不可能完全针对平台需求进行及时修改。
现有技术中对这些问题暂无进一步的解决方案。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种智能操作***上的JAVA虚拟机实现方法,所述智能操作***特指Android及其衍生操作***,通过在Android***中内置JAVA虚拟机软件,且对JAVA虚拟机软件的构成以及JAVA虚拟机的运行环境结构进行细化,以确保JAVA虚拟机软件可以独立、高效地运行。
为达到以上目的,本发明采取的技术方案是:
一种智能操作***上的JAVA虚拟机实现方法,其特征在于:首先将JAVA虚拟机软件分为以下两个部分:
启动入口部分,负责图形显示、音频播放、用户输入处理等工作,作为正常的Android应用程序的启动入口;
CVM虚拟机部分,以动态库的形式工作在Linux用户空间,负责J2ME软件包的解析和运行,执行J2ME软件包的绘图、音频逻辑,并根据J2ME软件包逻辑处理用户输入事件;
启动入口部分和CVM虚拟机部分之间,通过JNI和共享内存空间等方式通信,使JAVA虚拟机能在智能操作***平台之上运行J2ME软件包。
在上述技术方案的基础上,所述智能操作***特指Android及其衍生操作***。
在上述技术方案的基础上,所述智能操作***运行在接入IPTV平台的智能机顶盒中。
在上述技术方案的基础上,所述智能机顶盒为标清或高清机顶盒。
在上述技术方案的基础上,将JAVA虚拟机的运行环境结构分为两个层次:Linux用户层和Dalvik虚拟机层;其中:
启动入口部分的Android应用程序模块及其JNI模块运行在Dalvik虚拟机层,
CVM虚拟机部分的CVM虚拟机模块及其JNI模块运行在Linux用户层;
启动入口部分和CVM虚拟机部分的JNI模块同为C/C++实现,并且公用内存空间,他们之间的通信作为Linux用户层和Dalvik虚拟机层这两个层次之间的桥梁使用。
在上述技术方案的基础上,JAVA虚拟机运行J2ME软件包的工作过程包括:
启动和运行流程,
JAVA虚拟机图形显示处理流程,
JAVA虚拟机音频播放处理流程,
JAVA用户输入处理流程。
在上述技术方案的基础上,启动和运行流程包含以下步骤:
步骤A1,Android应用程序模块启动,启动参数中设置jar软件包文件路径;
步骤A2,CVM虚拟机模块被编译为Linux动态库,通过AndroidJNI装载CVM虚拟机的动态库,并获取其入口函数来启动CVM虚拟机模块,此时将步骤A1中获取到的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应用程序模块收到退出命令,退出程序流程结束。
在上述技术方案的基础上,JAVA虚拟机图形显示处理流程包含以下步骤:
步骤B1,程序启动后,Android应用程序模块初始化应用程序视图,视图中使用一块Android.graphics.Bitmap绘图;
步骤B2,通过Android JNI模块初始化步骤B1中所述的Android.graphics.Bitmap结构;
步骤B3,CVM虚拟机模块通过共享内存的方式取得绘图缓冲的实际指针,即步骤B2中所初始化的Android.graphics.Bitmap结构中的实际绘图内存;
步骤B4,CVM虚拟机模块根据所运行的J2ME程序逻辑,完成图象解码、图形绘制、文本绘制等操作;
步骤B5,将步骤B4中绘制完成的图像处理结果输出到步骤B3所取得的绘图缓冲中;
步骤B6,绘图完成,通过CVM JNI模块发出要求刷新屏幕的指令;
步骤B7,Android JNI模块收到刷新屏幕的指令,通知Android应用程序模块绘图缓冲已更新;
步骤B8,拉伸绘图缓冲的内容以适应显示设备,并刷新视图,完成图像的显示。
在上述技术方案的基础上,JAVA虚拟机音频播放处理流程包含以下步骤:
步骤C1,程序启动后,Android应用程序模块初始化Android播放器Android.media.MediaPlayer;
步骤C2,CVM虚拟机模块根据所运行的J2ME程序逻辑,发出播放,停止等命令;
步骤C3,在CVM JNI模块中,将播放、停止等命令封装为命令字符串;
步骤C4,CVM JNI模块将命令字符串发送到Android JNI模块处理;
步骤C5,Android JNI模块将命令字符串发送到Android应用程序模块;
步骤C6,Android应用程序模块收到并解析命令字符串,根据命令的内容顺序执行播放、停止等操作,实现音频媒体的播放。
在上述技术方案的基础上,JAVA用户输入处理流程包含以下步骤:
步骤D1,Android应用程序模块接收用户按键输入,并保存键值;
步骤D2,在文件***中创建虚拟键盘设备文件的文件,该文件会被当做一个键盘设备使用;
步骤D3,按照Linux输入设备文件结构定义,把用户按键输入转换,写入步骤D2里创建的虚拟设备文件中;
步骤D4,CVM虚拟机模块创建监听线程,监听步骤D2里创建的虚拟设备文件,一旦有输入信息便读取并处理;
步骤D5,读取到用户输入键值后,将输入键值转换为J2ME规定的按键键值并交由CVM虚拟机处理,CVM虚拟机模块会将其转换为按键事件并最终发送到J2ME程序逻辑中。
与现有技术相比,本发明采用与基于嵌入式Linux***的标清或高清机顶盒的作法一致,通过在Android***中内置JAVA虚拟机软件,且对JAVA虚拟机软件的构成以及JAVA虚拟机的运行环境结构进行细化,使JAVA虚拟机软件能独立的解释、运行J2ME软件包或其他J2ME程序,确保了对J2ME程序的完整兼容性和稳定性。例如:当应用在基于Android***的智能机顶盒上时,JAVA虚拟机能在智能操作***平台之上运行J2ME软件包,可以确保对IPTV平台的JAVA游戏的完整兼容性和稳定性。
与现有技术相比,本发明运行J2ME软件包时不需要将原生态的J2ME软件包进行转化、安装、启动运行等过程,J2ME软件包通过JAVA虚拟机独立启动,直接运行,实时性高,用户体验更佳。
综上所述,本发明所述的实现方法,在Android***中内置JAVA虚拟机软件,JAVA虚拟机软件可以独立、高效地运行,能独立的解释、运行J2ME软件包或其他J2ME程序,确保了对J2ME程序的完整兼容性和稳定性,J2ME程序通过JAVA虚拟机独立启动,直接运行,实时性高,用户体验更佳。
附图说明
本发明有如下附图:
图1是表示本发明的JAVA虚拟机运行环境结构示意图。
图2是表示J2ME程序启动和运行流程图。
图3是表示JAVA虚拟机图形显示处理流程图。
图4是表示JAVA虚拟机音频播放处理流程。
图5是表示JAVA用户输入处理流程。
具体实施方式
以下结合附图对本发明作进一步详细说明。
本发明所述的智能操作***上的JAVA虚拟机实现方法,首先将JAVA虚拟机软件分为以下两个部分:
启动入口部分,负责图形显示、音频播放、用户输入处理等工作,作为正常的Android应用程序的启动入口;
CVM虚拟机部分,CVM即C virtual machine,是JAVA虚拟机嵌入式版本,以动态库的形式工作在Linux用户空间,负责J2ME软件包的解析和运行,执行J2ME软件包的绘图、音频逻辑,并根据J2ME软件包逻辑处理用户输入事件;
启动入口部分和CVM虚拟机部分之间,通过JNI(JAVA NATIVEINTERFACE,JAVA本地调用技术)和共享内存空间等方式通信。
在上述技术方案的基础上,将JAVA虚拟机的运行环境结构分为两个层次:Linux用户层和Dalvik虚拟机层(Google专为Android***开发的JAVA虚拟机使用.dex格式的JAVA程序);其中:
启动入口部分的Android应用程序模块及其JNI模块(AndroidJNI模块)运行在Dalvik虚拟机层,
CVM虚拟机部分的CVM虚拟机模块及其JNI模块(CVM JNI模块)运行在Linux用户层;
启动入口部分和CVM虚拟机部分的JNI模块同为C/C++实现,并且公用内存空间,他们之间的通信作为Linux用户层和Dalvik虚拟机层这两个层次之间的桥梁使用,参见图1。
本发明所述的智能操作***上的JAVA虚拟机实现方法,JAVA虚拟机运行J2ME软件包(J2ME程序)的工作过程包括:
启动和运行流程(J2ME程序启动和运行流程),
JAVA虚拟机图形显示处理流程,
JAVA虚拟机音频播放处理流程,
JAVA用户输入处理流程。
以下逐一说明。
本发明的启动和运行流程包含以下步骤(参见图2):
步骤A1,Android应用程序模块启动,启动参数中设置jar(JAVAArchive,是指将JAVA类文件和各种资源文件以及meta-data打包发布的文件格式)软件包文件路径;
步骤A2,CVM虚拟机模块被编译为Linux动态库,通过AndroidJNI装载CVM虚拟机的动态库,并获取其入口函数来启动CVM虚拟机模块,此时将步骤A1中获取到的jar软件包文件路径传递给CVM虚拟机的动态库;
步骤A3,CVM虚拟机模块根据步骤A2中获取到的jar软件包文件路径来读取jar文件,解析出其中的类文件,并加载J2ME(JAVAPlatform,Micro Edition专为手机、机顶盒等嵌入式设备提供的JAVA标准)类入口点,从而启动程序(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应用程序模块收到退出命令,退出程序流程结束。
JAVA虚拟机图形显示处理流程包含以下步骤(参见图3):
步骤B1,程序(J2ME程序)启动后,Android应用程序模块初始化应用程序视图(派生自Android.view.SurfaceView),视图中使用一块Android.graphics.Bitmap绘图;
所述Android.graphics.Bitmap结构即绘图缓冲;
步骤B2,通过Android JNI模块初始化步骤B1中所述的Android.graphics.Bitmap结构,即初始化绘图缓冲;
步骤B3,CVM虚拟机模块通过共享内存的方式取得绘图缓冲的实际指针,即步骤B2中所初始化的Android.graphics.Bitmap结构中的实际绘图内存;
步骤B4,CVM虚拟机模块根据所运行的J2ME程序逻辑,完成图象解码、图形绘制、文本绘制等操作;
步骤B5,将步骤B4中绘制完成的图像处理结果输出到步骤B3所取得的绘图缓冲中;
步骤B6,绘图完成,通过CVM JNI模块发出要求刷新屏幕的指令;
步骤B7,Android JNI模块收到刷新屏幕的指令,通知Android应用程序模块绘图缓冲已更新;
步骤B8,拉伸绘图缓冲的内容以适应显示设备,并刷新视图(即步骤B1中初始化的Android.view.SurfaceView衍生类),完成图像的显示。
JAVA虚拟机音频播放处理流程包含以下步骤(参见图4):
步骤C1,程序启动后,Android应用程序模块初始化Android播放器(Android.media.MediaPlayer);
步骤C2,CVM虚拟机模块根据所运行的J2ME程序逻辑,发出播放,停止等命令;
步骤C3,在CVM JNI模块中,将播放、停止等命令封装为命令字符串;
步骤C4,CVM JNI模块将命令字符串发送到Android JNI模块处理;
步骤C5,Android JNI模块将命令字符串发送到Android应用程序模块;
步骤C6,Android应用程序模块收到并解析命令字符串,根据命令的内容顺序执行播放、停止等操作,实现音频媒体的播放。
JAVA用户输入处理流程包含以下步骤(参见图5):
步骤D1,程序启动后,Android应用程序模块接收用户按键输入,并保存键值;
步骤D2,在文件***中创建虚拟键盘设备文件的文件,该文件(虚拟设备文件)会被当做一个键盘设备使用;
步骤D3,按照Linux输入设备文件结构定义,把用户按键输入转换,写入步骤D2里创建的虚拟设备文件中;
步骤D4,CVM虚拟机模块创建监听线程,监听步骤D2里创建的虚拟设备文件,一旦有输入信息便读取并处理;
步骤D5,读取到用户输入键值后,将输入键值转换为J2ME规定的按键键值并交由CVM虚拟机处理,CVM虚拟机模块会将其转换为按键事件并最终发送到J2ME程序逻辑中。
本发明所述的JAVA虚拟机实现方法,不但适用于智能机顶盒等嵌入式终端设备实现运行JAVA游戏,还适用于基于Android***的其它智能设备上实现运行J2ME程序的JAVA虚拟机实现。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本明所附的权利要求的保护范围。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

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虚拟机实现方法,其特征在于:启动和运行流程包含以下步骤:
步骤A1,Android应用程序模块启动,启动参数中设置jar软件包文件路径;
步骤A2,CVM虚拟机模块被编译为Linux动态库,通过AndroidJNI装载CVM虚拟机的动态库,并获取其入口函数来启动CVM虚拟机模块,此时将步骤A1中获取到的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虚拟机图形显示处理流程包含以下步骤:
步骤B1,程序启动后,Android应用程序模块初始化应用程序视图,视图中使用一块Android.graphics.Bitmap结构,即绘图缓冲;
步骤B2,通过Android JNI模块初始化步骤B1中所述的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虚拟机音频播放处理流程包含以下步骤:
步骤C1,程序启动后,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用户输入处理流程包含以下步骤:
步骤D1,Android应用程序模块接收用户按键输入,并保存键值;
步骤D2,在文件***中创建虚拟键盘设备文件的文件,该文件会被当做一个键盘设备使用;
步骤D3,按照Linux输入设备文件结构定义,把用户按键输入转换,写入步骤D2里创建的虚拟设备文件中;
步骤D4,CVM虚拟机模块创建监听线程,监听步骤D2里创建的虚拟设备文件,一旦有输入信息便读取并处理;
步骤D5,读取到用户输入键值后,将输入键值转换为J2ME规定的按键键值并交由CVM虚拟机处理,CVM虚拟机模块会将其转换为按键事件并最终发送到J2ME程序逻辑中。
CN201410146039.4A 2014-04-11 2014-04-11 一种智能操作***上的java虚拟机实现方法 Active CN103870316B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410146039.4A CN103870316B (zh) 2014-04-11 2014-04-11 一种智能操作***上的java虚拟机实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410146039.4A CN103870316B (zh) 2014-04-11 2014-04-11 一种智能操作***上的java虚拟机实现方法

Publications (2)

Publication Number Publication Date
CN103870316A CN103870316A (zh) 2014-06-18
CN103870316B true CN103870316B (zh) 2016-09-07

Family

ID=50908883

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410146039.4A Active CN103870316B (zh) 2014-04-11 2014-04-11 一种智能操作***上的java虚拟机实现方法

Country Status (1)

Country Link
CN (1) CN103870316B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105204881A (zh) * 2014-06-25 2015-12-30 中兴通讯股份有限公司 在Android***上运行J2me应用程序的方法及设备
CN104267983B (zh) * 2014-09-23 2020-07-17 上海卓盟信息科技有限公司 基于安卓平台的重度游戏封包方法
CN105589701B (zh) * 2014-10-21 2019-03-08 阿里巴巴集团控股有限公司 一种客户端应用程序局部更新方法及装置
CN104991784A (zh) * 2015-07-30 2015-10-21 惠州华阳通用电子有限公司 应用程序的音频处理方法及装置
CN106991017B (zh) * 2017-04-05 2020-12-25 深圳天珑无线科技有限公司 事件处理方法及装置
CN107566365B (zh) * 2017-08-31 2020-11-03 深圳市九洲电器有限公司 机顶盒网络应用安全保护方法及***
CN111114320B (zh) * 2019-12-27 2022-11-18 深圳市众鸿科技股份有限公司 一种车载智能座舱共享显示方法及***
CN114020159A (zh) * 2021-09-27 2022-02-08 北京智象信息技术有限公司 一种Linux***内核虚拟键盘的定制方法、装置、设备和介质
CN114302243A (zh) * 2021-11-30 2022-04-08 四川天邑康和通信股份有限公司 一种实现iptv机顶盒运行j2me游戏音频文件的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339508A (zh) * 2008-08-18 2009-01-07 深圳华为通信技术有限公司 一种Java2微型版应用的运行方法和装置
CN101489175A (zh) * 2009-02-24 2009-07-22 诚迈科技(南京)有限公司 基于cvm虚拟机技术的无线游戏平台
US8627316B2 (en) * 2001-05-30 2014-01-07 Blackberry Limited Mobile communications device application processing system

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8924986B2 (en) * 2011-09-01 2014-12-30 American Megatrends, Inc. Methods, devices and computer program products for confluence of multiple operating systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8627316B2 (en) * 2001-05-30 2014-01-07 Blackberry Limited Mobile communications device application processing system
CN101339508A (zh) * 2008-08-18 2009-01-07 深圳华为通信技术有限公司 一种Java2微型版应用的运行方法和装置
CN101489175A (zh) * 2009-02-24 2009-07-22 诚迈科技(南京)有限公司 基于cvm虚拟机技术的无线游戏平台

Also Published As

Publication number Publication date
CN103870316A (zh) 2014-06-18

Similar Documents

Publication Publication Date Title
CN103870316B (zh) 一种智能操作***上的java虚拟机实现方法
CN110737840B (zh) 语音控制方法及显示设备
CN107957911B (zh) 组件调用的方法和装置、组件数据处理的方法和装置
CN111510781A (zh) 显示设备待机的控制方法及显示设备
CN105824900A (zh) 一种基于react-native的页面展示***
CN107015862A (zh) 用于具有不同能力的核心的线程和/或虚拟机调度
WO2015149664A1 (en) Web page access method and apparatus
EP3274831A1 (en) Application container for live migration of mobile applications
CN107436786A (zh) 应用启动优化方法、装置及计算机可读存储介质
CN105740010B (zh) 一种开机方法及终端设备
CN110413347B (zh) 应用程序中广告的处理方法、装置、存储介质及终端
KR20150072819A (ko) 전자장치에서 디지털 콘텐츠를 디스플레이하기 위한 방법 및 장치
CN110519628A (zh) 一种画中画显示方法以及显示设备
CN110268718A (zh) 用于移动设备上视频流媒体和播放的内容感知的节能
CN102096598A (zh) 一种虚拟机***及其实现方法
CN105743955A (zh) 一种扩展JavaScript对象方法
CN103577226B (zh) 一种IOS和Android平台上的组件式游戏构建方法
CN108874412A (zh) 用于更新界面布局的方法、装置、设备及***
CN102693238A (zh) Widget应用方法、***及多媒体终端
CN104866291A (zh) 一种基于Android的手机2D游戏引擎
CN102904925B (zh) 一种基于三屏互动的跨平台widget中间件***
CN103581315A (zh) 一种移动终端天气显示***及方法
CN101729848B (zh) 基于机顶盒的游戏功能实现方法
CN108153527A (zh) 一种设备输出分辨率的配置方法
CN109933735A (zh) 调度方法、网页渲染方法、网页显示方法及其设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant