安卓系统窗口数据的获取方法及装置与流程

文档序号:11133644阅读:904来源:国知局
安卓系统窗口数据的获取方法及装置与制造工艺

本发明涉及移动终端操作系统技术领域,尤其涉及一种安卓系统窗口数据的获取方法及装置。



背景技术:

随着移动设备技术不断地发展和移动终端在人们日常生活中的普及,人们对移动终端在娱乐性和智能型方面的要求也与日俱增。移动终端的截屏功能,用于获取系统窗口数据的,方便了用户进行信息的共享,增加了趣味性和娱乐性,越来越受到人们的欢迎。

目前,android系统主要有以下几种截屏方案:

方案一、通过调用View.getDrawingCache()。其中,.getDrawingCache是android的view族类的的一个方法,该方法是获取view的视图缓存这是最常见的应用内截屏方法,这个函数的原理就是通过view的Cache来获取一个bitmap对象,然后保存成图片文件。这种截屏方式虽然非常的简单,但是有很大的局限性,该方法只能对应用自身的view来获取cache,所以只能截取应用内部的界面,而状态栏等应用外部的视图便都无法截取到。并且其对某些view的兼容性也不好,比如web view内的内容也无法截取。

方案二、读取屏幕buffer。市场上绝大多数显示设备成像都是通过一块内存进行显示(这块内存就是所说的显存),这块显存在程序中也称为屏幕buffer,操作系统将需要成像的像素数据拷贝到屏幕buffer来显示,也就是说通过读取屏幕buffer就能获取当前屏幕的成像,因为Android是基于linux内核,所以能在android中找到屏幕buffer这个设备,本方案通过读取/dev/graphics/fb0这个帧缓存文件中的数据来获取屏幕上的内容,但是/dev/目录的读取权限是system级的,普通应用根本就没有这个权限,需要root。

方案三、通过VirtualDisplay接口。VirtualDisplay是android5.0提供的录屏接口,其使用非常简单,其缺点也很明显,只能在android 5.0以上的终端设备才能使用,而对于目前用户占大多数的android 4.+版本的终端设备则无法使用该接口。



技术实现要素:

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的安卓系统窗口数据的获取方法及装置,本发明实施例无需进行root操作,即可实现各种版本安卓系统的终端设备的窗口数据的获取。

本发明的一个方面,提供了一种安卓系统窗口数据的获取方法,包括:

在当前应用程序中创建一个java程序,所述java程序用于在监听到当前应用程序接收到截屏请求时,采用java反射机制访问存在系统访问权限的截屏方法,以获取安卓系统窗口数据;

获取当前应用程序的安装路径;

通过adb shell命令进入安卓系统的shell模式,在安卓系统的shell模式下根据所述安装路径查找并启动所述java程序。

可选地,所述存在系统访问权限的截屏方法为安卓系统的源码中的具有隐藏属性的截屏方法。

可选地,所述在当前应用程序中创建一个java程序,包括:

在所述java程序的main方法中创建一个截屏服务,所述截屏服务用于监听当前应用程序是否接收到截屏请求,并在获取到安卓系统窗口数据时,将获取到的安卓系统窗口数据传输到对应的服务端口。

可选地,还包括:

获取所述截屏服务对应的服务端口,并采用adb端口重定向命令将所述服务端口重定向到PC设备的预设端口,以供所述PC设备获取所述安卓系统窗口数据并进行显示。

可选地,所述采用java反射机制访问存在系统访问权限的截屏方法,包括:

根据所述截屏方法所属类的类名称描述符,获取所述截屏方法所属的类型对象;

获取所述截屏方法的输入参数和方法名称描述符,根据所述输入参数和方法名称描述符获取所述截屏方法的对象;

基于所述截屏方法所属的类型对象以及所述截屏方法的对象,采用Invoke方法调用所述截屏方法。

可选地,所述根据所述截屏方法所属类的类名称描述符,获取所述截屏方法所属的类型对象,包括:

判定当前安卓系统的版本信息,根据所述版本信息确定所述截屏方法所属类的类名称描述符;

采用Class类的Class.forName()方法,以根据所述类名称描述符获取所述截屏方法所属类的类型对象。

可选地,所述根据所述输入参数和方法名称描述符获取所述截屏方法的对象,包括:

所述输入参数包括当前屏幕的宽度值和高度值;

将所述方法名称描述符作为第一参数,将所述当前屏幕的宽度值和高度值作为第二参数,采用getDeclaredMethod方法获取所述截屏方法的对象。

可选地,所述在安卓系统的shell模式下根据所述安装路径查找并启动所述java程序,包括:

在安卓系统的shell模式下调用app_process命令,以根据所述安装路径查找并启动所述java程序。

本发明的另一个方面,提供了一种安卓系统窗口数据的获取装置,包括:

创建模块,用于在当前应用程序中创建一个java程序,所述java程序用于在监听到当前应用程序接收到截屏请求时,采用java反射机制访问存在系统访问权限的截屏方法,以获取安卓系统窗口数据;

获取模块,用于获取当前应用程序的安装路径;

执行模块,用于通过adb shell命令进入安卓系统的shell模式,在安卓系统的shell模式下根据所述安装路径查找并启动所述java程序。

可选地,所述创建模块,具体用于在所述java程序的main方法中创建一个截屏服务,所述截屏服务用于监听当前应用程序是否接收到截屏请求,并在获取到安卓系统窗口数据时,将获取到的安卓系统窗口数据传输到对应的服务端口;

进一步地,所述装置还包括:

数据共享模块,用于获取所述截屏服务对应的服务端口,并采用adb端口重定向命令将所述服务端口重定向到PC设备的预设端口,以供所述PC设备获取所述安卓系统窗口数据并进行显示。

本发明实施例提供的安卓系统窗口数据的获取方法及装置,通过在当前应用程序中创建一个java程序,并在安卓系统的shell模式下根据该应用程序的安装路径查找并启动所述java程序,以使该java程序在监听到当前应用程序接收到截屏请求时,采用java反射机制访问存在系统访问权限的截屏方法,以获取安卓系统窗口数据。本发明实施例无需进行root操作,即可实现各种版本安卓系统的终端设备的窗口数据的获取,而且在各种机型的android终端设备上都能适用,具有更好的适配性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明实施例的一种安卓系统窗口数据的获取方法的流程图;

图2示出了根据本发明实施例的另一种安卓系统窗口数据的获取方法的流程图;

图3示出了根据本发明实施例的一种安卓系统窗口数据的获取装置的结构示意图;

图4示出了根据本发明实施例的另一种安卓系统窗口数据的获取装置的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。

本实施例提供的安卓系统窗口数据的获取方法被配置在终端设备中,例如,PDA(个人数字助理,Personal Digital Assistant)、智能手机等各种使用安卓操作系统的电子设备。下面以智能手机为例,结合附图对本申请实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。

图1示意性示出了本发明一个实施例的安卓系统窗口数据的获取方法的流程图。

参照图1,本发明实施例的安卓系统窗口数据的获取方法具体包括以下步骤:

步骤S11、在当前应用程序中创建一个java程序,所述java程序用于在监听到当前应用程序接收到截屏请求时,采用java反射机制访问存在系统访问权限的截屏方法,以获取安卓系统窗口数据。

反射是指计算机程序在运行时(Run time)可以访问、检测和修改它本身状态或行为的一种能力。例如,程序能够“观察”并且修改自己的行为。

本发明实施例中,所述存在系统访问权限的截屏方法为安卓系统的源码中的具有隐藏属性的截屏方法。

具体的,在安卓系统的源码中,存在一些系统的隐藏方法,这些方法被标记成了隐藏属性,具体采用“@hide”符号进行标记,这些被标记成隐藏属性隐藏方法没有办法直接调用,需要通过反射机制来进行访问。

本实施例中的截屏方法具体为Surface/SurfaceControl方法。SurfaceControl.screenshot()与Surface.screenshot()是android系统提供的截屏函数。其中,android api版本大于17采用的是SurfaceControl.screenshot(),android api版本低于17用的是Surface.screenshot()。

在实际应用场景中,虽然可以通过反射机制反射到screenshot方法并调用,但是普通的android应用程序根本就没有调用screenshot方法的权限,也无法完成screenshot方法的反射。因此本发明实施例中,通过创建一个java程序,并将实现截屏的方法放在java程序中,通过java程序调用screenshot方法。具体的,java程序用于监听当前应用程序是否接收到截屏请求,并在监听到当前应用程序接收到截屏请求时,调用java反射机制访问存在系统访问权限的截屏方法,以获取安卓系统窗口数据。

由于用于实现截屏方法的java类再android当中没有办法直接运行,而且其java文件也没有提供android的运行环境,因此,为了确保java程序的正常运行,本实施例中通过在应用程序中创建能够实现截屏方法的java程序,并将该应用程序apk作为java程序的宿主,将java程序码放入android应用代码中,让android的apk为其提供运行环境。

需要说明的是,作为java程序宿主的当前应用程序可以是新创建的应用程序,也可以是当前系统中已有的应用程序。

进一步地,当所述当前应用程序是新创建的应用程序时,所述方法还包括预先创建应用程序,并将该应用程序作为java程序的宿主应用程序的步骤。

步骤S12、获取当前应用程序的安装路径。

可理解的,由于本实施例中的java程序是在应用程序中创建的,因此当前应用程序的安装路径也即是java程序的路径。

本实施例中,导出java程序路径是通过执行“export CLASSPATH=”命令来实现的,命令后面接java类的路径,这里就是当前应用程序apk包的安装路径,在android手机中应用的apk包都是安装在/data/app目录下,其安装名字就是应用的包名,本实施例中用pkg来指代,所以其完整命令是:

“export CLASSPATH=/data/app/pkg”。

步骤S13、通过adb shell命令进入安卓系统的shell模式,在安卓系统的shell模式下根据所述安装路径查找并启动所述java程序。

本发明实施例中,在获取到当前应用程序的安装路径之后,通过在安卓系统的shell模式下根据该安装路径查找并启动在当前应用程序中创建的java程序,以使其在监听到当前应用程序接收到截屏请求时,采用java反射机制访问存在系统访问权限的截屏方法,获取安卓系统窗口数据。

在实际应用场景中,虽然普通的android应用程序根本就没有调用screenshot方法的权限,但是,安卓系统的shell模式却有这个权限,本发明实施例可以通过adb shell命令打开android手机的shell模式,进入安卓系统的shell模式,进而在安卓系统的shell模式下根据所述安装路径查找并启动所述java程序。

本发明实施例提供的安卓系统窗口数据的获取方法,通过在当前应用程序中创建一个java程序,并在安卓系统的shell模式下根据该应用程序的安装路径查找并启动所述java程序,以使该java程序在监听到当前应用程序接收到截屏请求时,采用java反射机制访问存在系统访问权限的截屏方法,以获取安卓系统窗口数据。本发明实施例无需进行root操作,即可实现各种版本安卓系统的终端设备的窗口数据的获取,简单、有效地实现了各种安卓系统窗口数据的获取,而且在各种机型的android终端设备上都能适用,具有更好的适配性。

本发明实施例中,所述步骤S11中的在当前应用程序中创建一个java程序,具体通过以下步骤实现:在所述java程序的main方法中创建一个截屏服务,所述截屏服务用于监听当前应用程序是否接收到截屏请求,并在获取到安卓系统窗口数据时,将获取到的安卓系统窗口数据传输到对应的服务端口。

其中,所述截屏请求可以通过PC设备发送的http请求实现。具体的,PC设备可通过浏览器来访问终端设备的当前应用。

在一个具体实施例中,在android中实现java程序的创建具体包括:在java程序的类中实现一个静态方法,将其命名为main,并在main方法中创建一个截屏服务。为了简单快速地实现截屏,可以开启http服务作为所述的截屏服务。在java和android中开启http服务的方式有很多,本发明实施例中可以使用okhttp和AsyncHttpServer实现http服务的创建,该http服务用于监听当前应用程序是否接收到截屏请求,当服务监听到截屏请求时,java程序采用java反射机制访问存在系统访问权限的截屏方法,以获取安卓系统窗口数据就返回其截图的数据,并在获取到安卓系统窗口数据时,将获取到的安卓系统窗口数据传输到对应的服务端口。

在一个具体示例中,所述截屏请求可以为一个get请求,请求名为screenshot,可理解的是本实施例中的请求名并不是固定的,用户可在实际使用场景中自己约定,对此本发明不做具体限定。

在本发明的一个可选实施例中,如图2所示,所述安卓系统窗口数据的获取方法还包括步骤S14:

步骤S14、获取所述截屏服务对应的服务端口,并采用adb端口重定向命令将所述服务端口重定向到PC设备的预设端口,以供所述PC设备获取所述安卓系统窗口数据并进行显示。

本实施例中,虽然通过adb shell命令开启了截屏服务,但是该截屏服务只能通过adb shell命令进行请求访问,也就是只能在手机上进行内部的访问请求。为了数据PC设备共享窗口数据,实现android系统的终端设备与PC设备的同步显示,本发明实施例,通过adb端口重定向命令开启端口转发功能。例如本实施例中开启的截屏服务的端口是8080,那么需要调用adb命令“adb forward tcp:8080tcp:8080”,使得PC设备通过8080端口去访问该截屏服务,以获取所述安卓系统窗口数据并进行显示。

本发明实施例通过端口重定向命令,将截屏服务对应的服务端口重定向到PC设备的预设端口,以供所述PC设备获取所述安卓系统窗口数据并进行同步显示,实现非root情况下,android系统的终端设备与PC设备的同步显示。

本发明实施例中,所述采用java反射机制访问存在系统访问权限的截屏方法,包括以下附图中未示出的步骤:

步骤A11、根据所述截屏方法所属类的类名称描述符,获取所述截屏方法所属的类型对象。

其中,所述类名称描述符具体是指该类的字符串名称。

进一步地,步骤A11中的根据所述截屏方法所属类的类名称描述符,获取所述截屏方法所属的类型对象,具体包括:判定当前安卓系统的版本信息,根据所述版本信息确定所述截屏方法所属类的类名称描述符;采用Class类的Class.forName()方法,以根据所述类名称描述符获取所述截屏方法所属类的类型对象。

步骤A12、获取所述截屏方法的输入参数和方法名称描述符,根据所述输入参数和方法名称描述符获取所述截屏方法的对象。

进一步地,步骤A12中的根据所述输入参数和方法名称描述符获取所述截屏方法的对象,包括:

所述输入参数包括当前屏幕的宽度值和高度值;将所述方法名称描述符作为第一参数,将所述当前屏幕的宽度值和高度值作为第二参数,采用getDeclaredMethod方法获取所述截屏方法的对象。

步骤A13、基于所述截屏方法所属的类型对象以及所述截屏方法的对象,采用Invoke方法调用所述截屏方法。

本实施例中,由于screenshot方法是类方法所以先要获取其所属的类型对象。具体的,可以调用Class类的forName方法,该方法接受一个类的字符串名称返回该类的类型对象。在这里需要先判断当前安卓系统的版本,具体的,安卓系统的版本可通过系统函数:Build.VERSION.SDK_INT来读取,当返回值大于17时,得到的字符串名称就是“android.view.SurfaceControl”,当返回值小于17时,得到的字符串名称是“android.view.Surface”,当返回SurfaceControl类/Surface类的类型对象后,需要调用其getDeclaredMethod方法来反射screenshot方法。getDeclaredMethod方法第一个参数是screenshot方法的方法名称描述符,这里就是“screenshot”,第二个参数是screenshot方法的参数类型数组,screenshot方法接受需要截图的宽、高作为参数,即screenshot方法的参数:终端设备的屏幕的宽和高,即第二个参数就是‘new Class[]{Integer.TYPE,Integer.TYPE}’,这样就返回一个screenshot方法的对象,要想调用screenshot方法需要再调用其invoke方法,invoke方法的参数就是终端设备的屏幕的宽和高。其中,终端设备的屏幕的宽、高可以使用android提供的SurfaceControlVirtualDisplayFactory.getCurrentDisplaySize方法来获取。

本发明实施例中,所述在安卓系统的shell模式下根据所述安装路径查找并启动所述java程序,包括:

在安卓系统的shell模式下调用app_process命令,以根据所述安装路径查找并启动所述java程序。

由于adb shell命令执行的都是命令行程序,而本发明实施例中的java程序是在一个android应用程序中创建的,要想运行该java程序,需要使用app_process命令。其中,app_process命令可以直接在android设备上执行java程序,由于本实施例中的java程序代码在终端设备的apk中,所以首先需要设置app_process执行的路径,路径设置后可以直接调用app_process命令来启动java程序。具体执行的命令为“exec app_process/system/bin pkg.Main'$@'”,该命令表示调用exec app_process命令,system/bin是其系统bin路径,pkg.Main指代本实施例中创建的截屏服务类的全称。

本发明实施例在完成截屏服务的开启操作之后,仅需要向包含有java程序代码的应用程序发送截屏请求即可,每次通过adb命令访问截屏请求时会返回一张终端设备当前的屏幕截图,这样只要在PC设备重复调用服务请求就能源源不断的获取终端设备当前的系统窗口数据,从而达到PC机与手机同步进行显示的效果。

具体的,循环发送可以pc端定义自己的逻辑,比如每隔多少毫秒发送一次http请求,pc端可以自己针对不同的机型进行设置,已达到最好的效果,其实电脑端相当于服务的客户端,实现一个网络的客户端有多种方法,例如可以直接通过浏览器来获取,浏览器访问screenshot请求,然后将获取的图像显示在浏览器上。

本发明实施例提供了一种安卓系统终端设备与PC设备在不root的情况下的同屏方案,与现有技术相比,本技术方案具有更好的适配性,在各种机型的android手机上都能适用。

对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。

图3示意性示出了本发明一个实施例的安卓系统窗口数据的获取装置的结构示意图。

参照图3,本发明实施例的安卓系统窗口数据的获取装置具体包括创建模块301、获取模块302以及执行模块303,其中:

所述的创建模块301,用于在当前应用程序中创建一个java程序,所述java程序用于在监听到当前应用程序接收到截屏请求时,采用java反射机制访问存在系统访问权限的截屏方法,以获取安卓系统窗口数据。

其中,所述存在系统访问权限的截屏方法为安卓系统的源码中的具有隐藏属性的截屏方法。

所述的获取模块302,用于获取当前应用程序的安装路径;

所述的执行模块303,用于通过adb shell命令进入安卓系统的shell模式,在安卓系统的shell模式下根据所述获取模块302获取的安装路径查找并启动所述创建模块301在当前应用程序中创建的java程序。

可理解的,由于本实施例中的java程序是在当前应用程序中创建的,因此当前应用程序的安装路径也即是java程序的路径。因此,本实施例通过获取模块302获取当前应用程序的安装路径,并在安卓系统的shell模式下根据该安装路径查找并启动在当前应用程序中创建的java程序,以使其在监听到当前应用程序接收到截屏请求时,采用java反射机制访问存在系统访问权限的截屏方法,以获取安卓系统窗口数据。

在本发明的一个可选实施例中,所述创建模块301,具体用于在所述java程序的main方法中创建一个截屏服务,所述截屏服务用于监听当前应用程序是否接收到截屏请求,并在获取到安卓系统窗口数据时,将获取到的安卓系统窗口数据传输到对应的服务端口;

进一步地,如图4所示,所述安卓系统窗口数据的获取装置还包括数据共享模块304,所述的数据共享模块304,用于获取所述截屏服务对应的服务端口,并采用adb端口重定向命令将所述服务端口重定向到PC设备的预设端口,以供所述PC设备获取所述安卓系统窗口数据并进行显示。

本发明实施例中,所述的执行模块303,具体用于在安卓系统的shell模式下调用app_process命令,以根据所述安装路径查找并启动所述java程序。

进一步地,所述执行模块303,具体通过启动所述java程序,以使所述java程序执行如下操作:根据所述截屏方法所属类的类名称描述符,获取所述截屏方法所属的类型对象;获取所述截屏方法的输入参数和方法名称描述符,根据所述输入参数和方法名称描述符获取所述截屏方法的对象;基于所述截屏方法所属的类型对象以及所述截屏方法的对象,采用Invoke方法调用所述截屏方法。

其中,所述根据所述截屏方法所属类的类名称描述符,获取所述截屏方法所属的类型对象,包括:判定当前安卓系统的版本信息,根据所述版本信息确定所述截屏方法所属类的类名称描述符;采用Class类的Class.forName()方法,以根据所述类名称描述符获取所述截屏方法所属类的类型对象。

其中,所述根据所述输入参数和方法名称描述符获取所述截屏方法的对象,包括:所述输入参数包括当前屏幕的宽度值和高度值;将所述方法名称描述符作为第一参数,将所述当前屏幕的宽度值和高度值作为第二参数,采用getDeclaredMethod方法获取所述截屏方法的对象。

本发明实施例提供的安卓系统窗口数据的获取装置,通过创建模块301在当前应用程序中创建一个java程序,并使执行模块303在安卓系统的shell模式下根据该应用程序的安装路径查找并启动所述java程序,以使该java程序在监听到当前应用程序接收到截屏请求时,采用java反射机制访问存在系统访问权限的截屏方法,以获取安卓系统窗口数据。本发明实施例无需进行root操作,即可实现各种版本安卓系统的终端设备的窗口数据的获取,而且在各种机型的android终端设备上都能适用,具有更好的适配性。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

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