用于移动设备的帧率检测方法、装置及电子设备与流程

文档序号:16327697发布日期:2018-12-19 06:00阅读:256来源:国知局
用于移动设备的帧率检测方法、装置及电子设备与流程

本发明涉及移动终端测试领域,具体而言,涉及一种用于移动设备的帧率检测方法、装置及电子设备。

背景技术

随着智能移动设备的普及,可例如安卓移动设备(如基于安卓系统的移动电话、平板电脑等)的普及,对安卓应用进行性能测试评估成为了安卓设备厂商、应用开发商以及消费者所共同关注的热点。其中,帧率作为图形渲染的最终指标,是各项性能指标中最为重要的参考之一。然而,由于安卓系统各rom不统一,安卓应用的接口也参差不齐,想要直接获取帧率信息并不容易。另外,由于安卓系统的权限设定,获取到系统级的接口需要使用adb指令或者直接获取到root权限,也为通用的帧率检测方法来带了困难。

目前,获取帧率信息主要有以下几种方式:

1、在安卓手机的设置里打开gpu呈现模式分析(profilegpurendering)。点击安卓(android)设备的“设置”->"开发者选项",然后勾选“gpu显示配置文件”。启动应用,即可看到应用每帧的gpu渲染耗时,从而计算得到帧率数据。此方法的局限性在于:安卓自带的gpu呈现模式分析:这种方式只对普通应用程序的ui视图绘制有效,对游戏等应用无效。而且用户看到的是每帧的渲染耗时,并不能直接获取帧率。

2、将安卓设备连接电脑,在电脑端上通过adbshell指令获取安卓系统中的渲染信息,从而计算出帧率。此方法的局限性在于:使用shell指令获取安卓系统的渲染信息:这种方法目前需要连接电脑使用adb权限或者将手机root获取root权限。前者使用不便,尤其在需要对手机进行断电等条件下的测试时,连接电脑会造成干扰。后者则不适用于非root手机。

3、对具有计算fps接口的应用程序,导出其自身的fps数据。如对于游戏程序来说,一般成熟的游戏引擎会具备计算帧率的接口,可以获取其fps数据。这个方法对应用程序的要求较高,一般的应用程序并不会提供帧率计算接口。

因此,需要一种新的用于移动设备的帧率检测方法、装置及电子设备。

在所述背景技术部分公开的上述信息仅用于加强对本发明的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。



技术实现要素:

有鉴于此,本发明提供一种用于移动设备的帧率检测方法、装置及电子设备,能够应用于安卓系统的移动设备,通过便捷的操作获取帧率检测数据。

本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。

根据本发明的一方面,提出一种用于移动设备的帧率检测方法,包括:

调用安装于所述移动设备的虚拟接口,监听基于所述移动设备的客户端的帧率检测操作指令,其中,所述虚拟接口用于执行shell指令并返回执行的结果;

响应于所述帧率检测操作指令,获取待检测应用的帧率检测数据;

根据所述帧率检测数据,获取所述移动设备的待检测应用的当前帧率数据。

在本公开的一种示例性实施例中,所述响应于所述帧率检测操作指令,获取待检测应用的帧率检测数据,包括:通过所述虚拟接口查询并返回帧率关键字;通过所述移动设备的客户端获取所述待检测应用的包名,比对所述包名与所述帧率关键字,生成帧率采集关键字;根据所述帧率采集关键字,通过所述虚拟接口采集所述待检测应用的帧率检测数据。

在本公开的一种示例性实施例中,还包括:通过所述移动设备的客户端获取所述待检测应用的包名,过滤所述移动设备上运行的所有应用,以确定所述待检测应用。

在本公开的一种示例性实施例中,所述根据所述帧率检测数据,获取所述移动设备的待检测应用的当前帧率数据,包括:根据所述待检测应用的帧率检测数据,获取原始帧率数据;基于所述移动设备的客户端进行所述原始帧率数据的计算,获取所述待检测应用的当前帧率数据。

在本公开的一种示例性实施例中,所述调用安装于所述移动设备的虚拟接口之前还包括:检测所述虚拟接口是否开启,若是,则执行下一步骤;若否,则执行所述虚拟接口的启动指令,以开启所述虚拟接口。

在本公开的一种示例性实施例中,所述帧率检测操作是以预设时间间隔执行。

在本公开的一种示例性实施例中,所述原始帧率数据,包括:帧率采集数量信息;以及图形处理器渲染时间信息。

在本公开的一种示例性实施例中,所述基于所述移动设备的客户端进行所述原始帧率数据的计算,获取所述待检测应用的当前帧率数据,包括:根据所述图形处理器渲染时间信息,获取垂直同步开始时间与垂直同步结束时间;根据所述垂直同步开始时间、所示垂直同步结束时间以及所述帧率采集数量信息,获取所述待检测应用的当前帧率数据。

在本公开的一种示例性实施例中,所述根据所述垂直同步开始时间、所示垂直同步结束时间以及所述帧率采集数量信息,获取所述待检测应用的当前帧率数据,根据如下公式实现:

fps=n/(vte-vts);

其中,fps为所述待检测应用的当前帧率数据,n为所述数据量信息,vte为所述垂直同步开始时间,vts为所述垂直同步结束时间。

在本公开的一种示例性实施例中,当监听到基于所述移动设备的客户端的所述帧率检测结束指令时,将所述当前帧率数据显示于所述客户端的图形用户界面中,并执行所述当前帧率数据的备份。

根据本发明的一方面,提出一种用于移动设备的帧率检测装置,包括:调用监听单元,用于调用安装于所述移动设备的虚拟接口,监听基于所述移动设备的客户端的帧率检测操作指令,其中,所述虚拟接口用于执行shell指令并返回执行的结果;帧率检测单元,用于响应于所述帧率检测操作指令,获取待检测应用的帧率检测数据;数据获取单元,用于根据所述帧率检测数据,获取所述移动设备的待检测应用的当前帧率数据。

根据本公开的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,其特殊之处在于,所述计算机程序被处理器执行时实现以上任一所述的用于移动设备的帧率检测方法。

根据本公开的一个方面,提供一种电子设备,其特殊之处在于,包括处理器和存储器;其中,存储器用于存储所述处理器的可执行指令,所述处理器被配置为经由执行所述可执行指令来执行以上任一所述的用于移动设备的帧率检测方法。

根据本发明的用于移动设备的帧率检测方法、装置、计算机可读存储介质及电子设备,通过调用安装于移动设备上的用于执行shell指令和返回执行结果的虚拟接口,并且监听基于移动设备的客户端的帧率检测操作指令,并利用虚拟接口进行帧率数据的采集和传输,无需获取移动设备的root权限,无需保持和电脑端的连接,即可检测移动设备的帧率数据。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。

附图说明

通过参照附图详细描述其示例实施例,本发明的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是根据一示例性实施例示出的一种用于移动设备的帧率检测方法的流程图;

图2是根据一示例性实施例示出的一种用于移动设备的帧率检测装置的框图;

图3是根据一示例性实施例示出的一种程序产品的示意图;

图4是根据另一示例性实施例示出的一种一种电子设备的模块示意图。

具体实施方式

现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本发明将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。

此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。

附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。

附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。

应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本公开概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。

本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的,因此不能用于限制本发明的保护范围。

图1是根据一示例性实施例示出的一种用于移动设备的帧率检测方法的流程图。如图1所示,所述检测方法包括:

s100:调用安装于所述移动设备的虚拟接口,监听基于所述移动设备的客户端的帧率检测操作指令,其中,所述虚拟接口用于执行shell指令并返回执行的结果;

s200:响应于所述帧率检测操作指令,获取待检测应用的帧率检测数据;

s300:根据所述帧率检测数据,获取所述移动设备的待检测应用的当前帧率数据。

根据本公开的一种用于移动设备的帧率检测方法,通过调用安装于移动设备上的用于执行shell指令和返回执行结果的虚拟接口,并且监听基于移动设备的客户端的帧率检测操作指令,并利用虚拟接口进行帧率数据的采集和传输,无需获取移动设备的root权限,无需保持和电脑端的连接,即可检测移动设备的帧率数据。

下面结合附图对本公开的具体实施方式作进一步详细的说明。

安卓(android)是一种以linux为基础的开放源码操作系统,应用于移动便携设备。本实施例以基于安卓系统的移动设备上安装的应用的帧率检测为例,在步骤s100中,调用安装于所述移动设备的虚拟接口,监听基于所述移动设备的客户端的帧率检测操作指令;其中,所述虚拟接口用于执行shell指令并返回执行的结果。shell是系统的用户界面,提供了用户(即测试人员)与内核进行交互操作的一种接口,它接收测试人员输入的指令并把它发送至内核去执行。在本示例性实施例中,虚拟接口可以为socket接口,socket接口是编译好的二进制程序,用于与移动设备上安装的客户端进行通信,接收客户端所发送的信息和指令,以及执行shell指令,并将执行结果返回。例如,在初次使用时,可以将搭载安卓系统的移动设备与pc端进行连接,通过pc端的软件自动将编译好的虚拟接口推送并安装于移动设备上,并在后台启动虚拟接口。

在本公开的一种示例性实施例中,步骤s100之前还包括:检测所述虚拟接口是否开启,若是,则执行下一步骤;若否,则执行所述虚拟接口的启动指令,以开启所述虚拟接口。这一步骤是为了确认虚拟接口是否已经成功启动,以便后续帧率检测步骤的进行。在本实施例中,可以通过pc端软件以发送adb指令的方式获取待检测移动设备的状态,以确认虚拟接口是否处于开启状态。

具体地,pc端软件可用于执行如下步骤:

1)检查与pc端当前连接的至少一台安卓移动设备;

2)测试人员选择待检测的一台或多台移动设备;

3)检查选中的移动设备是否已开启socket接口;

4)若否,执行adbpush指令并后台启动,并进行再次检查;

5)若是,执行adbpush指令并后台启动,并进行再次检查;

6)直至确认socket接口已处于开启状态,防止因为端口被占用等原因导致无法启动成功。

相关技术中,常规安卓内应用的帧率检测在移动设备处于非root情况下,只能执行有限的shell指令,对dumsys这种指令是没有执行权限的。而通过adb指令在pc端启动并调用socket接口后,socket接口有权限执行shell指令,然后通过socket接口的s/c交互,可以使移动设备的客户端将要执行的指令发送给socket接口,并获取socket接口的执行结果。如此以来,就相当于移动设备的客户端获取到了执行adbshell所有指令的权限。

在本公开的一种示例性实施例中,所述步骤s200响应于所述帧率检测操作指令,获取待检测应用的帧率检测数据,包括:

s202:通过所述虚拟接口查询并返回帧率关键字;

s204:通过所述移动设备的客户端获取所述待检测应用的包名,比对所述包名与所述帧率关键字,生成帧率采集关键字;

s206:根据所述帧率采集关键字,通过所述虚拟接口采集所述待检测应用的帧率检测数据。

在本公开的一种示例实施例中,移动设备的客户端为安装于移动设备上的用于帧率检测的测试应用,可实现测试人员与移动设备的交互,接收测试人员开始/停止帧率检测的指令,检测顶部应用(即待检测应用),进行帧率关键字的过滤,以及计算并实时显示当前帧率数据等功能。

在本公开的一种示例实施例中,可相应地为客户端设置悬浮窗服务。当测试人员点击帧率检测按钮时,客户端被隐藏,同时启动后台悬浮窗服务。通过悬浮窗悬浮于待检测应用的顶部,从而避免客户端本身对待检测应用的干扰。

测试人员确认发起帧率检测请求时,客户端自动检测当前的顶部应用的应用名和包名,并在界面中弹出确认窗口。当测试人员点击确认窗口确认对该应用进行帧率检测时,发送帧率检测指令至socket接口。在本公开的一种示例实施例中,帧率检测操作是以预设时间间隔执行,即以预设时间间隔将所述帧率检测指令发送至socket接口。其中,包名(packagename)就是由开发者定义的名字,通常使用包名作为应用的唯一标识。即:包名必须唯一,一个包名代表一个应用,系统不允许两个应用使用同样的包名。包名主要用于系统识别应用,这个名字可以随便定义,应用名字是开发包中定义好的。

在本公开的一种示例实施例中,所述方法还包括:通过所述移动设备的客户端获取所述待检测应用的包名,过滤所述移动设备上运行的所有应用,以确定所述待检测应用。通过获取顶部应用(即待检测应用)的包名,在获取可视窗口时进行包名过滤,将移动设备上运行的所有应用过滤一遍,以确定待检测应用,从而保证计算的帧率一定来自于待检测应用。例如,当测试人员在移动设备上关闭待检测应用a,而打开另一个应用b时,此时客户端能够感知,并且测得应用1的帧率为0,若不进行过滤操作则会将应用b的帧率误检测为应用a的帧率。

例如,帧率检测过程的具体执行代码可以为如下所示:

dumpsysactivitytop用于检测顶部应用

dumpsyssurfaceflinger–list获取可视窗口列表过滤出包含待检测应用包名的窗口

dumpsyssurfaceflinger–latency+过滤后的窗口获取窗口的帧延时数据。

随后,通过socket接口查询并返回一组关键字,客户端将返回的关键字与待检测应用的包名进行比对,生成帧率采集关键字。再将帧率采集关键字的相关信息发送至socket接口,以采集与帧率采集关键字关联的帧率数据。当socket接口完成帧率数据的采集后,将原始帧率数据返回至客户端。在本实施例中,通过帧率采集关键字与应用程序包名相结合进行帧率采集数据过滤提取的方式,所采集到的帧率数据将不会受到用户非法操作、应用前后台切换、系统通知等影响,使得检测到的帧率数据更加准确可信。

在本公开的一种示例性实施例中,所述步骤s300包括:

步骤s302:根据所述待检测应用的帧率检测数据,获取原始帧率数据;

步骤s304:基于所述移动设备的客户端进行所述原始帧率数据的计算,获取所述待检测应用的当前帧率数据。

其中,当前帧率数据一般用每秒传输帧数(framespersecond,fps)表示,具体是指画面的每秒传输帧数,通俗来讲就是指动画或视频的画面数。fps是测量用于保存、显示动态视频的信息数量,每秒钟帧数愈多,所显示的动画就会愈流畅。

在本公开的一种示例性实施例中,所述原始帧率数据,包括:帧率采集数量信息;以及图形处理器渲染时间信息。

在本公开的一种示例性实施例中,所述基于所述移动设备的客户端进行所述原始帧率数据的计算,获取所述待检测应用的当前帧率数据,包括:

根据所述图形处理器渲染时间信息,获取垂直同步开始时间与垂直同步结束时间;

根据所述垂直同步开始时间、所示垂直同步结束时间以及所述帧率采集数量信息,获取所述待检测应用的当前帧率数据。

例如,在获取的原始帧率数据中,取非零的第二列数据,也就是上述指令(dumpsyssurfaceflinger–latency+过滤后的窗口)结果中的垂直同步时间部分。由于每一次读取帧率数据时有可能由于缓存数据的刷新不及时,上一秒的数据还掺杂在这一秒的数据中,因此需要记录上一次的最后垂直同步时间vt1,而这次采集的结果中由上而下跟vt1作比较,取出比vt1大的数据组。此外,在一般情况下,采集的延时数据中最后一行有可能出现异常数据,因此采集垂直同步数据只取至倒数第二行。

在本公开的一种示例性实施例中,所述根据所述垂直同步开始时间、所示垂直同步结束时间以及所述帧率采集数量信息,获取所述待检测应用的当前帧率数据,根据如下公式实现:

fps=n/(vte-vts);

其中,fps为所述待检测应用的当前帧率数据,n为所述数据量信息,vte为所述垂直同步开始时间,vts为所述垂直同步结束时间。

在本公开的一种示例性实施例中,所述方法还包括:

当监听到基于所述移动设备的客户端的所述帧率检测结束指令时,将所述当前帧率数据显示于所述客户端的图形用户界面中,并执行所述当前帧率数据的备份。

当测试人员认为可以结束帧率检测时,仍通过客户端触发帧率检测结束指令,并将当前帧率数据显示于客户端的图形用户界面中,其中,当前帧率数据可包括:平均帧率数据、最高帧率数据、最低帧率数据等等,具体可由测试人员根据分析需求进行设置,本公开不局限于此。另外,还可执行当前帧率数据的备份,以便于后续测试及分析的需求。

根据本公开的一种示例性实施例,测试人员的具体测试流程如下:

初次使用时,需将待测试的安卓移动设备与电脑连接,电脑端软件将自动把编译好的socket接口二进制程序推入安卓移动设备中,并在后台启动。测试人员在移动设备上启动测试客户端,打开测试客户端的悬浮窗服务,随后打开待测试应用,点击测试客户端的悬浮窗启动帧率检测。测试客户端会自动检测当前位于顶部的应用程序包名,将其发送给socket接口,并以预设时间间隔(例如,每秒)发送一次获取帧率数据(例如,fps数据)的请求。socket接口获取到包名和帧率检测的指令后,通过过滤包名和关键字,获取待测应用程序相关的gpu渲染信息,再返回至测试客户端。测试客户端收到信息后,提取两次时间戳信息,从而计算出待检测应用的帧率数据。

综上,通过调用安装于移动设备上的用于执行shell指令和返回执行结果的虚拟接口,并且监听基于移动设备的客户端的帧率检测操作指令,并利用虚拟接口进行帧率数据的采集和传输,无需获取移动设备的root权限,无需保持和电脑端的连接,即可检测移动设备的帧率数据。更进一步地,通过帧率采集关键字与应用程序包名相结合进行帧率采集数据过滤提取的方式,所采集到的帧率数据将不会受到用户非法操作、应用前后台切换、系统通知等影响,使得检测到的帧率数据更加准确可信。

本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由cpu执行的计算机程序。在该计算机程序被cpu执行时,执行本发明提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。

此外,需要注意的是,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。

在本公开的示例性实施例中,还提供一种用于移动设备的帧率检测装置,如图2所示,所述装置20,包括:

调用监听单元21,用于调用安装于所述移动设备的虚拟接口,监听基于所述移动设备的客户端的帧率检测操作指令,所述虚拟接口用于执行shell指令并返回执行的结果;

帧率检测单元22,用于响应于所述帧率检测操作指令,获取待检测应用的帧率检测数据;

数据获取单元23,用于根据所述帧率检测数据,获取所述移动设备的待检测应用的当前帧率数据。

根据本公开的一种用于移动设备的帧率检测装置,通过调用安装于移动设备上的用于执行shell指令和返回执行结果的虚拟接口,并且监听基于移动设备的客户端的帧率检测操作指令,并利用虚拟接口进行帧率数据的采集和传输,无需获取移动设备的root权限,无需保持和电脑端的连接,即可检测移动设备的帧率数据。

根据本公开的一种示例性实施例,帧率检测单元22还包括:

查询返回子单元221(图中未示出),用于通过所述虚拟接口查询并返回帧率关键字;

关键字比对子单元222(图中未示出),用于通过所述移动设备的客户端获取所述待检测应用的包名,比对所述包名与所述帧率关键字,生成帧率采集关键字;

帧率采集子单元223(图中未示出),用于根据所述帧率采集关键字,通过所述虚拟接口采集所述待检测应用的帧率检测数据。

在本实施例中,通过帧率采集关键字与应用程序包名相结合进行帧率采集数据过滤提取的方式,所采集到的帧率数据将不会受到用户非法操作、应用前后台切换、系统通知等影响,使得检测到的帧率数据更加准确可信。

根据本公开的一种示例性实施例,数据获取单元23还包括:

原始帧率获取子单元231(图中未示出),用于根据所述待检测应用的帧率检测数据,获取原始帧率数据;

帧率计算子单元232(图中未示出),用于基于所述移动设备的客户端进行所述原始帧率数据的计算,获取所述待检测应用的当前帧率数据。

上述用于移动设备的帧率检测装置的具体细节已经在对应的用于移动设备的帧率检测方法中进行了详细的描述,在此不再赘述。

在本公开的示例性实施例中,还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现本公开的上述的用于移动设备的帧率检测方法。在一些可能的实施方式中,本公开的各个方面还可以实现为一种程序产品的形式,其包括程序代码;该程序产品可以存储在一个非易失性存储介质(可以是cd-rom、u盘或者移动硬盘等)中或网络上;当所述程序产品在一台计算设备(可以是个人计算机、服务器、终端装置或者网络设备等)上运行时,所述程序代码用于使所述计算设备执行本公开中上述各示例性实施例中的方法步骤。

参见图3所示,根据本公开的实施方式的用于实现上述方法的程序产品50,其可以采用便携式紧凑磁盘只读存储器(cd-rom)并包括程序代码,并可以在计算设备(例如个人计算机、服务器、终端装置或者网络设备等)上运行。然而,本公开的程序产品不限于此。在本示例性实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。

所述程序产品可以采用一个或者多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。

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

可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任意可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。

可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等,或者上述的任意合适的组合。

可以以一种或多种程序设计语言的任意组合来编写用于执行本公开操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如java、c++等,还包括常规的过程式程序设计语言,诸如c语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户计算设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络(包括局域网(lan)或广域网(wan)等)连接到用户计算设备;或者,可以连接到外部计算设备,例如利用因特网服务提供商来通过因特网连接。

在本公开的示例性实施例中,还提供一种电子设备,所述电子设备包括至少一个处理器以及至少一个用于存储所述处理器的可执行指令的存储器;其中,所述处理器被配置为经由执行所述可执行指令来执行本公开中上述各示例性实施例中的方法步骤。

下面结合图4对本示例性实施例中的电子设备600进行描述。电子设备600仅仅为一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

参见图4所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括处理单元610和存储单元620)的总线630、显示单元640。

其中,存储单元620存储有程序代码,所述程序代码可以被处理单元610执行,使得处理单元610执行本公开中上述各示例性实施例中的方法步骤。

存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元621(ram)和/或高速缓存存储单元622,还可以进一步包括只读存储单元623(rom)。

存储单元620还可以包括具有一组(至少一个)程序模块625的程序/实用工具624,这样的程序模块包括但不限于:操作系统、一个或者多个应用程序、其他程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。

总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用各种总线结构中的任意总线结构的局域总线。

电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可以与一个或者多个使得用户可以与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其他计算设备进行通信的任何设备(例如路由器、调制解调器等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan)、广域网(wan)和/或公共网络,例如因特网)通信。如图4所示,网络适配器660可以通过总线630与电子设备600的其他模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其他硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。

本领域技术人员能够理解,本公开的各个方面可以实现为系统、方法或程序产品。因此,本公开的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。

上述所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中,如有可能,各实施例中所讨论的特征是可互换的。在上面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组件、材料等。在其它情况下,不详细示出或描述公知结构、材料或者操作以避免模糊本公开的各方面。

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