CN101354662B - 一种Java软件运行的方法和装置 - Google Patents
一种Java软件运行的方法和装置 Download PDFInfo
- Publication number
- CN101354662B CN101354662B CN2008102118500A CN200810211850A CN101354662B CN 101354662 B CN101354662 B CN 101354662B CN 2008102118500 A CN2008102118500 A CN 2008102118500A CN 200810211850 A CN200810211850 A CN 200810211850A CN 101354662 B CN101354662 B CN 101354662B
- Authority
- CN
- China
- Prior art keywords
- signal
- virtual machine
- time
- java virtual
- task
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 claims abstract description 15
- 230000001960 triggered effect Effects 0.000 claims description 13
- 230000004913 activation Effects 0.000 claims description 11
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 6
- 238000002054 transplantation Methods 0.000 abstract 3
- 238000011161 development Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002618 waking effect Effects 0.000 description 3
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 208000019116 sleep disease Diseases 0.000 description 1
- 230000035922 thirst Effects 0.000 description 1
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及嵌入式技术领域,特别涉及一种Java软件运行的方法和装置,用以解决现有技术中存在的在运行Java软件时,需要应用级定时器进行定时,从而给Java虚拟机执行相应的事件带来严重时延的问题。本发明实施例的方法包括:移植层将来自Java虚拟机的包含时间的计时信号发送给操作层;所述操作层在所述时间到达后,通知所述移植层;所述移植层在确定所述时间到达后,生成触发任务信号,并将所述触发任务信号发送给Java虚拟机;所述Java虚拟机在收到所述触发任务信号后,进行任务处理。采用本发明实施例能够减少Java虚拟机执行相应的事件带来的时延,提高用户体验。
Description
技术领域
本发明涉及嵌入式技术领域,特别涉及一种Java软件运行的方法和装置。
背景技术
目前Java软件已经在各个领域得到了广泛的应用,尤其是无线移动终端领域,全球大多数移动运营商已经推出了Java下载服务。无线手持设备市场对Java产生了巨大的需求增长,目前几乎所有移动终端都支持Java。
逐渐扩大的消费群体,使得运营商、内容提供商以及移动终端制造商都强烈渴望Java性能更加强劲,支持更多更复杂的应用,为用户带来更丰富多彩的增值应用,满足各种各样的信息需求。
目前Java虚拟机在运行Java软件时,需要在设定的时间完成对应的事件,比如:1ms刷新一次屏幕,这是通过应用级定时器实现,具体步骤包括:
1)Java虚拟机确定需要定时器的时间,向移植层发送一个包含时间的计时信号。
2)移植层将该计时信号发送给应用开发平台。
3)应用开发平台将该计时信号发送给嵌入式操作系统。
4)嵌入式操作系统根据该计时信号中的时间进行计时,在时间到达后向应用开发平台发送到时信号。
5)应用开发平台收到该到时信号后,生成触发事件信号,并发送给移植层。
6)移植层将收到的该触发事件信号发送给Java虚拟机。
7)Java虚拟机在收到该触发事件信号后,执行相应的事件。
如果应用开发平台需要处理多个信号(由其他软件或应用程序产生的信号),这是就需要将收到的信号加入到队列中,一个一个进行处理,所以对于步骤3中的应用开发平台发送时间信号和步骤5中的应用开发平台生成触发事件信号会造成严重的时延,这样对于后续的步骤在时间上都会造成影响,从而直接影响到Java虚拟机执行事件的时间。
综上所述,目前在运行Java软件时,需要应用级定时器进行定时,从而给Java虚拟机执行相应的事件带来严重的时延。
发明内容
本发明实施例提供一种Java软件运行的方法和装置,用以解决现有技术中存在的在运行Java软件时,需要应用级定时器进行定时,从而给Java虚拟机执行相应的事件带来严重时延的问题。
本发明实施例提供的一种Java软件运行的方法包括:
移植层将来自Java虚拟机的包含时间的计时信号发送给操作层;
所述操作层在所述时间到达后,通知所述移植层;
所述移植层在确定所述时间到达后,生成触发任务信号,并将所述触发任务信号发送给Java虚拟机;
所述Java虚拟机在收到所述触发任务信号后,进行任务处理。
本发明实施例提供的一种Java软件运行的系统包括:
移植器,用于将来自Java虚拟机的包含时间的计时信号发送给操作器,在确定所述时间到达后,生成触发任务信号,并将所述触发任务信号发送给Java虚拟机;
操作器,用于在所述时间到达后,通知所述移植器;
Java虚拟机,用于在收到所述触发任务信号后,进行任务处理。
本发明实施例提供的一种移植器包括:
第一发送模块,用于将来自Java虚拟机的包含时间的计时信号发送给操作器;
生成模块,用于在确定所述时间到达后,生成触发任务信号;
第二发送模块,用于将所述触发任务信号发送给Java虚拟机。
本发明实施例移植层将来自Java虚拟机的包含时间的计时信号发送给操作层;所述操作层在所述时间到达后,通知所述移植层;所述移植层在确定所述时间到达后,生成触发任务信号,并将所述触发任务信号发送给Java虚拟机;所述Java虚拟机在收到所述触发任务信号后,进行任务处理。由于在运行Java软件时,采用系统级定时器进行定时,不需要应用开发平台进行处理,从而减少了Java虚拟机执行相应的事件带来的时延,提高了用户体验。
附图说明
图1为本发明实施例Java软件运行的系统结构示意图;
图2为本发明实施例移植器的结构示意图;
图3为本发明实施例Java软件运行的方法流程示意图。
具体实施方式
本发明实施例移植层将来自Java虚拟机的包含时间的计时信号发送直接给操作层;操作层在时间到达后,通知移植层;移植层再向Java虚拟机发送触发任务信号,通知Java虚拟机进行任务处理,由于不需要应用开发平台进行处理,从而减少了Java虚拟机执行相应的事件带来的时延。
下面结合说明书附图对本发明实施例作进一步详细描述。
如图1所示,本发明实施例Java软件运行的系统包括:移植器10、操作器20和Java虚拟机30。
移植器10,用于将来自Java虚拟机30的包含时间的计时信号发送给操作器20,在确定计时信号包含的时间到达后,生成触发任务信号,并将该触发任务信号发送给Java虚拟机30。
在具体实施过程中,移植器10在收到来自操作器20的到时信号后,确定计时信号包含的时间到达,并生成触发任务信号;
如果Java软件运行的系统支持多线程,则移植器10还可以在收到来自Java虚拟机30的包含时间的计时信号后,为该计时信号生成一个睡眠线程(可以将该睡眠线程设置在移植器10中;也可以设置在移植器10外,但需要保证移植器10能够查看该睡眠线程),并为该睡眠线程分配一个线程标识,将该线程标识置于该计时信号中,向操作器20发送,这样移植器10需要查看睡眠线程是否被触发(即睡眠线程是否被唤醒),并在睡眠进程被触发后,确定计时信号包含的时间到达,并生成触发任务信号。
如果设置睡眠线程,移植器10只需要在睡眠线程被唤醒时生成触发任务信号,而在等待的这段时间可以处理其它线程,从而提高了移植器10运行效率。
需要说明的是,本实施例移植器10确定计时信号包含的时间到达并不局限于上述两种,任何能够让移植器10确定计时信号包含的时间到达的方式都适用本实施例。
操作器20,用于在收到来自移植器10的包含时间的计时信号后,开始计时,在时间到达后,通知移植器10。
在具体实施过程中,如果操作器20收到的计时信号中还包含线程标识,则操作器20在时间到达后,触发线程标识对应的睡眠线程(即唤醒睡眠线程),比如:发送一个唤醒信号;
如果操作器20收到的计时信号中不包含线程标识,则操作器20在时间到达后,生成到时信号,并将该到时信号发送给移植器10。
Java虚拟机30,用于在收到来自移植器10的触发任务信号后,进行任务处理。
在具体实施过程中,进行的任务处理是与发送的包含时间的计时信号有关的,比如:Java虚拟机30需要在10ms后进行刷屏,则计时信号中包含的时间为10ms,在收到触发任务信号后,进行刷屏处理;
Java虚拟机30需要在20ms后发送一信号,则计时信号中包含的时间为20ms,在收到触发任务信号后,发送该信号。
如果Java虚拟机30进行的任务处理需要读取移植器中的代码,则述Java虚拟机30在收到触发任务信号后,确定移植器10中处于激活状态的代码,并读取处于激活状态的代码进行任务处理。
由于移植器10中的代码包括运行代码和调试代码,而调试代码是编程人员需要对Java软件进行调试时才需要用到的,对于Java虚拟机30在运行Java软件是没有任何用处。
而目前的处理方式是将移植器10中的调试代码保留或删除,如果保留调试代码,不会影响Java虚拟机30正常运行Java软件,但是Java虚拟机也会读取调试代码,这样就会造成Java虚拟机30读取和处理速度降低;如果删除调试代码,编程人员在需要对Java软件进行调试时必须在手动输入所有的调试代码。
本实施例对移植器10中的代码设置状态,即将运行代码设置为激活状态,将调试代码设置为锁定状态,Java虚拟机30只需要读取处于激活状态的代码,从而提高了Java虚拟机30读取和处理速度;在调试人员需要进行调试时,只需要将调试代码设置从锁定状态设置为激活状态即可。
如图2所示,本发明实施例移植器包括:第一发送模块100、生成模块110和第二发送模块120。
第一发送模块100,用于将来自Java虚拟机的包含时间的计时信号发送给操作器。
生成模块110,用于在确定时间到达后,生成触发任务信号。
第二发送模块120,用于将生成模块110生成的触发任务信号发送给Java虚拟机。
其中,生成模块110可以根据收到的到时信号确定时间到达,还可以根据睡眠进程被触发确定时间到达。
如果生成模块110根据收到的到时信号确定时间到达,则生成模块110还可以进一步包括:接收模块1100和第一信号生成模块1110。
接收模块1100,用于接收来自操作层的到时信号。
第一信号生成模块1110,用于在接收模块1100收到到时信号后,生成触发任务信号。
如果生成模块110根据睡眠进程被触发确定时间到达,则第一发送模块100还可以进一步包括:处理模块1000和封装模块1010。
处理模块1000,用于为收到的包含时间的计时信号生成一个睡眠线程,并为该睡眠线程分配线程标识。
封装模块1010,用于将线程标识置于收到的计时信号中,向操作器发送。
则生成模块110还可以进一步包括:查看模块1120和第二信号生成模块1130。
查看模块1120,用于查看处理模块1000生成的睡眠线程是否被触发。
第二信号生成模块1130,用于在查看模块1120确定睡眠线程被触发后,生成触发任务信号。
需要说明的是,本实施例移植器确定计时信号包含的时间到达并不局限于上述两种,任何能够让移植器确定计时信号包含的时间到达的方式都适用本实施例。
如图3所示,本发明实施例Java软件运行的方法包括下列步骤:
步骤300、移植层将来自Java虚拟机的包含时间的计时信号发送给操作层。
步骤301、操作层在收到来自移植层的包含时间的计时信号后,开始计时,在时间到达后,通知移植层。
步骤302、移植层在确定时间到达后,生成触发任务信号,并将触发任务信号发送给Java虚拟机。
步骤303、Java虚拟机在收到来自移植层的触发任务信号后,进行任务处理。
在具体实施过程中,进行的任务处理是与发送的包含时间的计时信号有关的,比如:Java虚拟机需要在10ms后进行刷屏,则计时信号中包含的时间为10ms,在收到触发任务信号后,进行刷屏处理;
Java虚拟机需要在20ms后发送一信号,则计时信号中包含的时间为20ms,在收到触发任务信号后,发送该信号。
如果Java虚拟机进行的任务处理需要读取移植器中的代码,则述Java虚拟机在收到触发任务信号后,确定移植层中处于激活状态的代码,并读取处于激活状态的代码进行任务处理。
其中,步骤302中,移植层可以根据收到的到时信号确定时间到达,还可以根据睡眠进程被触发确定时间到达。
如果步骤302中,根据收到的到时信号确定时间到达,则步骤301还可以进一步包括:
操作层在时间到达后,生成到时信号,并将到时信号发送给移植层。
则步骤302还可以进一步包括:
移植层在收到来自操作层的到时信号后,确定计时信号包含的时间到达,并生成触发任务信号,将该触发任务信号发送给Java虚拟机。
如果步骤302中,根据睡眠进程被触发确定时间到达,则步骤300还可以进一步包括:
移植层在收到来自Java虚拟机的包含时间的计时信号后,为收到的计时信号生成一个睡眠线程,并为该睡眠线程分配线程标识,将该线程标识置于计时信号中,向操作层发送。
具体的,可以将该睡眠线程设置在移植层中;也可以设置在移植层外,但需要保证移植层能够查看该睡眠线程。
步骤301还可以进一步包括:
操作层在收到包含时间和线程标识的计时信号,在时间到达后,触发线程标识对应的睡眠线程(即唤醒睡眠线程),比如:发送一个唤醒信号。
步骤302还可以进一步包括:
移植层在睡眠进程被触发(即唤醒睡眠被唤醒)后,确定计时信号包含的时间到达,并生成触发任务信号,将该触发任务信号发送给Java虚拟机。
如果设置睡眠线程,移植器10只需要在睡眠线程被唤醒时生成触发任务信号,而在等待的这段时间可以处理其它线程,从而提高了移植器10运行效率。
需要说明的是,本实施例移植器确定计时信号包含的时间到达并不局限于上述两种,任何能够让移植器确定计时信号包含的时间到达的方式都适用本实施例。
本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行。这样,本发明不限制于任何特定的硬件和软件结合。
从上述实施例中可以看出:本发明实施例移植层将来自Java虚拟机的包含时间的计时信号发送给操作层;所述操作层在所述时间到达后,通知所述移植层;所述移植层在确定所述时间到达后,生成触发任务信号,并将所述触发任务信号发送给Java虚拟机;所述Java虚拟机在收到所述触发任务信号后,进行任务处理。由于在运行Java软件时,采用系统级定时器进行定时,不需要应用开发平台进行处理,从而减少了Java虚拟机执行相应的事件带来的时延,提高了用户体验。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (11)
1.一种Java软件运行的方法,其特征在于,该方法包括:
移植层将来自Java虚拟机的包含时间的计时信号发送给操作层;
所述操作层在所述时间到达后,通知所述移植层;
所述移植层在确定所述时间到达后,生成触发任务信号,并将所述触发任务信号发送给Java虚拟机;
所述Java虚拟机在收到所述触发任务信号后,进行任务处理。
2.如权利要求1所述的方法,其特征在于,所述操作层在所述时间到达后,通知所述移植层包括:
所述操作层在所述时间到达后,生成到时信号,并将所述到时信号发送给所述移植层;
所述移植层在确定所述时间到达后,生成触发任务信号包括:
所述移植层在收到所述到时信号后,生成触发任务信号。
3.如权利要求1所述的方法,其特征在于,所述移植层将来自Java虚拟机的包含时间的计时信号发送给操作层包括:
所述移植层为收到的包含时间的计时信号生成一个睡眠线程,并为所述睡眠线程分配线程标识;
所述移植层将所述线程标识置于所述计时信号中,向所述操作层发送;
所述操作层在所述时间到达后,通知所述移植层包括:
所述操作层在所述时间到达后,触发所述线程标识对应的所述睡眠线程;
所述移植层在确定所述时间到达后,生成触发任务信号包括:
所述移植层在所述睡眠线程被触发后,生成触发任务信号。
4.如权利要求1-3任一权利要求所述的方法,其特征在于,所述Java虚拟机进行任务处理包括:
所述Java虚拟机确定所述移植层中处于激活状态的运行代码,并读取所述处于激活状态的代码进行任务处理。
5.一种Java软件运行的系统,其特征在于,该系统包括:
移植器,用于将来自Java虚拟机的包含时间的计时信号发送给操作器,在确定所述时间到达后,生成触发任务信号,并将所述触发任务信号发送给Java虚拟机;
操作器,用于在所述时间到达后,通知所述移植器;
Java虚拟机,用于在收到所述触发任务信号后,进行任务处理。
6.如权利要求5所述的系统,其特征在于,所述操作器用于:
在所述时间到达后,生成到时信号,并将所述到时信号发送给所述移植器;
所述移植器用于:
所述移植器在收到所述到时信号后,生成触发任务信号。
7.如权利要求5所述的系统,其特征在于,所述移植器用于:
为收到的包含时间的计时信号生成一个睡眠线程,并为所述睡眠线程分配线程标识,将所述线程标识置于所述计时信号中,向所述操作器发送,在所述睡眠线程被触发后,生成触发任务信号;
所述操作器用于:
在所述时间到达后,触发所述线程标识对应的所述睡眠线程。
8.如权利要求5-7任一权利要求所述的系统,其特征在于,所述Java虚拟机用于:
在收到所述触发任务信号后,确定所述移植器中处于激活状态的运行代码,并读取所述处于激活状态的代码进行任务处理。
9.一种移植器,其特征在于,该移植器包括:
第一发送模块,用于将来自Java虚拟机的包含时间的计时信号发送给操作器;
生成模块,用于在确定所述时间到达后,生成触发任务信号;
第二发送模块,用于将所述触发任务信号发送给Java虚拟机。
10.如权利要求9所述的移植器,其特征在于,所述生成模块包括:
接收模块,用于接收来自所述操作器的到时信号;
第一信号生成模块,用于在所述接收模块收到所述到时信号后,生成触发任务信号。
11.如权利要求9所述的移植器,其特征在于,所述第一发送模块包括:
处理模块,用于为收到的包含时间的计时信号生成一个睡眠线程,并为所述睡眠线程分配线程标识;
封装模块,用于将所述线程标识置于所述计时信号中,向所述操作器发送;
所述生成模块包括:
查看模块,用于查看所述睡眠线程是否被触发;
第二信号生成模块,用于在所述查看模块确定所述睡眠线程被触发后,生成触发任务信号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102118500A CN101354662B (zh) | 2008-09-11 | 2008-09-11 | 一种Java软件运行的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102118500A CN101354662B (zh) | 2008-09-11 | 2008-09-11 | 一种Java软件运行的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101354662A CN101354662A (zh) | 2009-01-28 |
CN101354662B true CN101354662B (zh) | 2010-09-22 |
Family
ID=40307480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102118500A Expired - Fee Related CN101354662B (zh) | 2008-09-11 | 2008-09-11 | 一种Java软件运行的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101354662B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105739994B (zh) * | 2016-03-01 | 2018-11-02 | 深圳市茁壮网络股份有限公司 | 一种竖屏电视显示方法、装置和竖屏电视 |
CN108196934B (zh) * | 2016-12-08 | 2022-04-26 | 阿里巴巴集团控股有限公司 | 一种定时器的定时设置方法、装置和虚拟化设备 |
-
2008
- 2008-09-11 CN CN2008102118500A patent/CN101354662B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101354662A (zh) | 2009-01-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104539487B (zh) | 一种基于云平台的系统测试及可靠性评估方法 | |
CN105677477B (zh) | 一种优化应用程序资源的方法、装置及电子设备 | |
US8266577B2 (en) | RFID enhanced operating system (EOS) framework | |
CN103092682A (zh) | 异步网络应用程序处理方法 | |
WO2008113986A3 (en) | Data transmission scheduler | |
CN105068865A (zh) | 任务调度方法和装置 | |
CN102567110A (zh) | 空闲时间业务 | |
US20160283356A1 (en) | Event-driven automation testing for mobile devices | |
CN101719079A (zh) | 一种处理任务的方法及装置 | |
CN102103520A (zh) | 一种定时器的实现方法和装置 | |
CN101354662B (zh) | 一种Java软件运行的方法和装置 | |
CN110515821A (zh) | 基于埋点的事件处理方法、电子设备及计算机存储介质 | |
CN103744730A (zh) | 一种任务调度方法和装置 | |
CN102713836A (zh) | 持久的应用激活和计时器通知 | |
CN102520927A (zh) | 用于嵌入式终端的生成逻辑业务的方法、装置及终端 | |
CN103150673A (zh) | 金融商品报价服务器及系统与方法 | |
Ronngren et al. | On event ordering in parallel discrete event simulation | |
CN101169758A (zh) | 一种Linux操作系统进程调度信息的监测方法 | |
CN102902574B (zh) | 一种多信息流节点的协同处理方法及装置 | |
CN102096772B (zh) | 一种输变电工程的智能客户端系统 | |
CN102622254B (zh) | 电视机宕机处理方法和系统 | |
CN107479962B (zh) | 一种用于任务下发的方法与设备 | |
CN104966191A (zh) | 数值转移方法和装置 | |
CN101551758A (zh) | 一种实现设备管理任务并行工作的系统和方法 | |
CN101394438A (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100922 |