Dalvik虚拟机实现多任务的方法、装置及虚拟机制造方法及图纸

技术编号:15762736 阅读:90 留言:0更新日期:2017-07-05 22:43
本发明专利技术提供了Dalvik虚拟机实现多任务的方法、装置及虚拟机,其中,Dalvik虚拟机运行于单任务操作系统上,方法包括:监测当前处于运行状态的第一Java应用程序的运行时间;当第一Java应用程序的运行时间达到预设时间时,中断第一Java应用程序,并存储第一Java应用程序运行中断时的当前运行数据;加载当前处于未运行状态的第二Java应用程序,并在第二Java应用程序的运行时间达到预设时间时,中断第二Java应用程序,存储第二Java应用程序运行中断时的当前运行数据;加载第一Java应用程序运行中断时的当前运行数据。本发明专利技术使得在单任务实时操作系统上能够实现Java应用程序的多任务运行。

Method, device and virtual machine for realizing multitask by Dalvik virtual machine

The present invention provides a method for Dalvik virtual machine, multi task device and virtual machine, which includes a Dalvik virtual machine running on a single task operating system, method: run time monitoring is currently running the Java application running time; when the first Java application reaches the preset time, the first Java interrupt the application is currently running data and storing the first Java application running interruption; load the current application in second Java is not running, and reached the preset time in the running time of second Java applications, Java interrupt second applications, the current operation data interrupt storage second Java application running current; the first operation data interrupt load Java application runtime. The invention enables the multitask operation of the Java application program on a single task real-time operating system.

【技术实现步骤摘要】
Dalvik虚拟机实现多任务的方法、装置及虚拟机
本专利技术涉及通信控制
,尤其涉及Dalvik虚拟机实现多任务的方法、装置及虚拟机。
技术介绍
当前Java开发平台以Android系统为主流,在智能手机和平板等终端上广泛应用,并且用于Android平台的Dalvik虚拟机可以支持已转换为.dex格式的Java应用程序的运行。dex格式是专为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Dalvik经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik应用作为一个独立的Linux进程执行。另外,借助Android的Linux内核的多任务机制,可以实现Java应用的多任务处理。但是在一些处理能力和存储能力受限的嵌入式的单任务实时操作系统上运行Java应用程序时,由于单任务实时操作系统每次只能执行一个操作,并且支持Java应用程序运行的Dalvik虚拟机也同样的只能支持一个Java应用程序的执行,使得所有的中央处理器CPU都被这唯一的Java应用程序所占有,造成了硬加资源的浪费。
技术实现思路
为了使得在嵌入式的单任务实时操作系统上能够实现多任务运行,本专利技术提供了Dalvik虚拟机实现多任务的方法、装置及虚拟机。为了实现上述目的,本专利技术提供了一种Dalvik虚拟机实现多任务的方法,Dalvik虚拟机运行于单任务操作系统上,所述方法包括:监测当前处于运行状态的第一Java应用程序的运行时间;当所述第一Java应用程序的运行时间达到预设时间时,中断所述第一Java应用程序,并存储所述第一Java应用程序运行中断时的当前运行数据;加载当前处于未运行状态的第二Java应用程序,并在所述第二Java应用程序的运行时间达到所述预设时间时,中断所述第二Java应用程序,存储所述第二Java应用程序运行中断时的当前运行数据;加载第一Java应用程序运行中断时的当前运行数据。可选的,在所述监测当前处于运行状态的第一Java应用程序的运行时间之前,所述方法还包括:将所述第一Java应用程序加载至Davlik虚拟机中。可选的,在所述当所述第一Java应用程序的运行时间达到预设时间时,中断所述第一Java应用程序,并存储所述第一Java应用程序运行中断时的当前运行数据中,存储所述第一Java应用程序运行中断时的当前运行数据具体为:将所述第一Java应用程序运行中断时的当前寄存器中的当前运行数据存储至堆栈中。可选的,所述加载当前处于未运行状态的第二Java应用程序,并在所述第二Java应用程序的运行时间达到所述预设时间时,中断所述第二Java应用程序,存储所述第二Java应用程序运行中断时的当前运行数据之后,所述方法还包括:依次加载当前处于未运行状态的其他Java应用程序,并在每一个Java应用程序的运行时间达到所述预设时间时,中断所述Java应用程序,并存储所述Java应用程序运行中断时的当前运行数据;当所述当前处于未运行状态的其他Java应用程序加载完毕,且存储其他Java应用程序中最后一个Java应用程序运行中断时的当前运行数据时,进入所述加载第一Java应用程序运行中断时的当前运行数据的步骤。依据本专利技术的另一个方面,本专利技术还提供了一种Dalvik虚拟机实现多任务的装置,Dalvik虚拟机运行于单任务操作系统上,所述装置包括:监测模块,用于监测当前处于运行状态的第一Java应用程序的运行时间;存储模块,用于当所述第一Java应用程序的运行时间达到预设时间时,中断所述第一Java应用程序,并存储所述第一Java应用程序运行中断时的当前运行数据;第一加载模块,用于加载当前处于未运行状态的第二Java应用程序,并在所述第二Java应用程序的运行时间达到所述预设时间时,中断所述第二Java应用程序,存储所述第二Java应用程序运行中断时的当前运行数据;第二加载模块,用于加载第一Java应用程序运行中断时的当前运行数据。可选的,所述装置还包括第三加载模块,用于将所述第一Java应用程序加载至Davlik虚拟机中。可选的,所述存储模块具体用于,将所述第一Java应用程序运行中断时的当前寄存器中的当前运行数据存储至堆栈中。可选的,所述装置还包括第四加载模块,用于依次加载当前处于未运行状态的其他Java应用程序,并在每一个Java应用程序的运行时间达到所述预设时间时,中断所述Java应用程序,并存储所述Java应用程序运行中断时的当前运行数据;当所述当前处于未运行状态的其他Java应用程序加载完毕,且存储其他Java应用程序中最后一个Java应用程序运行中断时的当前运行数据时,触发第二加载模块。依据本专利技术的另一个方面,本专利技术还提供了一种虚拟机,所述虚拟机运行于单任务操作系统上,且所述虚拟机包括Dalvik虚拟机实现多任务的装置。本专利技术的有益效果是:本专利技术提供的Dalvik虚拟机实现多任务的方法,Dalvik虚拟机运行于单任务操作系统上,首先监测当前处于运行状态的第一Java应用程序的运行时间,当第一Java应用程序的运行时间达到预设时间时,中断第一Java应用程序,并存储第一Java应用程序运行中断时的当前运行数据,然后加载当前处于未运行状态的第二Java应用程序,并当第二Java应用程序的运行时间达到预设时间时,中断第二Java应用程序,存储第二Java应用程序运行中断时的当前运行数据,最后加载第一Java应用程序运行中断时的当前运行数据。本专利技术通过轮转加载Java应用程序,解决了现有的运行有Dalvik虚拟机的单任务操作系统只能每次执行一个任务的问题,使得单任务操作系统也能够同时执行Java应用程序的多个任务,增加了硬件资源的利用率。附图说明图1表示本专利技术的第一实施例中Dalvik虚拟机实现多任务的方法的步骤流程图;图2表示本专利技术的第一实施例中加载Java应用程序的流程图;图3表示本专利技术的第二实施例中Davlik虚拟机实现多任务的装置的结构框图;图4表示运行于单任务操作系统上的虚拟机的架构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。第一实施例:如图1所示,为本专利技术的第一实施例中Dalvik虚拟机实现多任务的方法的步骤流程图,该方法包括:步骤101,监测当前处于运行状态的第一Java应用程序的运行时间。在本步骤中,具体的,在监测当前处于运行状态的第一Java应用程序的运行时间前,首先将未处于运行状态的第一Java应用程序加载至Dalvik虚拟机中。步骤102,当第一Java应用程序的运行时间达到预设时间时,中断第一Java应用程序,并存储第一Java应用程序运行中断时的当前运行数据。在本步骤中,具体的,当监测到第一Java应用程序的运行时间达到预设时间时,中断第一Java应用程序,并存储第一Java应用程序运行中断时的当前运行数据。具体的,在存储第一Java应用程序运行中断时的当前运行数据时,可以将第一Java应用程序运行中断时的当前寄存器中本文档来自技高网...
Dalvik虚拟机实现多任务的方法、装置及虚拟机

【技术保护点】
一种Dalvik虚拟机实现多任务的方法,其特征在于,Dalvik虚拟机运行于单任务操作系统上,所述方法包括:监测当前处于运行状态的第一Java应用程序的运行时间;当所述第一Java应用程序的运行时间达到预设时间时,中断所述第一Java应用程序,并存储所述第一Java应用程序运行中断时的当前运行数据;加载当前处于未运行状态的第二Java应用程序,并在所述第二Java应用程序的运行时间达到所述预设时间时,中断所述第二Java应用程序,存储所述第二Java应用程序运行中断时的当前运行数据;加载第一Java应用程序运行中断时的当前运行数据。

【技术特征摘要】
1.一种Dalvik虚拟机实现多任务的方法,其特征在于,Dalvik虚拟机运行于单任务操作系统上,所述方法包括:监测当前处于运行状态的第一Java应用程序的运行时间;当所述第一Java应用程序的运行时间达到预设时间时,中断所述第一Java应用程序,并存储所述第一Java应用程序运行中断时的当前运行数据;加载当前处于未运行状态的第二Java应用程序,并在所述第二Java应用程序的运行时间达到所述预设时间时,中断所述第二Java应用程序,存储所述第二Java应用程序运行中断时的当前运行数据;加载第一Java应用程序运行中断时的当前运行数据。2.根据权利要求1所述的方法,其特征在于,在所述监测当前处于运行状态的第一Java应用程序的运行时间之前,所述方法还包括:将所述第一Java应用程序加载至Davlik虚拟机中。3.根据权利要求1所述的方法,其特征在于,在所述当所述第一Java应用程序的运行时间达到预设时间时,中断所述第一Java应用程序,并存储所述第一Java应用程序运行中断时的当前运行数据中,存储所述第一Java应用程序运行中断时的当前运行数据具体为:将所述第一Java应用程序运行中断时的当前寄存器中的当前运行数据存储至堆栈中。4.根据权利要求1所述的方法,其特征在于,所述加载当前处于未运行状态的第二Java应用程序,并在所述第二Java应用程序的运行时间达到所述预设时间时,中断所述第二Java应用程序,存储所述第二Java应用程序运行中断时的当前运行数据之后,所述方法还包括:依次加载当前处于未运行状态的其他Java应用程序,并在每一个Java应用程序的运行时间达到所述预设时间时,中断所述Java应用程序,并存储所述Java应用程序运行中断时的当前运行数据;当所述当前处于未运行状态的其他Java应用程序加载完毕,且存储其他Java应用...

【专利技术属性】
技术研发人员:王左彪余智欣王红梅
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1