用于Java程序的数据处理方法、装置和电子设备与流程

文档序号:17948305发布日期:2019-06-18 23:50阅读:171来源:国知局
用于Java程序的数据处理方法、装置和电子设备与流程

本申请涉及数据处理技术领域,且更为具体地,涉及一种用于java程序的数据处理方法、装置和电子设备。



背景技术:

java语言有着十分强大的功能,适合开发桌面型软件,但相比其它语言也存在劣势。

例如,c语言相比于java语言而言速度更快,执行效率更高。而且,由于c语言具有指针这个工具,使得c语言更加偏于底层,通常用于硬件相关的驱动开发,这是java语言所做不到的。

在某些情况下,可能期望java程序能够调用其它语言的外部程序的业务逻辑功能,这就需要在java程序和外部程序之间进行数据传递。

但是,目前java程序是通过java本地接口直接调用本地动态库中的业务逻辑应用程序接口,其无法很好地实现与外部程序之间的数据传递,从而无法应用外部程序的业务逻辑功能。

因此,期望提供改进的用于java程序的数据处理方案。



技术实现要素:

为了解决上述技术问题,提出了本申请。本申请的实施例提供了一种用于java程序的数据处理方法、装置和电子设备,其能够通过调用用于外部程序的应用程序接口库,以进一步通过总线机制与外部程序进行通信从而调用外部程序的业务逻辑功能,这样可以将java程序的应用程序接口层与业务逻辑层解耦,从而提升程序的开发效率并降低维护成本。

根据本申请的一个方面,提供了一种用于java程序的数据处理方法,包括:在面向java的动态模型系统上运行java程序;由所述java程序通过所述面向java的动态模型系统访问java本地接口调用管理程序,所述java本地接口调用管理程序用于提供本地数据请求功能;由所述java本地接口调用管理程序通过java本地接口调用用于外部程序的应用程序接口库;以及,由所述应用程序接口库通过总线机制与外部系统上运行的所述外部程序通信,以调用要由所述java本地接口调用管理程序加载的所述外部程序,所述外部程序响应于所述应用程序接口库的调用执行业务逻辑功能并返回结果数据。

在上述用于java程序的数据处理方法中,所述外部程序是c/c++程序,且所述应用程序接口是用于c语言的外部程序接口库。

在上述用于java程序的数据处理方法中,所述外部系统是linux系统。

在上述用于java程序的数据处理方法中,所述总线机制是dbus机制。

在上述用于java程序的数据处理方法中,在所述面向java的动态模型系统上运行的所述java程序之间通过所述面向java的动态模型系统框架的服务机制通信。

在上述用于java程序的数据处理方法中,所述java程序与所述java本地接口调用管理程序之间通过所述面向java的动态模型系统框架的服务机制通信。

在上述用于java程序的数据处理方法中,所述面向java的动态模型系统框架运行在java虚拟机上。

在上述用于java程序的数据处理方法中,所述总线机制内置于所述应用程序接口库,以调用所述外部程序提供的业务逻辑功能。

在上述用于java程序的数据处理方法中,所述外部程序在不同路径和接口下提供用于所述业务逻辑功能的属性和方法,且,所述总线机制通过网关服务程序调用及其对应的路径和接口所对应的方法来获取所述结果数据。

在上述用于java程序的数据处理方法中,进一步包括:由所述java程序通过所述java本地接口和所述java本地接口调用管理程序获得所述结果数据。

根据本申请的另一方面,提供了一种用于java程序的数据处理装置,包括:程序运行单元,用于在面向java的动态模型系统上运行java程序;本地访问单元,用于由所述java程序通过所述面向java的动态模型系统访问java本地接口调用管理程序,所述java本地接口调用管理程序用于提供本地数据请求功能;本地调用单元,用于由所述java本地接口调用管理程序通过java本地接口调用用于外部程序的应用程序接口库;以及,外部调用单元,用于由所述应用程序接口库通过总线机制与外部系统上运行的所述外部程序通信,以调用要由所述java本地接口调用管理程序加载的所述外部程序,所述外部程序响应于所述应用程序接口库的调用执行业务逻辑功能并返回结果数据。

在上述用于java程序的数据处理装置中,所述外部程序是c/c++程序,且所述应用程序接口是用于c语言的外部程序接口库。

在上述用于java程序的数据处理装置中,所述外部系统是linux系统。

在上述用于java程序的数据处理装置中,所述总线机制是dbus机制。

在上述用于java程序的数据处理装置中,在所述面向java的动态模型系统上运行的所述java程序之间通过所述面向java的动态模型系统框架的服务机制通信。

在上述用于java程序的数据处理装置中,所述java程序与所述java本地接口调用管理程序之间通过所述面向java的动态模型系统框架的服务机制通信。

在上述用于java程序的数据处理装置中,所述面向java的动态模型系统框架运行在java虚拟机上。

在上述用于java程序的数据处理装置中,所述总线机制内置于所述应用程序接口库,以调用所述外部程序提供的业务逻辑功能。

在上述用于java程序的数据处理装置中,所述外部程序在不同路径和接口下提供用于所述业务逻辑功能的属性和方法,且,所述总线机制通过网关服务程序调用及其对应的路径和接口所对应的方法来获取所述结果数据。

在上述用于java程序的数据处理装置中,进一步包括:结果获取单元,用于由所述java程序通过所述java本地接口和所述java本地接口调用管理程序获得所述结果数据。

根据本申请的再一方面,提供了一种电子设备,包括:处理器;以及,存储器,在所述存储器中存储有计算机程序指令,所述计算机程序指令在被所述处理器运行时使得所述处理器执行如上所述的用于java程序的数据处理方法。

根据本申请的又一方面,提供了一种计算机可读介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行如上所述的用于java程序的数据处理方法。

与现有技术相比,本申请提供的用于java程序的数据处理方法、装置和电子设备可以能够通过调用用于外部程序的应用程序接口库,以进一步通过总线机制与外部程序进行通信从而调用外部程序的业务逻辑功能。因此,本申请提供的用于java程序的数据处理方法、装置和电子设备可以将java程序的应用程序接口层与业务逻辑层解耦,从而提升程序的开发效率并降低维护成本。

附图说明

通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。

图1图示了根据本申请实施例的用于java程序的数据处理方法的应用环境的示意图。

图2图示了根据本申请实施例的用于java程序的数据处理方法的流程图。

图3图示了根据本申请实施例的java程序的数据处理方法中的dbus机制的示例的示意图。

图4图示了根据本申请实施例的用于java程序的数据处理装置的框图。

图5图示了根据本申请实施例的电子设备的框图。

具体实施方式

下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。

申请概述

如上所述,目前java程序通过java本地接口(javanativeinterface:jni)直接调用本地动态库中的业务逻辑应用程序接口(applicationprograminterface:api),以完成数据的请求与获取、参数配置、状态查询等任务。也就是说,业务逻辑层与jniapi层是杂糅在一起的。

这样,一旦有业务逻辑功能变动,则jniapi层以及java程序中相关模块都需要改动;而面对不同的业务逻辑功能,也不能统一并规范jniapi层,而且业务逻辑开发时还需兼顾对外api开发,开发效率低,维护成本高。并且,jniapi层与业务逻辑层耦合在一起本来就是有悖于软件设计原则的。

因此,针对上述技术问题,本申请的基本构思是java本地接口调用管理程序通过由java本地接口调用用于外部程序的应用程序接口库,再由所述应用程序接口库通过总线机制来与外部程序通信,从而调用原本要由所述java本地接口调用管理程序直接加载的外部程序。

具体地,本申请提供的用于java程序的数据处理方法、装置和电子设备首先在面向java的动态模型系统上运行java程序,然后由所述java程序通过所述面向java的动态模型系统访问java本地接口调用管理程序,所述java本地接口调用管理程序用于提供本地数据请求功能,再由所述java本地接口调用管理程序通过java本地接口调用用于外部程序的应用程序接口库,最后由所述应用程序接口库通过总线机制与外部系统上运行的所述外部程序通信,以调用要由所述java本地接口调用管理程序加载的所述外部程序,其中,所述外部程序响应于所述应用程序接口库的调用执行业务逻辑功能并返回结果数据。

这样,由于jniapi层与业务逻辑层解耦,jniapi层与业务逻辑层都可以独立地高效地开发。

并且,面对不同的业务逻辑需求,可以提供统一和规范的jniapi层,并且,即使业务逻辑需求变动,也只需要修改应用程序接口库的内部实现即可,无需修改java程序和jniapi层,降低了维护成本。

此外,由于业务逻辑层处于外部系统上,而不作为本地动态库的一部分,而可以作为可独立运行的程序,使得多方的合作开发灵活和方便,提高了开发效率

在介绍了本申请的基本原理之后,下面将参考附图来具体介绍本申请的各种非限制性实施例。

系统概述

图1图示了根据本申请实施例的用于java程序的数据处理方法的应用环境的示意图。

如图1所示,多个java程序,比如java程序1、java程序2等运行在面向java的动态模型系统(osgi)上。这里,osgi可以被认为是java平台的模块层,并且osgi框架为java系统提供了一个通用容器,该系统中的程序束(bundle)无需停止系统就可以实现程序束的安装、卸载和更新。因此,osgi规范对于模块的物理隔离、模块交互、多版本方面有非常完善的机制。并且,进一步如图1所示,osgi运行在java虚拟机(javavirtualmachine:jvm)之上。

当java程序需要调用服务时,其首先访问基础服务程序,如果基础服务程序无法提供java程序需要的服务,则进一步访问jni调用管理程序,由jni调用管理程序通过jni调用服务。这里,jni提供了若干api实现了java和其他语言的通信(例如,c语言,c++语言等)。因此,在本申请实施例中,所述外部程序可以是c语言,c++语言,也可以是其它语言。并且,所述外部程序运行在外部系统上,例如,所述外部系统可以是linux系统或者其它系统。

从java1.1开始,jni标准就成为java平台的一部分,它允许java代码和以其他语言写的代码进行交互。此外,jni使得java程序与硬件和操作系统之间的交互成为可能,并且能提高程序性能。

在本申请实施例中,不是由所述jni调用管理程序通过jni直接加载外部程序,而是由所述jni调用管理程序通过jni调用用于外部程序的应用程序接口库,例如,如果外部程序为c语言,则所述应用程序接口库可被称为capi库。并且,应用程序接口库进一步通过总线机制,例如dbus机制来与外部系统上运行的外部程序通信,以调用所述外部程序。

这里,dbus机制是一种比较高级的进程间的通信技术,通过dbus机制,进程间可以进行一对一和多对多的对等通信。具体地,当一个进程发消息给另外一个进程时,会先将消息发送给到dbus守护进程,然后dbus守护进程将此消息转发到目的进程。也就是,dbus守护进程充当着一个中转站的角色。值得注意的是,dbus机制的主要概念为总线,连接到总线的进程可通过总线接受或传递消息,总线在接收到消息时,根据不同的消息类型进行不同的处理。因此,在本申请实施例中,所述总线机制并不限于dbus机制。

最后,所述外部程序响应于所述应用程序接口库的调用执行业务逻辑功能并返回结果数据,从而实现了jniapi层与业务逻辑层的解耦。

下面,将对根据本申请实施例的用于java程序的数据处理方法进行进一步详细说明。

示例性方法

图2图示了根据本申请实施例的用于java程序的数据处理方法的流程图。

如图2所示,根据本申请实施例的用于java程序的数据处理方法包括:s110,在面向java的动态模型系统上运行java程序;s120,由所述java程序通过所述面向java的动态模型系统访问java本地接口调用管理程序,所述java本地接口调用管理程序用于提供本地数据请求功能;s130,由所述java本地接口调用管理程序通过java本地接口调用用于外部程序的应用程序接口库;以及s140,由所述应用程序接口库通过总线机制与外部系统上运行的所述外部程序通信,以调用要由所述java本地接口调用管理程序加载的所述外部程序,所述外部程序响应于所述应用程序接口库的调用执行业务逻辑功能并返回结果数据。

在步骤s110中,在面向java的动态模型系统上运行java程序。这里,所述java程序运行在面向java的动态模型系统,即ogsi框架下,并且其间通过osgi框架的服务机制进行通信。并且,如上所述,osgi框架运行在jvm之上,作为java平台的模块层,支持框架之内的插件动态安装、卸载和更新升级,而平台不用重启。

在步骤s120中,由所述java程序通过所述面向java的动态模型系统访问java本地接口调用管理程序,所述java本地接口调用管理程序用于提供本地数据请求功能。这里,如果所述java程序要获得数据,则需要通过osgi框架提供的服务机制与jni调用管理程序进行通信,调用jni方法来进行数据请求、数据获取、参数配置和状态查询等。

在步骤s130中,由所述java本地接口调用管理程序通过java本地接口调用用于外部程序的应用程序接口库。也就是,在本申请实施例中,jni调用管理程序通过jni机制来调用应用程序接口库方法,以实现数据请求、数据获取、参数配置和状态查询等。

在步骤s140中,由所述应用程序接口库通过总线机制与外部系统上运行的所述外部程序通信。如上所述,在外部程序是c/c++语言的情况下,所述应用程序接口库为capi库,其是要由java加载的c/c++动态库,其在外部提供统一和规范的api供jni调用,并在其内部通过dbus机制调用外部程序提供的业务逻辑方法。

因此,在根据本申请实施例的用于java程序的数据处理方法中,所述总线机制内置于所述应用程序接口库,以调用所述外部程序提供的业务逻辑功能。

在本申请实施例中,外部系统上运行的外部程序,例如linux上运行的c/c++程序实现业务逻辑功能,并响应于来自dbus的由capi库发起的调用,执行业务逻辑操作并返回执行的结果数据。

因此,所述外部程序是运行在外部系统环境下的独立程序,其内部实现了具体的业务逻辑功能,外部通过dbus机制响应于来自应用程序接口库的远程调用,执行调用动作,并返回执行的结果数据。

例如,capi库与linux上运行的c/c++程序通过dbus机制进行通信,其中linux上的c/c++程序作为dbus的接收方与dbus总线相连接并且在不同的路径和接口之下提供属性和方法来满足业务逻辑功能。并且,capi库作为dbus请求方与dbus总线相连接,dbus总线通知网关服务程序调用与之对应的路径及接口之下的方法来获取数据及状态。

因此,在根据本申请实施例的用于java程序的数据处理方法中,所述外部程序在不同路径和接口下提供用于所述业务逻辑功能的属性和方法,且,所述总线机制通过网关服务程序调用及其对应的路径和接口所对应的方法来获取所述结果数据。

最后,java程序通过jni层及jni调用管理程序获取返回的结果数据。

也就是,在根据本申请实施例的用于java程序的数据处理方法中,进一步包括:由所述java程序通过所述java本地接口和所述java本地接口调用管理程序获得所述结果数据。

在另一示例中,在根据本申请实施例的用于java程序的数据处理方法中,jni调用管理程序可以通过osgi框架提供的bundlecontext(束上下文)的registerservice()方法来注册服务,另外的java程序可通过bundlecontext的getservicereference()及getservice()方法来获取jni调用管理插件所注册的服务。通过该服务,java程序可以调用jni调用管理程序所提供的方法来实现数据请求、数据获取、参数配置和状态查询等。

具体应用实例

图3图示了根据本申请实施例的java程序的数据处理方法中的dbus机制的示例的示意图。如图3所示,所述dbus机制可以实现为dbus守护进程,其包括与capi库的内部连接以及与linux程序的外部连接。通过所述内部连接,capi库调用业务逻辑功能或者建立信号并等待结果,而通过所述外部连接,linux程序实现业务逻辑功能或者发送信号并返回结果。

在该示例中,根据本申请实施例的dbus机制提供了基于dbus的java程序与linuxc/c++程序之间的层次分明的通信机制,可分为如下几个部分:

1.java程序通过jni调用由c/c++编写的jni库作为整个通信机制的上层部分。

2.整个上层部分只是一个空壳并没有涉及到功能需求的实现,java程序只是根据功能需要去调用jni库的中的api。

3.jni库封装了满足java功能需求的api来供给java层调用,但是jni库并没有具体实现所需要的功能,而只是封装了另外一个c/c++的capi库里的api。

4.capi库和底层的linuxc/c++程序作为通信机制的底层部分,主要负责功能需求的完成。

5.capi库封装了大量的api来获取底层linuxc/c++程序的数据和状态,但是capi库里面的api并不是简单的调用linuxc/c++的接口。

6.capi库的api通过dbus与底层的linuxc/c++来进行进程间通信,从而实现数据的交互。如图3所示,capi库中的api和linuxc/c++与dbus相连会分别产生内部连接和外部连接,而所述内部连接和外部连接即为这两个进程在dbus守护进程中的唯一标识。

7.linuxc/c++程序作为服务端会创建大量的对象并为此对象绑定路径和接口作为它的标识。并且该对象还会有一个虚函数表,此虚函数表实际是一个函数数组(实现功能需求的函数接口)。

8.对象的路径,接口以及虚函数表中的方法都是capi库和linuxc/c++程序协商好的。在linuxc/c++封装完成之后,capi就可以通过它的内部连接以及所有对象的路径、接口和方法来实现相应的功能需求。

9.capi中的api接口和linuxc/c++程序由同一条dbus总线相连,然后根据每个api功能的不同,通过不同的路径和接口去调用接收方linuxc/c++程序的方法获取数据或者完成相应的功能。

10.capi中的api在调用了linuxc/c++中的方法之后会等待返回结果,而capi库可根据此结果获取到相应的数据或者判断功能是否执行成功。

可以看到,基于dbus的java程序与linuxc/c++程序的通信机制层次分明,整个上层部分负责与外界和底层部分进行交互,而底层部分负责完成相应的功能需求并将结果回传给上层以提供给java端。

并且,基于dbus的java程序与linuxc/c++程序的通信机制的下层部分由capi库负责与上层部分进行交互,然后通过dbus调用linuxc/c++程序来完成相应的功能并将结果返回给jni库。

capi库不仅起到了连接上层和linuxc/c++的中转枢纽作用,也是基于dbus的java程序与linuxc/c++程序的通信机制的关键,它完美解决了jni库直接调用linuxc/c++库所带来的高耦合度、低开发效率等缺点。并且,它通过dbus与linuxc/c++程序进行交互使得整个通信机制更加的有层次感,耦合度低,开发效率高。

示例性装置

图4图示了根据本申请实施例的用于java程序的数据处理装置的框图。

如图4所示,根据本申请实施例的用于java程序的数据处理装置200包括:程序运行单元210,用于在面向java的动态模型系统上运行java程序;本地访问单元220,用于由所述java程序通过所述面向java的动态模型系统访问java本地接口调用管理程序,所述java本地接口调用管理程序用于提供本地数据请求功能;本地调用单元230,用于由所述java本地接口调用管理程序通过java本地接口调用用于外部程序的应用程序接口库;以及,外部调用单元240,用于由所述应用程序接口库通过总线机制与外部系统上运行的所述外部程序通信,以调用要由所述java本地接口调用管理程序加载的所述外部程序,所述外部程序响应于所述应用程序接口库的调用执行业务逻辑功能并返回结果数据。

在一个示例中,在上述用于java程序的数据处理装置200中,所述外部程序是c/c++程序,且所述应用程序接口是用于c语言的外部程序接口库。

在一个示例中,在上述用于java程序的数据处理装置200中,所述外部系统是linux系统。

在一个示例中,在上述用于java程序的数据处理装置200中,所述总线机制是dbus机制。

在一个示例中,在上述用于java程序的数据处理装置200中,在所述面向java的动态模型系统上运行的所述java程序之间通过所述面向java的动态模型系统框架的服务机制通信。

在一个示例中,在上述用于java程序的数据处理装置200中,所述java程序与所述java本地接口调用管理程序之间通过所述面向java的动态模型系统框架的服务机制通信。

在一个示例中,在上述用于java程序的数据处理装置200中,所述面向java的动态模型系统框架运行在java虚拟机上。

在一个示例中,在上述用于java程序的数据处理装置200中,所述总线机制内置于所述应用程序接口库,以调用所述外部程序提供的业务逻辑功能。

在一个示例中,在上述用于java程序的数据处理装置200中,所述外部程序在不同路径和接口下提供用于所述业务逻辑功能的属性和方法,且,所述总线机制通过网关服务程序调用及其对应的路径和接口所对应的方法来获取所述结果数据。

在一个示例中,在上述用于java程序的数据处理装置200中,进一步包括:结果获取单元,用于由所述java程序通过所述java本地接口和所述java本地接口调用管理程序获得所述结果数据。

这里,本领域技术人员可以理解,上述用于java程序的数据处理装置200中的各个单元和模块的具体功能和操作已经在上面参考图2的用于java程序的数据处理方法的描述中得到了详细介绍,并因此,将省略其重复描述。

如上所述,根据本申请实施例的用于java程序的数据处理装置200可以实现在各种终端设备中。例如运行java程序的服务器或者终端,例如智能手机、台式计算机、笔记本计算机等。在一个示例中,根据本申请实施例的用于java程序的数据处理装置200可以作为一个软件模块和/或硬件模块而集成到终端设备中。例如,该用于java程序的数据处理装置200可以是该终端设备的操作系统中的一个软件模块,或者可以是针对于该终端设备所开发的一个应用程序;当然,该用于java程序的数据处理装置200同样可以是该终端设备的众多硬件模块之一。

替换地,在另一示例中,该用于java程序的数据处理装置200与该终端设备也可以是分立的设备,并且该用于java程序的数据处理装置200可以通过有线和/或无线网络连接到该终端设备,并且按照约定的数据格式来传输交互信息。

示例性电子设备

下面,参考图5来描述根据本申请实施例的电子设备。

图5图示了根据本申请实施例的电子设备的框图。

如图5所示,电子设备10包括一个或多个处理器11和存储器12。

处理器13可以是中央处理单元(cpu)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能。

存储器12可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(ram)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(rom)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器11可以运行所述程序指令,以实现上文所述的本申请的各个实施例的用于java程序的数据处理方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如java程序,jni调用管理程序等各种内容。

在一个示例中,电子设备10还可以包括:输入装置13和输出装置14,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。

该输入装置13可以包括例如键盘、鼠标等等。

该输出装置14可以向外部输出各种信息,包括外部程序返回的结果数据等。该输出装置14可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。

当然,为了简化,图5中仅示出了该电子设备10中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备10还可以包括任何其他适当的组件。

示例性计算机程序产品和计算机可读存储介质

除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的用于java程序的数据处理方法中的步骤。

所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。

此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的用于java程序的数据处理方法中的步骤。

所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。

以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。

本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。

还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。

提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。

为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1