一种java应用中加载图片的方法和装置制造方法及图纸

技术编号:3873346 阅读:634 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种java应用中加载图片的方法,java层获取存储jar应用包的绝对路径;java层将获取到的存储所述jar应用包的绝对路径和jar应用包中预先写入的需要加载的图片的相对路径传到C语言底层中;C语言底层获取到存储所述jar应用包的绝对路径后,解压打开所述jar应用包,根据所述jar应用包中的需要加载的图片的相对路径找到对应图片,读出所述图片的二进制数据到缓存中;C语言底层调用图形引擎,根据所述图片的二进制数据构造出图片并解码显示。对应的,本发明专利技术还提供了一种java应用中加载图片的装置,减轻了开发机顶盒应用人员工作的同时,实现了高效加载图片,提高了效率。

【技术实现步骤摘要】

本专利技术涉及机顶盒领域,尤其涉及一种java应用中加载图片的方法和装置。
技术介绍
目前机顶盒上已经开始流行采用内嵌java虚拟机,Java是一种编程语言,由s皿公司发布,通过java语言开发机顶盒软件,尤其是机顶盒中间件,java编程有其独特的优势,如平台无关性,安全性,丰富的功能完善的包,扩展性强等等,但在嵌入式上采用Java也有一些劣势,特别是性能问题。比起传统的利用C语言开发的机顶盒软件,java在机顶盒上运行的效果要慢,我们这里举个例子,加载图片资源,传统的C语言开发,图片资源会被存储为二进制格式,C语言直接读取,进行必要的解码后就可以显示出来。 而现在采用java加载图片,一般采用如下方式java中awt包加载图片时,通过Toolkit. getDefaultToolkit 0 . getlmage ( 〃 image/background, jpg 〃 )形式力口载图片,其内部实现原理为在当前的java程序运行时配置的classpath的image路径下查找图片,如果找到,则读取之。 但这种方式支持的功能有限,当java应用程序导出成jar文件发布后,通过网络下载保存到本地机顶盒,再由机顶盒的应用管理器通过自定义的类加载器classloader加载运行时,图片无法正常加载显示,原因是这种方式只能在启动虚拟机时配置的类路径classpath目录下查找,不支持智能的在当前运行的jar应用包所在的路径中查找,所述jar是一种压縮文件包,通常是开发时要引用通用类,打成jar包便于存放管理。 为了解决这些问题,现有的做法是重载getlmage方法,将当前运行的jar应用包所在的绝对路径传入getlmage方法,然后利用Java的zip包提供的功能从对应的jar应用包中读取图片数据,然后再通过native方法传到C语言底层中去构造图片,最后显示出来。 专利技术人在实施过程中发现上述现有解决方案存在两方面缺点,首先现有解决方案通过Java方法把图片数据读取到Java层,然后又通过native把数据传递到C层,不仅浪费时间,而且浪费内存;其次现有解决方案没有解决如何获取到当前jar应用包在机顶盒中的绝对路径,仍然不支持加载一个从网络上下载下来的jar应用包中的图片,如果需要支持加载jar应用包中的图片,则需要Java的开发人员和机顶盒应用管理器的开发人员事先协商,非常不方便。
技术实现思路
鉴于上述现有技术所存在的问题,本专利技术实施例提供了一种java应用中加载图片的方法和装置,通过获取存储jar应用包的绝对路径,直接在C语言底层解压并找到需要加载的图片,减轻了机顶盒开发人员工作的同时,实现了高效加载图片,提高了效率。 为了解决现有技术存在的问题,本专利技术实施例提供了一种java应用中加载图片的方法,用于机顶盒中间件中,包括 Java层获取存储jar应用包的绝对路径; Java层将获取到的所述存储jar应用包的绝对路径和jar应用包中预先写入的需要加载的图片的相对路径传到C语言底层中; C语言底层获取到存储所述jar应用包的绝对路径后,解压打开所述jar应用包,根据所述jar应用包中的需要加载的图片的相对路径找到对应图片,读出所述图片的二进制数据到缓存中; C语言底层调用图形引擎,根据所述图片的二进制数据构造出图片并解码显示。 相应的,本专利技术实施例还提供了一种广告系统,用于机顶盒中间件,包括获取单元,路径传递单元,图片查找读取单元和解码显示单元,其中 所述获取单元,用于获取存储jar应用包的绝对路径; 所述路径传递单元与所述图片查找读取单元相连,用于将所述获取模块获取到的存储所述jar应用包的绝对路径和jar应用包中预先写入的需要加载的图片的相对路径传到所述图片查找读取单元中; 所述图片查找读取单元,用于根据获取到的存储所述jar应用包的绝对路径,解压打开所述jar应用包,根据所述jar应用包中的需要加载的图片的相对路径找到对应图片,读出所述图片的二进制数据到缓存中; 解码显示单元,用于调用图形引擎,将存储在所述图片查找读取单元的缓存中的图片的二进制数据构造出图片并解码显示。 实施本专利技术实施例,通过Java层获取存储jar应用包的绝对路径;Java层将获取到的存储所述jar应用包的绝对路径和jar应用包中预先写入的需要加载的图片的相对路径传到C语言底层中;C语言底层获取到存储所述jar应用包的绝对路径后,解压打开所述jar应用包,根据所述jar应用包中的需要加载的图片的相对路径找到对应图片,读出所述图片的二进制数据到缓存中;C语言底层调用图形引擎,根据所述图片的二进制数据构造出图片并解码显示,减轻了开发机顶盒应用人员工作的同时,实现了高效加载图片,提高了效率。附图说明 为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 图1是本专利技术实施例Java应用中加载图片的方法的一流程示意 图2是本专利技术实施例java应用中加载图片的方法的另一流程示意 图3是本专利技术实施例java应用中加载图片的装置的结构示意 图4是图3装置中获取单元的结构示意 图5是图4中第一获取单元的结构示意 图6是图3中路径传递单元的结构示意图。具体实施方式 本专利技术实施例提供了一种Java应用中加载图片的方法和装置,通过获取存储jar应用包的绝对路径,直接在C语言底层解压并找到需要加载的图片,减轻了开发机顶盒应用人员工作的同时,实现了高效加载图片,提高了效率。 机顶盒中采用内嵌Java虚拟机,通过Java语言开发机顶盒软件,尤其是机顶盒中间件时,首先在本地机顶盒内嵌一个java虚拟机,在虚拟机之上部署好一个j肌a应用管理器,当应用管理器从网络上下载一个jar应用包形式的应用后,例如music. jar(音乐播放软件),保存在机顶盒存储设备中,假设路径为/flash/music. jar。 当需要启动该应用(即该音乐播放软件)时,应用平台需要进行以下步骤首先创建一个URL类加载器(URLClassLoader)加载这个应用,将该应用所在的路径/flash/music. jar传入URLCloassLoader ;然后由应用管理器找到music. jar中的入口类并启动该音乐播放应用。 开发人员在开发music, jar这个应用时,界面上如果需要显示一张图片,仍然按照最常用的方式编写代码,如Toolkit. getDefaultToolkit () getlmage ( 〃 image/background, jpg〃 ),这表明需要在当前jar应用包中查找image/background, jpg这个图片并加载;本专利技术实施例通过改造机顶盒内嵌的虚拟机,主要修改getlmage方法,使其能自动识别出当前运行的jar应用包是从哪个路径下加载运行的。所述getlmage方法指加载图片的方法,为Toolkit类的方法,用于加载图片;所述Toolkit为标准的Java类。 下面结合附图详细说明本专利技术的优选实施例。 参见图l,为本专利技术实施例jav本文档来自技高网
...

【技术保护点】
一种java应用中加载图片的方法,用于机顶盒中间件中,其特征在于,包括:Java层获取存储jar应用包的绝对路径;Java层将获取到的所述存储jar应用包的绝对路径和jar应用包中预先写入的需要加载的图片的相对路径传到C语言底层中;C语言底层获取到存储所述jar应用包的绝对路径后,解压打开所述jar应用包,根据所述jar应用包中的需要加载的图片的相对路径找到对应图片,读出所述图片的二进制数据到缓存中;C语言底层调用图形引擎,根据所述图片的二进制数据构造出图片并解码显示。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡华涛
申请(专利权)人:深圳市同洲电子股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1