著录项信息
专利名称 | 一种显示Java软件运行时产生的图像的方法和装置 |
申请号 | CN200810147547.9 | 申请日期 | 2008-08-28 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2009-01-07 | 公开/公告号 | CN101339497 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F3/147 | IPC分类号 | G;0;6;F;3;/;1;4;7;;;G;0;9;G;5;/;3;6查看分类表>
|
申请人 | 青岛海信移动通信技术股份有限公司 | 申请人地址 | 山东省青岛市崂山区株洲路151号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 青岛海信移动通信技术股份有限公司 | 当前权利人 | 青岛海信移动通信技术股份有限公司 |
发明人 | 张向军 |
代理机构 | 北京同达信恒知识产权代理有限公司 | 代理人 | 黄志华 |
摘要
本发明涉及嵌入式技术领域,特别涉及一种显示Java软件运行时产生的图像的方法和装置,用以解决现有技术中存在的显示Java软件的方式,在刷新屏幕时需要发送刷新请求到队列,并等待处理刷新请求后才能显示,从而延迟图像显示时间的问题。本发明实施例的方法包括:在Java虚拟机启动时,开启显示层与存储Java软件运行时产生的图像的第一显示缓冲器之间的通路,关闭显示层与存储用户图形界面的第二显示缓冲器之间的通路;在收到来自Java虚拟机的图像后,将该图像存储到所述第一显示缓冲器中,通过显示层显示该图像。采用本发明实施例的方法能够加快图像显示的时间,对于需要快速刷新屏幕的Java软件提供更好的显示效果。
1.一种显示Java软件运行时产生的图像的方法,其特征在于,该方法包括:
在Java虚拟机启动时,开启显示层与存储Java软件运行时产生的图像的第一显示缓冲器之间的通路,关闭显示层与存储用户图形界面的第二显示缓冲器之间的通路;
在收到来自Java虚拟机的图像后,将该图像存储到所述第一显示缓冲器中,通过显示层显示该图像;
其中,在Java软件运行时,若有某个进程需要启动,移植层查看需要启动的进程和Java软件的优先级,如果需要启动的进程的优先级较高,关闭显示层与存储Java软件图像的第一显示缓冲器之间的通路,开启显示层与存储用户图形界面的第二显示缓冲器之间的通路。
2.如权利要求1所述的方法,其特征在于,所述在收到来自Java虚拟机的图像后,将该图像存储到所述第一显示缓冲器之前还包括:
在所述第一显示缓冲器的存储格式与收到的图像的格式不同时,根据预先设定的转换方式,将收到的图像的格式转换为与存储格式相同的格式。
3.如权利要求2所述的方法,其特征在于,所述预先设定的转换方式包括:
浮点运算方式、整型运算方式和查找预先建立的图像转换列表方式中的一种。
4.如权利要求1所述的方法,其特征在于,所述将该图像存储到所述第一显示缓冲器中包括:
将收到的图像替换所述第一显示缓冲器中的图像。
5.如权利要求1或4所述的方法,其特征在于,所述将该图像存储到所述第一显示缓冲器中包括:
在来自Java虚拟机的图像是局部图像时,根据局部图像参数,将局部图像覆盖到所述第一显示缓冲器中的图像的对应区域。
6.一种显示Java软件运行时产生的图像的装置,其特征在于,该装置包括:
连接模块,用于在Java虚拟机启动时,开启显示层与存储Java软件运行时产生的图像的第一显示缓冲器之间的通路,关闭显示层与存储用户图形界面的第二显示缓冲器之间的通路;
处理模块,用于在收到来自Java虚拟机的图像后,将该图像存储到所述第一显示缓冲器中,通过显示层显示该图像;
其中,在Java软件运行时,若有某个进程需要启动,移植层需要查看需要启动的进程和Java软件的优先级,如果需要启动的进程的优先级较高,则移植层会暂停Java虚拟机,相应的,连接模块还用于:关闭显示层与存储Java软件图像的第一显示缓冲器之间的通路,开启显示层与存储用户图形界面的第二显示缓冲器之间的通路。
7.如权利要求6所述的装置,其特征在于,该装置还包括:
转换模块,用于在所述处理模块收到来自Java虚拟机的图像后,将该图像存储到所述第一显示缓冲器之前,在所述第一显示缓冲器的存储格式与收到的图像的格式不同时,根据预先设定的转换方式,将收到的图像的格式转换为与存储格式相同的格式。
8.如权利要求7所述的装置,其特征在于,所述预先设定的转换方式包括:
浮点运算方式、整型运算方式和查找预先建立的图像转换列表方式中的一种。
9.如权利要求6所述的装置,其特征在于,所述处理模块用于:
将收到的图像替换所述第一显示缓冲器中的图像。
10.如权利要求6或9所述的装置,其特征在于,所述处理模块用于:
在来自Java虚拟机的图像是局部图像时,根据局部图像参数,将局部图像覆盖到所述第一显示缓冲器中的图像的对应区域。
一种显示Java软件运行时产生的图像的方法和装置 \n技术领域\n[0001] 本发明涉及嵌入式技术领域,特别涉及一种显示Java软件运行时产生的图像的方法和装置。 \n背景技术\n[0002] 目前Java软件已经在各个领域得到了广泛的应用,尤其是无线移动终端领域,全球大多数移动运营商已经推出了Java下载服务。无线手持设备市场对Java产生了巨大的需求增长,目前几乎所有移动终端都支持Java。 \n[0003] 逐渐扩大的消费群体,使得运营商、内容提供商以及移动终端制造商都强烈渴望Java性能更加强劲,支持更多更复杂的应用,为用户带来更丰富多彩的增值应用,满足各种各样的信息需求。 \n[0004] 运行Java软件的方式是Java虚拟机通过移植层移植数据到嵌入式操作系统,并运行。 \n[0005] 目前,显示Java软件产生的图像时,移植层在确定需要运行Java虚拟机时,启动Java虚拟机,在收到Java虚拟机的图像后,需要先发送一个刷新请求,加入到队列中,等待系统处理用户图形界面;在系统可以处理刷新请求后(即不需要显示用户图形界面时),将显示缓冲器(Frame Buffer)中的图像删除,将收到的Java虚拟机的图像存储到显示缓冲器中,通过屏幕进行显示。 \n[0006] 现在很多Java软件对屏幕刷新要求很高,比如动作类游戏,要求快速的屏幕响应,而目前的显示方法,在刷新屏幕时首先需要发送刷新请求到队列,等待队列处理刷新请求,这种方式对于一般的Java软件可以满足,但对于需要快速刷新屏幕的Java软件,由于需要等待队列处理刷新请求,从而增加了图像显示的时间,会造成图像之间显示不连贯。\n[0007] 综上所述,目前显示Java软件的方式,在刷新屏幕时需要发送刷新请求到队列,并等待处理刷请求后才能显示,从而增加了图像显示的时间。 \n[0008] 发明内容\n[0009] 本发明实施例提供一种显示Java软件运行时产生的图像的方法和装置,用以解决现有技术中存在的显示Java软件的方式,在刷新屏幕时需要发送刷新请求到队列,并等待处理刷新请求后才能显示,从而增加图像显示时间的问题。 \n[0010] 本发明实施例提供的一种显示Java软件运行时产生的图像的方法包括: [0011] 在Java虚拟机启动时,开启显示层与存储Java软件运行时产生的图像的第一显示缓冲器之间的通路,关闭显示层与存储用户图形界面的第二显示缓冲器之间的通路; [0012] 在收到来自Java虚拟机的图像后,将该图像存储到所述第一显示缓冲器中,通过显示层显示该图像; \n[0013] 其中,在Java软件运行时,若有某个进程需要启动,移植层查看需要启动的进程和Java软件的优先级,如果需要启动的进程的优先级较高,关闭显示层与存储Java软件图像的第一显示缓冲器之间的通路,开启显示层与存储用户图形界面的第二显示缓冲器之间的通路。 \n[0014] 本发明实施例提供的一种显示Java软件运行时产生的图像的装置包括: [0015] 连接模块,用于在Java虚拟机启动时,开启显示层与存储Java软件运行时产生的图像的第一显示缓冲器之间的通路,关闭显示层与存储用户图形界面的第二显示缓冲器之间的通路; \n[0016] 处理模块,用于在收到来自Java虚拟机的图像后,将该图像存储到所述第一显示缓冲器中,通过显示层显示该图像; \n[0017] 其中,在Java软件运行时,若有某个进程需要启动,移植层需要查看需要启动的进程和Java软件的优先级,如果需要启动的进程的优先级较高,则移植层会暂停Java虚拟机,相应的,连接模块还用于:关闭显示层与存储Java软件图像的第一显示缓冲器之间的通路,开启显示层与存储用户图形界面的第二显示缓冲器之间的通路。 [0018] 本发明实施例在Java虚拟机启动时,开启显示层与存储Java软件运行时产生的图像的第一显示缓冲器之间的通路,关闭显示层与存储用户图形界面的第二显示缓冲器之间的通路;在收到来自Java虚拟机的图像后,将该图像存储到所述第一显示缓冲器中,通过显示层显示该图像。由于将图像用户界面和Java软件产生的图像分开存储在不同的显示缓冲器中,从而在刷新屏幕时不需要发送刷新请求,可以直接显示,加快了图像显示的时间,提高了用户体验,对于需要快速刷新屏幕的Java软件提供了更好的显示效果。 [0019] 附图说明\n[0020] 图1A为本发明实施例显示Java软件运行时产生的图像的装置结构示意图; [0021] 图1B为本发明实施例显示Java软件运行时产生的图像的装置置于移植层的示意图; \n[0022] 图2为本发明实施例显示Java软件运行时产生图像的方法流程示意图; [0023] 图3为本发明实施例采用查表方法转换图像格式的方法流程示意图。 具体实施方式\n[0024] 本发明实施例将Java软件的图像和用户图形界面分开存储,在收到来自Java虚拟机的图像后,将该图像存储到Java软件的图像对应的第一显示缓冲器中,通过显示层显示该图像,由于将图像用户界面和Java软件产生的图像分开存储在不同的显示缓冲器中,从而在刷新屏幕时不需要发送刷新请求,可以直接显示,加快了图像显示的时间。 [0025] 下面结合说明书附图对本发明实施例作进一步详细描述。 \n[0026] 如图1A所示,本发明实施例显示Java软件的图像的装置包括:连接模块10和处理模块20。 \n[0027] 连接模块10,用于在Java虚拟机启动时,开启显示层与存储Java软件运行时产生的图像的第一显示缓冲器之间的通路,关闭显示层与存储用户图形界面的第二显示缓冲器之间的通路。 \n[0028] 在具体实施过程中,移植层在接收到开启信号后启动Java虚拟机。开启信号是由用户点击开启某个Java软件的选项后产生的。 \n[0029] 当用户点击关闭某个Java软件的选项后,会产生关闭信号,移植层接收到关闭信号后,会关闭Java虚拟机; \n[0030] 或者在Java软件运行时,有某个进程需要启动,(比如有短信或电话,或 者闹钟提示等)这时移植层需要查看需要启动的进程和Java软件的优先级,如果需要启动的进程的优先级较高,则移植层会暂停Java虚拟机。 \n[0031] 由于Java虚拟机被关闭或暂停,所以不会产生新的图像。 \n[0032] 相应的,连接模块10在Java虚拟机关闭或暂停时,关闭显示层与存储软件图像的第一显示缓冲器之间的通路,开启显示层与存储用户图形界面的第二显示缓冲器之间的通路。 \n[0033] 处理模块20,用于在收到来自Java虚拟机的图像后,将该图像存储到第一显示缓冲器中,通过显示层显示该图像。 \n[0034] 其中,处理模块20在收到来自Java虚拟机的图像后,还可以判断收到的图像是否是局部图像(即是否不能在整个屏幕上显示),如果是,则根据局部图像参数,将局部图像覆盖到第一显示缓冲器中的图像的对应区域;否则,将收到的图像替换第一显示缓冲器中的图像。 \n[0035] 如果第一显示缓冲器中没有图像,则将收到的图像直接存储到第一显示缓冲器中。 \n[0036] 局部图像参数包括:图像在显示区域(即屏幕)的位置和图像的尺寸。 [0037] 在显示局部图像时,传统的显示方法是在有局部图像时,需要在Java虚拟机中将整个图像和局部图像进行整合,然后再发给移植层,这样无疑增加了图像的容量,导致效率降低。 \n[0038] 而本发明实施例只需要发送局部图像,并且在第一显示缓冲器中完成整合,相比于传统的方式加快了处理速度,提高了效率,节省了容量,进一步提高了屏幕显示的流畅度。 \n[0039] 其中,由于第一显示缓冲器缓存的图像数据需要跟自身所支持的格式相同,所以在缓存图像之前还需要查看图像的格式和第一显示缓冲器的格式是否相同,则本发明实施例显示Java软件的图像的装置还可以进一步包括:转换模块30。 \n[0040] 转换模块30,用于在处理模块20收到来自Java虚拟机的图像后,将该图 像存储到第一显示缓冲器之前,判断第一显示缓冲器的存储格式与收到的图像的格式是否相同,如果相同,不做转换处理;如果不相同,则根据预先设定的转换方式,将收到的图像的格式转换为与存储格式相同的格式,比如:图像格式为RGB,而第一显示缓存器支持的格式为YUV,这是需要将RGB格式转换为YUV格式。 \n[0041] 预先设定的转换方式包括: \n[0042] 浮点运算方式、整型运算方式和查找预先建立的图像转换列表方式中的一种。 [0043] 需要说明的是,本实施例并不局限于上述三种转换方式,任何可以将图像的格式进行转换的方式都适用本实施例。 \n[0044] 在具体实施过程中,本发明实施例显示Java软件的图像的装置可以置于移植层,如图1B所示,移植层处于Java虚拟机和嵌入式操作系统之间,Java虚拟机的信息必须通过移植层专递给嵌入式操作系统,并通过嵌入式操作系统进行操作,比如:显示层就属于嵌入式操作系统,而硬件平台是将硬件设备与嵌入式操作系统相连,通过硬件设备实现各种功能。 \n[0045] 如图2所示,本发明实施例显示Java软件的图像的方法包括下列步骤: [0046] 步骤200、移植层在Java虚拟机启动时,开启显示层与存储Java软件运行时产生的图像的第一显示缓冲器之间的通路,关闭显示层与存储用户图形界面的第二显示缓冲器之间的通路。 \n[0047] 在具体实施过程中,移植层在接收到开启信号后启动Java虚拟机。开启信号是由用户点击开启某个Java软件的选项后产生的。 \n[0048] 当用户点击关闭某个Java软件的选项后,会产生关闭信号,移植层接收到关闭信号后,会关闭Java虚拟机; \n[0049] 或者在Java软件运行时,有某个进程需要启动,(比如有短信或电话,或者闹钟提示等)这时移植层需要查看需要启动的进程和Java软件的优先级,如果需要启动的进程的优先级较高,则移植层会暂停Java虚拟机。\n[0050] 由于Java虚拟机被关闭或暂停,所以不会产生新的图像。 \n[0051] 相应的,移植层在Java虚拟机关闭或暂停时,关闭显示层与存储软件图像的第一显示缓冲器之间的通路,开启显示层与存储用户图形界面的第二显示缓冲器之间的通路。 [0052] 步骤201、移植层在收到来自Java虚拟机的图像后,将该图像存储到第一显示缓冲器中,通过显示层显示该图像。 \n[0053] 显示层则通过自身与存储Java软件运行时产生的图像的第一显示缓冲器之间的通路,将第一显示缓冲器中的图像进行显示。 \n[0054] 其中,步骤201中在收到来自Java虚拟机的图像后,还可以判断收到的图像是否是局部图像(即是否不能在整个屏幕上显示),如果是,则根据局部图像参数,将局部图像覆盖到第一显示缓冲器中的图像的对应区域;否则,将收到的图像替换第一显示缓冲器中的图像。 \n[0055] 如果第一显示缓冲器中没有图像,则将收到的图像直接存储到第一显示缓冲器中。 \n[0056] 局部图像参数包括:图像在显示区域(即屏幕)的位置和图像的尺寸。 [0057] 在显示局部图像时,传统的显示方法是在有局部图像时,需要再Java虚拟机中将整个图像和局部图像进行整合,然后再发给移植层,这样无疑增加了图像的容量,导致效率降低。 \n[0058] 而本发明实施例只需要发送局部图像,并且在第一显示缓冲器中完成整合,相比于传统的方式加快了处理速度,提高了效率,节省了容量,进一步提高了屏幕显示的流畅度。 \n[0059] 其中,由于第一显示缓冲器缓存的图像数据需要跟自身所支持的格式相同,所以在缓存图像之前还需要查看图像的格式和第一显示缓冲器的格式是否相同,则步骤201中,在收到来自Java虚拟机的图像后,将该图像存储到第一显示缓冲器之前还可以进一步包括: \n[0060] 判断第一显示缓冲器的存储格式与收到的图像的格式是否相同,如果相 同,不做转换处理;如果不相同,则根据预先设定的转换方式,将收到的图像的格式转换为与存储格式相同的格式,比如:图像格式为RGB,而第一显示缓存器支持的格式为YUV,这是需要将RGB格式转换为YUV格式。 \n[0061] 预先设定的转换方式包括: \n[0062] 浮点运算方式、整型运算方式和查找预先建立的图像转换列表方式中的一种。 [0063] 需要说明的是,本实施例并不局限于上述三种转换方式,任何可以将图像的格式进行转换的方式都适用本实施例。 \n[0064] 如果采用查找预先建立的图像转换列表方式进行转换,则具体步骤参见图3。 [0065] 如图3所示,本发明实施例采用查表方法转换图像格式的方法包括下列步骤: [0066] 步骤300、移植层在收到来自Java虚拟机的图像后,判断第一显示缓冲器的存储格式与收到的图像的格式是否相同,如果是,则跳出流程;否则,执行步骤301。 [0067] 步骤301、移植层判断是否是第一次进行图像显示操作(即第一显示缓存器中是否有图像),如果是,则执行步骤302;否则,执行步骤303。 \n[0068] 步骤302、移植层调用转换表初始化程序,生成图像转换列表,并执行步骤303。 [0069] 步骤303、移植层用图像转换列表将收到的图像转换为与第一显示缓存器格式相同的格式。 \n[0070] 其中,还有一种较佳的方式是存储图像转换列表,这样可以不用每次都判断是否是第一次进行写屏操作(即不用执行步骤301),直接用存储的图像转换列表进行转换。 [0071] 本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,可选地,它们可以用 计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行。这样,本发明不限制于任何特定的硬件和软件结合。 \n[0072] 从上述实施例中可以看出:本发明实施例在Java虚拟机启动时,开启显示层与存储Java软件运行时产生的图像的第一显示缓冲器之间的通路,关闭显示层与存储用户图形界面的第二显示缓冲器之间的通路;在收到来自Java虚拟机的图像后,将该图像存储到所述第一显示缓冲器中,通过显示层显示该图像。由于将图像用户界面和Java软件产生的图像分开存储在不同的显示缓冲器中,从而在刷新屏幕时不需要发送刷新请求,可以直接显示,加快了图像显示的时间,提高了用户体验,对于需要快速刷新屏幕的Java软件提供了更好的显示效果。 \n[0073] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
法律信息
- 2021-08-13
未缴年费专利权终止
IPC(主分类): G06F 3/147
专利号: ZL 200810147547.9
申请日: 2008.08.28
授权公告日: 2011.03.30
- 2011-03-30
- 2009-06-17
- 2009-01-07
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2003-05-28
|
2002-11-18
| | |
2
| |
2005-03-02
|
2004-09-03
| | |
3
| |
2008-04-30
|
2007-08-24
| | |
4
| |
2007-10-24
|
2006-04-20
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |