一种业务处理方法及装置与流程

文档序号:11829433阅读:216来源:国知局
一种业务处理方法及装置与流程

本发明涉及互联网技术领域,具体涉及互联网业务技术领域,尤其涉及一种业务处理方法及装置。



背景技术:

覆盖参数是衡量互联网业务的完整性的一个重要指标,现有技术中通常采用代码覆盖率来表示业务的覆盖参数,例如:互联网软件的测试业务中,通常需要计算测试业务的代码覆盖率,以了解测试业务的方案完整性;一般地,可采用GCov/LCov(代码覆盖率测试工具)、或EMMA(一种代码覆盖率测试工具)等统计工具来计算业务的代码覆盖率;然而,上述的统计工具采用的是“基于行的代码覆盖率”的计算方式,即根据各代码行的调用情况获得代码覆盖率,其代码覆盖率精确到业务的源代码中的各代码行,由于业务迭代需求,业务的源代码的代码行经常发生变化,从而降低了现有技术中“基于行的代码覆盖率”的计算精度,影响业务的完整性评判。



技术实现要素:

本发明实施例提供一种业务处理方法及装置,能够基于函数计算业务的覆盖参数,提升业务的覆盖参数的计算精度,提升对业务的完整性评判的准确度。

本发明实施例第一方面提供一种业务处理方法,可包括:

对待处理业务的源代码进行解析,获得所述源代码所包含的至少一个函数的关键信息;

根据所述至少一个函数的关键信息对所述源代码进行插桩处理,获得目标代码;

运行所述目标代码,并采集所述目标代码在运行过程中的函数调用信息;

根据所述函数调用信息,计算所述业务的覆盖参数。

本发明实施例第二方面提供一种业务处理装置,可包括:

解析单元,用于对待处理业务的源代码进行解析,获得所述源代码所包含 的至少一个函数的关键信息;

插桩处理单元,用于根据所述至少一个函数的关键信息对所述源代码进行插桩处理,获得目标代码;

运行单元,用于运行所述目标代码;

采集单元,用于采集所述目标代码在运行过程中的函数调用信息;

计算单元,用于根据所述函数调用信息,计算所述业务的覆盖参数。

实施本发明实施例,具有如下有益效果:

本发明实施例中,可以根据业务的源代码所包含的至少一个函数的关键信息,对业务的源代码进行插桩处理获得目标代码,采集目标代码运行过程中的函数调用信息,并基于函数调用信息计算业务的覆盖参数,这使得业务的覆盖参数能够精确到源代码中的函数而不受限于代码行的变更,提升了业务的覆盖参数的计算精度,提升对业务的完整性评判的准确度。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种业务处理方法的流程图;

图2为本发明实施例提供的另一种业务处理方法的流程图;

图3为图2所示实施例的步骤S210的具体细化步骤;

图4为本发明实施例提供的一种业务处理装置的结构示意图;

图5为本发明实施例提供的一种解析单元的结构示意图;

图6为本发明实施例提供的一种插桩处理单元的结构示意图;

图7为本发明实施例提供的一种采集单元的结构示意图;

图8为本发明实施例提供的一种计算单元105的结构示意图;

图9为图8所示的覆盖率计算单元的实施例的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面将结合附图1-附图3,对本发明实施例提供的业务处理方法进行详细介绍。

请参见图1,为本发明实施例提供的一种业务处理方法的流程图;该方法可包括以下步骤S101-步骤S105。

S101,对待处理业务的源代码进行解析,获得所述源代码所包含的至少一个函数的关键信息。

本发明实施例的业务指互联网业务,可包括但不限于:互联网软件的测试业务、应用程序的检测业务等等,业务通过源代码实现相应的业务功能,例如:互联网软件的测试业务的源代码能够实现对互联网软件的测试功能。通常,源代码中包括至少一个函数,源代码在运行过程中按照需求选择调用其所包含的至少一个函数来实现相应的业务功能。

本发明实施例中,一个函数的关键信息包括:函数的全局唯一名称和函数的起始位置,所述函数的起始位置包括所述函数的起始代码行和起始代码列。其中,函数的全局唯一名称是指采用全局唯一命名规则对函数进行命名所获得的、能够用于标识该函数的唯一名称;具体实现中,对面向对象语言的函数的全局唯一命名规则可包含四部分内容,包括:包名、类名、函数名和函数参数类型名,例如:某面向对象语言编译的函数的全局唯一名称为com.sample.class1.func1(int,int),按照全局唯一命名规则该全局唯一名称包括4部分内容,第一部分内容为包名com.sample,第二部分内容为类名class1,第三部分内容为函数名func1,第四部分内容为函数参数类型名(int,int)。对非面向对象语言的函数的全局唯一命名规则可包含三部分内容,包括:文件路径、文件名和函数名。本步骤中,可对待处理业务的源代码进行解析,包括对源代码的词法和/或语法分析,获得所述源代码所包含的每一个函数的关键信息。

S102,根据所述至少一个函数的关键信息对所述源代码进行插桩处理,获得目标代码。

对所述源代码进行插桩处理是指在所述源代码中插入桩代码,通过桩代码的执行来获得源代码在运行过程中的控制流、数据流等运行信息。插桩处理的 关键在于确定桩代码的插入位置,本步骤中可以将每一个函数的起始位置确定为桩代码的插入位置,从而对所述源代码进行插桩处理,完成插桩处理后的源代码可被称为目标代码。

S103,运行所述目标代码。本步骤需要运行所述目标代码,即运行带有桩代码的源代码。

S104,采集所述目标代码在运行过程中的函数调用信息。

所述目标代码即为带有桩代码的源代码,所述目标代码在运行过程中每调用一个函数,则该函数起始位置的桩代码被执行从而输出该函数的调用信息,本步骤中,可采集并统计所述目标代码在运行过程中所调用的所有函数的调用信息;函数调用信息优选包括被调用函数的全局唯一名称,进一步,函数调用信息还可包括被调用函数的用例标识、被调用次数、被调用时间等其他信息。

S105,根据所述函数调用信息,计算所述业务的覆盖参数。

覆盖参数是衡量互联网业务的完整性的一个重要指标,现有技术中采用代码覆盖率表示业务的覆盖参数;本发明实施例可采用函数覆盖率表示业务的覆盖参数。所述函数调用信息优选包括被调用函数的全局唯一名称,即本实施例在计算业务的覆盖参数过程中,仅关注于被调用函数的全局唯一名称,而不再关注于被调用函数中的代码行,因此使得业务的覆盖参数能够精确到函数而可不受限代码行的变更,提升业务的覆盖参数的计算精度。

本发明实施例中,可以根据业务的源代码所包含的至少一个函数的关键信息,对业务的源代码进行插桩处理获得目标代码,采集目标代码运行过程中的函数调用信息,并基于函数调用信息计算业务的覆盖参数,这使得业务的覆盖参数能够精确到源代码中的函数而不受限于代码行的变更,提升了业务的覆盖参数的计算精度,提升对业务的完整性评判的准确度。

请参见图2,为本发明实施例提供的另一种业务处理方法的流程图;该方法可包括以下步骤S201-步骤S210。

S201,获取待处理业务的源代码。

本发明实施例的业务指互联网业务,可包括但不限于:互联网软件的测试业务、应用程序的检测业务等等,业务通过源代码实现相应的业务功能,例如:互联网软件的测试业务的源代码能够实现对互联网软件的测试功能。本步骤需 要获取待处理业务的源代码,具体实现中,可以从待处理业务的业务配置文件中获得所述业务的源代码。

S202,对所述源代码进行静态解析,获得所述源代码所包含的至少一个函数。

通常,源代码中包括至少一个函数,源代码在运行过程中按照需求选择调用其所包含的至少一个函数来实现相应的业务功能。本步骤中,可对待处理业务的源代码进行静态解析,包括对源代码的词法和/或语法分析,获得所述源代码所包含的至少一个函数。

S203,读取所述至少一个函数的关键信息。

一个函数的关键信息包括:函数的全局唯一名称和函数的起始位置,所述函数的起始位置包括所述函数的起始代码行和起始代码列。其中,函数的全局唯一名称是指采用全局唯一命名规则对函数进行命名所获得的、能够用于标识该函数的唯一名称;具体实现中,对面向对象语言的函数的全局唯一命名规则可包含四部分内容,包括:包名、类名、函数名和函数参数类型名,例如:某面向对象语言编译的函数的全局唯一名称为com.sample.class1.func1(int,int),按照全局唯一命名规则该全局唯一名称包括4部分内容,第一部分内容为包名com.sample,第二部分内容为类名class1,第三部分内容为函数名func1,第四部分内容为函数参数类型名(int,int)。对非面向对象语言的函数的全局唯一命名规则可包含三部分内容,包括:文件路径、文件名和函数名。本步骤中,依据步骤S202解析获得的至少一个函数,可以读取到每一个函数的关键信息。

本实施例的步骤S201-步骤S203可以为图1所示实施例的步骤S101的具体细化步骤。

S204,按照所述至少一个函数中各函数的全局唯一名称,在所述各函数的起始位置分别插入桩代码。

一个全局唯一名称可用于唯一标识一个函数;本步骤中,可以按照所述至少一个函数中各函数的全局唯一名称,在每个函数的起始位置插入一个桩代码,即一个函数对应一个桩代码。其中,桩代码的具体形式可以根据实际情况确定,例如:桩代码可以为log(funcname),其具体形式可以与源代码的具体形式相同,等等。

S205,将包含所述桩代码的源代码确定为目标代码。

在所述源代码中插入桩代码,可通过桩代码的执行来获得源代码在运行过程中的控制流、数据流等运行信息。本步骤中将完成插桩处理后的源代码称为目标代码。

本实施例的步骤S204-步骤S205可以为图1所示实施例的步骤S102的具体细化步骤。

S206,运行所述目标代码。本步骤需要运行所述目标代码,即运行带有桩代码的源代码。

S207,在所述目标代码的运行过程中输出所述目标代码所调用的目标函数的全局唯一名称。

所述目标代码即为带有桩代码的源代码,所述目标代码在运行过程中每调用一个函数,则该函数起始位置的桩代码被执行从而输出该函数的调用信息,本步骤中可输出所述目标代码所调用的每一个目标函数的全局唯一名称。

S208,按照所述目标函数的全局唯一名称,生成调用函数集合。

按照每一个目标函数的全局唯一名称,可生成调用函数集合,例如:假设步骤S207共输出全局唯一名称a1、a2和a3,本步骤可生成调用函数集合A,该调用函数集合A中包含a1、a2和a3,表明所述目标代码被调用的目标函数包括a1所标识的函数、a2所标识的函数和a3所标识的函数。

S209,按照所述源代码中所包含的至少一个函数的全局唯一名称,生成原函数集合。

按照所述源代码中所包含每一个函数的全局唯一名称,可生成原函数集合,例如:假设所述源代码中包含全局唯一名称分别为a1、a2、a3和b1的四个函数,本步骤可生成原函数集合B,该调用函数集合B中包含a1、a2、a3和b1,表明所述源代码中包含的函数包括a1所标识的函数、a2所标识的函数、a3所标识的函数和b1所标识的函数。

S210,根据所述调用函数集合及所述原函数集合,采用预设的覆盖率计算规则计算所述业务的函数覆盖率。

覆盖参数是衡量互联网业务的完整性的一个重要指标,现有技术中采用代码覆盖率表示业务的覆盖参数;本发明实施例可采用函数覆盖率表示业务的覆盖参数。

请一并参见图3,为图2所示实施例的步骤S210的具体细化步骤;该步骤 S210具体可包括以下步骤s11-步骤s13。

s11,求取所述调用函数集合及所述原函数集合的交集。

按照步骤S208-步骤S209所示例子,假设所述调用函数集合为A,所述原函数集合为B,本步骤s11需要求取所述调用函数集合A和原函数集合B的交集A&B,其中,&代表求交集运算。

s12,计算所述交集相对于所述原函数集合的函数百分比。

按照步骤s11的例子,本步骤s12计算获得的所述交集A&B相对于所述原函数集合B的函数百分比可表示为((A&B)/B)*100%。

s13,将计算获得的所述函数百分比确定为所述业务的函数覆盖率。本步骤s13可确定所述业务的函数覆盖率为((A&B)/B)*100%。

本发明实施例中,可以根据业务的源代码所包含的至少一个函数的关键信息,对业务的源代码进行插桩处理获得目标代码,采集目标代码运行过程中的函数调用信息,并基于函数调用信息计算业务的覆盖参数,这使得业务的覆盖参数能够精确到源代码中的函数而不受限于代码行的变更,提升了业务的覆盖参数的计算精度,提升对业务的完整性评判的准确度。

下面将结合附图4-附图9,对本发明实施例提供的业务处理装置的结构和功能进行详细介绍。需要说明的是,下述的业务处理装置可以应用于执行上述附图1-附图3所示的方法。

请参见图4,为本发明实施例提供的一种业务处理装置的结构示意图;该装置可包括:解析单元101、插桩处理单元102、运行单元103、采集单元104和计算单元105。

解析单元101,用于对待处理业务的源代码进行解析,获得所述源代码所包含的至少一个函数的关键信息。

本发明实施例的业务指互联网业务,可包括但不限于:互联网软件的测试业务、应用程序的检测业务等等,业务通过源代码实现相应的业务功能,例如:互联网软件的测试业务的源代码能够实现对互联网软件的测试功能。通常,源代码中包括至少一个函数,源代码在运行过程中按照需求选择调用其所包含的至少一个函数来实现相应的业务功能。

本发明实施例中,一个函数的关键信息包括:函数的全局唯一名称和函数 的起始位置,所述函数的起始位置包括所述函数的起始代码行和起始代码列。其中,函数的全局唯一名称是指采用全局唯一命名规则对函数进行命名所获得的、能够用于标识该函数的唯一名称;具体实现中,对面向对象语言的函数的全局唯一命名规则可包含四部分内容,包括:包名、类名、函数名和函数参数类型名,例如:某面向对象语言编译的函数的全局唯一名称为com.sample.class1.func1(int,int),按照全局唯一命名规则该全局唯一名称包括4部分内容,第一部分内容为包名com.sample,第二部分内容为类名class1,第三部分内容为函数名func1,第四部分内容为函数参数类型名(int,int)。对非面向对象语言的函数的全局唯一命名规则可包含三部分内容,包括:文件路径、文件名和函数名。所述解析单元101可对待处理业务的源代码进行解析,包括对源代码的词法和/或语法分析,获得所述源代码所包含的每一个函数的关键信息。

插桩处理单元102,用于根据所述至少一个函数的关键信息对所述源代码进行插桩处理,获得目标代码。

对所述源代码进行插桩处理是指在所述源代码中插入桩代码,通过桩代码的执行来获得源代码在运行过程中的控制流、数据流等运行信息。插桩处理的关键在于确定桩代码的插入位置,所述插桩处理单元102可以将每一个函数的起始位置确定为桩代码的插入位置,从而对所述源代码进行插桩处理,完成插桩处理后的源代码可被称为目标代码。

运行单元103,用于运行所述目标代码。所述运行单元103需要运行所述目标代码,即运行带有桩代码的源代码。

采集单元104,用于采集所述目标代码在运行过程中的函数调用信息。

所述目标代码即为带有桩代码的源代码,所述目标代码在运行过程中每调用一个函数,则该函数起始位置的桩代码被执行从而输出该函数的调用信息,所述采集单元104可采集并统计所述目标代码在运行过程中所调用的所有函数的调用信息;函数调用信息优选包括被调用函数的全局唯一名称,进一步,函数调用信息还可包括被调用函数的用例标识、被调用次数、被调用时间等其他信息。

计算单元105,用于根据所述函数调用信息,计算所述业务的覆盖参数。

覆盖参数是衡量互联网业务的完整性的一个重要指标,现有技术中采用代码覆盖率表示业务的覆盖参数;本发明实施例可采用函数覆盖率表示业务的覆 盖参数。所述函数调用信息优选包括被调用函数的全局唯一名称,即本实施例在计算业务的覆盖参数过程中,仅关注于被调用函数的全局唯一名称,而不再关注于被调用函数中的代码行,因此使得业务的覆盖参数能够精确到函数而可不受限代码行的变更,提升业务的覆盖参数的计算精度。

本发明实施例中,可以根据业务的源代码所包含的至少一个函数的关键信息,对业务的源代码进行插桩处理获得目标代码,采集目标代码运行过程中的函数调用信息,并基于函数调用信息计算业务的覆盖参数,这使得业务的覆盖参数能够精确到源代码中的函数而不受限于代码行的变更,提升了业务的覆盖参数的计算精度,提升对业务的完整性评判的准确度。

请参见图5,为本发明实施例提供的一种解析单元的结构示意图;该解析单元101可包括:源代码获取单元1001、静态解析单元1002和关键信息读取单元1003。

源代码获取单元1001,用于获取待处理业务的源代码。

本发明实施例的业务指互联网业务,可包括但不限于:互联网软件的测试业务、应用程序的检测业务等等,业务通过源代码实现相应的业务功能,例如:互联网软件的测试业务的源代码能够实现对互联网软件的测试功能。所述源代码获取单元1001需要获取待处理业务的源代码,具体实现中,可以从待处理业务的业务配置文件中获得所述业务的源代码。

静态解析单元1002,用于对所述源代码进行静态解析,获得所述源代码所包含的至少一个函数。

通常,源代码中包括至少一个函数,源代码在运行过程中按照需求选择调用其所包含的至少一个函数来实现相应的业务功能。所述静态解析单元1002可对待处理业务的源代码进行静态解析,包括对源代码的词法和/或语法分析,获得所述源代码所包含的至少一个函数。

关键信息读取单元1003,用于读取所述至少一个函数的关键信息。

一个函数的关键信息包括:函数的全局唯一名称和函数的起始位置,所述函数的起始位置包括所述函数的起始代码行和起始代码列。其中,函数的全局唯一名称是指采用全局唯一命名规则对函数进行命名所获得的、能够用于标识该函数的唯一名称;具体实现中,对面向对象语言的函数的全局唯一命名规则 可包含四部分内容,包括:包名、类名、函数名和函数参数类型名,例如:某面向对象语言编译的函数的全局唯一名称为com.sample.class1.func1(int,int),按照全局唯一命名规则该全局唯一名称包括4部分内容,第一部分内容为包名com.sample,第二部分内容为类名class1,第三部分内容为函数名func1,第四部分内容为函数参数类型名(int,int)。对非面向对象语言的函数的全局唯一命名规则可包含三部分内容,包括:文件路径、文件名和函数名。关键信息读取单元1003依据解析获得的至少一个函数,可以读取到每一个函数的关键信息。

本发明实施例中,可以根据业务的源代码所包含的至少一个函数的关键信息,对业务的源代码进行插桩处理获得目标代码,采集目标代码运行过程中的函数调用信息,并基于函数调用信息计算业务的覆盖参数,这使得业务的覆盖参数能够精确到源代码中的函数而不受限于代码行的变更,提升了业务的覆盖参数的计算精度,提升对业务的完整性评判的准确度。

请参见图6,为本发明实施例提供的一种插桩处理单元的结构示意图;该插桩处理单元102可包括:桩代码插入单元2001和目标代码确定单元2002。

桩代码插入单元2001,用于按照所述至少一个函数中各函数的全局唯一名称,在所述各函数的起始位置分别插入桩代码。

一个全局唯一名称可用于唯一标识一个函数;所述桩代码插入单元2001可以按照所述至少一个函数中各函数的全局唯一名称,在每个函数的起始位置插入一个桩代码,即一个函数对应一个桩代码。其中,桩代码的具体形式可以根据实际情况确定,例如:桩代码可以为log(funcname),其具体形式可以与源代码的具体形式相同,等等。

目标代码确定单元2002,用于将包含所述桩代码的源代码确定为目标代码。

在所述源代码中插入桩代码,可通过桩代码的执行来获得源代码在运行过程中的控制流、数据流等运行信息。所述目标代码确定单元2002将完成插桩处理后的源代码称为目标代码。

本发明实施例中,可以根据业务的源代码所包含的至少一个函数的关键信息,对业务的源代码进行插桩处理获得目标代码,采集目标代码运行过程中的函数调用信息,并基于函数调用信息计算业务的覆盖参数,这使得业务的覆盖参数能够精确到源代码中的函数而不受限于代码行的变更,提升了业务的覆盖 参数的计算精度,提升对业务的完整性评判的准确度。

请参见图7,为本发明实施例提供的一种采集单元的结构示意图;该采集单元104可包括:输出单元3001和调用函数集合生成单元3002。

输出单元3001,用于在所述目标代码的运行过程中输出所述目标代码所调用的目标函数的全局唯一名称。

所述目标代码即为带有桩代码的源代码,所述目标代码在运行过程中每调用一个函数,则该函数起始位置的桩代码被执行从而输出该函数的调用信息,所述输出单元3001可输出所述目标代码所调用的每一个目标函数的全局唯一名称。

调用函数集合生成单元3002,用于按照所述目标函数的全局唯一名称,生成调用函数集合。

按照每一个目标函数的全局唯一名称,可生成调用函数集合,例如:假设共输出全局唯一名称a1、a2和a3,所述调用函数集合生成单元3002可生成调用函数集合A,该调用函数集合A中包含a1、a2和a3,表明所述目标代码被调用的目标函数包括a1所标识的函数、a2所标识的函数和a3所标识的函数。

本发明实施例中,可以根据业务的源代码所包含的至少一个函数的关键信息,对业务的源代码进行插桩处理获得目标代码,采集目标代码运行过程中的函数调用信息,并基于函数调用信息计算业务的覆盖参数,这使得业务的覆盖参数能够精确到源代码中的函数而不受限于代码行的变更,提升了业务的覆盖参数的计算精度,提升对业务的完整性评判的准确度。

请参见图8,为本发明实施例提供的一种计算单元105的结构示意图;该计算单元105可包括:原函数集合生成单元4001和覆盖率计算单元4002。

原函数集合生成单元4004,用于按照所述源代码中所包含的至少一个函数的全局唯一名称,生成原函数集合。

按照所述源代码中所包含每一个函数的全局唯一名称,可生成原函数集合,例如:假设所述源代码中包含全局唯一名称分别为a1、a2、a3和b1的四个函数,所述原函数集合生成单元4004可生成原函数集合B,该调用函数集合B中包含a1、a2、a3和b1,表明所述源代码中包含的函数包括a1所标识的函数、a2所 标识的函数、a3所标识的函数和b1所标识的函数。

覆盖率计算单元4002,用于根据所述调用函数集合及所述原函数集合,采用预设的覆盖率计算规则计算所述业务的函数覆盖率。

覆盖参数是衡量互联网业务的完整性的一个重要指标,现有技术中采用代码覆盖率表示业务的覆盖参数;本发明实施例可采用函数覆盖率表示业务的覆盖参数。

请一并参见图9,为图8所示的覆盖率计算单元的实施例的结构示意图;所述覆盖率计算单元4002包括:交集求取单元5001、百分比计算单元5002和覆盖率计算单元5003。

交集求取单元5001,用于求取所述调用函数集合及所述原函数集合的交集。

按照图8所示实施例中的例子,假设所述调用函数集合为A,所述原函数集合为B,所述交集求取单元5001需要求取所述调用函数集合A和原函数集合B的交集A&B,其中,&代表求交集运算。

百分比计算单元5002,用于计算所述交集相对于所述原函数集合的函数百分比。

按照本实施例所示例子,所述百分比计算单元5002计算获得的所述交集A&B相对于所述原函数集合B的函数百分比可表示为((A&B)/B)*100%。

覆盖率确定单元5003,用于将计算获得的所述函数百分比确定为所述业务的函数覆盖率。所述覆盖率确定单元5003可确定所述业务的函数覆盖率为((A&B)/B)*100%。

本发明实施例中,可以根据业务的源代码所包含的至少一个函数的关键信息,对业务的源代码进行插桩处理获得目标代码,采集目标代码运行过程中的函数调用信息,并基于函数调用信息计算业务的覆盖参数,这使得业务的覆盖参数能够精确到源代码中的函数而不受限于代码行的变更,提升了业务的覆盖参数的计算精度,提升对业务的完整性评判的准确度。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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