基于字节码确定修改功能点的方法、装置、设备及介质与流程

文档序号:29493013发布日期:2022-04-06 14:01阅读:93来源:国知局
基于字节码确定修改功能点的方法、装置、设备及介质与流程

1.本技术实施例涉及软件系统处理领域,尤其涉及一种基于字节码确定修改功能点的方法、装置、设备及介质。


背景技术:

2.在对微服务及大型应用系统研发的过程中,通常会发生研发人员流动,导致其他人接手流动研发人员设计的代码的情况。考虑到流动研发人员之前设计的代码的耦合度可能会影响到后续接收的研发人员设计的其他代码模块,那么接手的人员需要在每次发版时对全部功能点都进行测试。这样,不仅会降低研发效率,也极大地浪费研发资源。


技术实现要素:

3.本技术实施例提供了一种基于字节码确定修改功能点的方法、装置、设备及介质,能够快速、准确地确定出两个不同版本包中的修改功能点,从而可以避免在功能代码修改的情况下,对所有的功能点逐一进行测试,进而提高研发效率,节约研发资源。
4.第一方面,本技术实施例还提供了一种基于字节码确定修改功能点的方法,该方法包括:
5.获取当前部署版本包和最新版本包,确定最新版本包相对于当前部署版本包的修改结构体;
6.根据当前部署版本包和最新版本包,执行方法体引用符号解析引擎,分别构建当前部署版本包和最新版本包中对应字节码的方法体指令模型;
7.根据方法体指令模型,分别构建当前部署版本包和最新版本包的结构体影响分析图;
8.根据结构体影响分析图和修改结构体,确定修改结构体中的修改功能点。
9.第二方面,本技术实施例还提供了一种基于字节码确定修改功能点的装置,该装置包括:
10.确定模块,用于获取当前部署版本包和最新版本包,确定最新版本包相对于当前部署版本包的修改结构体;构建模块,用于根据当前部署版本包和最新版本包,执行方法体引用符号解析引擎,分别构建当前部署版本包中对应字节码的方法体指令模型和最新版本包中对应字节码的方法体指令模型;
11.构建模块,还用于根据方法体指令模型,分别构建当前部署版本包和最新版本包的结构体影响分析图;
12.确定模块,还用于根据结构体影响分析图和修改结构体,确定修改结构体中的修改功能点。
13.第三方面,本技术实施例还提供了一种计算机设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,当处理器执行计算机程序时,实现如本技术任意实施例提供的基于字节码确定修改功能点的方法。
14.第四方面,本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,实现如本技术任意实施例提供的基于字节码确定修改功能点的方法。
15.本技术实施例提供了一种基于字节码确定修改功能点的方法、装置、设备及存储介质,该方法可以包括:获取当前部署版本包和最新版本包,确定最新版本包相对于当前部署版本包的修改结构体;根据当前部署版本包和最新版本包,执行方法体引用符号解析引擎,分别构建当前部署版本包和最新版本包中对应字节码的方法体指令模型;根据方法体指令模型,分别构建当前部署版本包和最新版本包的结构体影响分析图;根据结构体影响分析图和修改结构体,确定修改结构体中的修改功能点。基于上述方法可以快速、准确地确定出两个不同版本包中的修改功能点,从而可以避免在功能代码修改的情况下,对所有的功能点逐一进行测试,进而提高研发效率,节约研发资源。
附图说明
16.图1为本技术实施例提供的一种基于字节码确定修改功能点的方法的流程图;
17.图1a为本技术实施例提供的一种结构体影响分析图的示意图;
18.图1b为本技术实施例提供的一种构建当前部署版本包中对应字节码的方法体指令模型和的最新版本包中对应字节码的方法体指令模型的方法流程图;
19.图2是本技术实施例提供的一种确定当前部署版本包和最新版本包中各功能包的影响索引、各功能包包含的字节码的影响索引的方法流程图;
20.图3是本技术实施例提供的一种基于字节码确定修改功能点的装置结构示意图;
21.图4是本技术实施例中的计算机设备的结构示意图。
具体实施方式
22.下面结合附图和实施例对本技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本技术,而非对本技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本技术相关的部分而非全部结构。
23.另外,在本技术实施例中,“可选地”或者“示例性地”等词用于表示作例子、例证或说明。本技术实施例中被描述为“可选地”或者“示例性地”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“可选地”或者“示例性地”等词旨在以具体方式呈现相关概念。
24.需要说明的是,在本技术实施例中,当前部署版本包和最新版本包中对应字节码的方法体指令模型可以理解为,当前部署版本包中对应字节码的方法体指令模型和最新版本包中对应字节码的方法体指令模型。当前部署版本包和最新版本包的结构体影响分析图可以理解为,当前部署版本包的结构体影响分析图和最新版本包的结构体影响分析图。同样地,当前部署版本包以及最新版本包中各功能包的影响索引,可以理解为当前部署版本包中各功能包的影响索引以及最新版本包中各功能包的影响索引。相应地,其他关于各功能包包含的字节码、对应字节码的方法体指令模型等与上述类似限定的描述均可以理解为,当前部署版本包和最新版本包各自对应的各功能包包含的字节码、对应字节码的方法体指令模型等,在此不一一赘述。
25.图1为本技术实施例提供的一种基于字节码确定修改功能点的方法的流程图,该方法可以应用于各类微服务系统或大型应用系统(例如,政务服务系统等)场景下,该方法可以由本技术实施例提供的基于字节码确定修改功能点的装置来执行,该装置可以采用软件和/或硬件的方式实现。在一个具体的实施例中,该装置可以集成在计算机设备中,计算机设备比如可以是服务器。以下实施例将以该装置集成在计算机设备中为例进行说明,如图1所示,该方法可以包括但不限于以下步骤:
26.s101、获取当前部署版本包和最新版本包,确定最新版本包相对于当前部署版本包的修改结构体。
27.在本技术实施例中,当前部署版本包可以理解为已经设计好的软件包,最新版本包可以理解为对当前部署版本包更新或重新研发设计后的软件包,当前部署版本包和最新版本包各自对应的版本号不同,即可以通过版本号区分当前部署版本包和最新版本包。上述修改结构体表示最新版本包相对于当前部署版本包更新或重新研发设计后的结构体,该修改结构体仅存在于最新版本包中,而不存在于当前部署版本包中。
28.s102、根据当前部署版本包和最新版本包,执行方法体引用符号解析引擎,分别构建当前部署版本包和最新版本包中对应字节码的方法体指令模型。
29.示例性地,本步骤的实现方式可以包括:分别遍历当前部署版本包和最新版本包,确定当前部署版本包和最新版本包中各功能包包含的字节码;基于当前部署版本包和最新版本包中各功能包包含的字节码,执行方法体引用符号解析引擎,生成字节码对应的动态链接;根据当前部署版本包和最新版本包中各功能包包含的字节码,以及各字节码对应的动态链接,分别构建当前部署版本包和最新版本包中对应字节码的方法体指令模型。进一步地,上述执行方法体引用符号解析引擎可以理解为运行某段程序代码,对相关方法体指令进行解析。该方法体引用符号解析引擎中可以包括指令计数器,在执行方法体引用符号解析引擎的过程中,可以通过指令计数器的指示,确定当前的执行进程,例如,当前解析得到某个字节码对应的动态链接等。
30.s103、根据方法体指令模型,分别构建当前部署版本包和最新版本包的结构体影响分析图。
31.示例性地,可以采用遍历的方式对当前部署版本包和最新版本包进行遍历处理,确定当前部署版本包和最新版本包中各功能包的影响索引、各功能包包含的字节码的影响索引。进而,根据获取的各功能包的影响索引、各功能包包含的字节码的影响索引,以及上述步骤s102中得到的各字节码的方法体指令模型,分别构建当前部署版本包的结构体影响分析图和最新版本包的结构体影响分析图。
32.需要说明的是,上述各影响索引也可以理解为耦合散出度,或者该节点是否存在子节点,例如,在耦合散出度为0的情况下,表示该节点为最后一个节点,其并不具备子节点;在耦合散出度不为0的情况下,表示该节点具有子节点,那么该节点对应的影响索引(或耦合散出度)为当前节点相连的所有节点的影响索引构成的集合的消息摘要算法第五版(message digest algorithm,md5)的散列码。基于各功能包的影响索引以及各功能包包含的字节码的影响索引可以确定出各功能包以及各字节码之间的关联关系。字节码的方法体指令模型也可以理解为是以模型的形式呈现的关于该字节码的具体描述,那么在分别获取当前部署版本包和最新版本包中各功能包的影响索引、各功能包包含的字节码的影响索
引,以及各字节码对应的方法体指令模型后,可以得到当前部署版本包的结构体影响分析图和最新版本包的结构体影响分析图。例如,以对应功能包的影响索引和对应功能包包含的字节码的影响索引,分别搭建当前部署版本包和最新版本包的结构体影响分析图框架,进而基于各字节码的方法体指令模型进一步完善该结构体影响分析图框架中各节点的具体描述,从而最终得到当前部署版本包的结构体影响分析图和最新版本包的结构体影响分析图。
33.s104、根据结构体影响分析图和修改结构体,确定修改结构体中的修改功能点。
34.由于当前部署版本包和最新版本包各自对应的结构体影响分析图中分别包含有当前部署版本包和最新版本包中各节点的具体描述,那么在确定最新版本包相对于当前部署版本包的修改结构体后,可以基于该结构体,以及当前部署版本包和最新版本包各自对应的结构体影响分析图,确定出最新版本包相对于当前部署版本包的修改结构体中的具体修改功能点。
35.例如,基于修改结构体在当前部署版本包中确定修改结构体包含的至少一个功能点,并将确定的至少一个功能点确定为第一功能点;根据修改结构体在最新部署版本包中确定修改结构体包含的至少一个功能点,并将确定的至少一个功能点确定为第二功能点;以遍历的方式匹配当前部署版本包中的各第一功能点和最新版本包中的各第二功能点,在最新版本包的修改结构体中各第二功能点中的任一功能点的前面或字节与当前部署版本包的修改结构体中所有第一功能点均不相同的情况下,确定该第二功能点中的任一功能点为最新版本包相对于当前部署版本包修改结构体中的修改功能点。
36.比如,以图1a所示的结构体影响分析图(当前部署版本包的结构体影响分析图,或最新版本包的结构体影响分析图,图中的byte[]methodinstr表示方法体指令码(或理解为字节指令码),blshipaflink linkrefs[
……
]表示方法体间符号引用链表)为例,从根节点出发,在图中所呈现的结构中寻找首个功能包(或方法体)的影响索引,若当前部署版本包的结构体影响分析图和最新版本包的结构体影响分析图中,该影响索引相同,表示该路径不存在修改结构体,那么停止深度查找,并更换查找路径。若查找路径中存在影响索引不同的情况,表示对应节点为修改结构体,那么可以继续查找到节点耦合散出度为0的节点。进一步地,可以将查找结果记录至affected_method_list,这样基于affected_method_list即可清楚地了解该方法体修改后,对其他相关功能点或方法体的影响,进而也可以提醒相关人员有针对性地进行功能测试,提高研发效率。
[0037]
即在本技术实施例中,可以通过反向传播影响索引的方式,在结构体影响分析图中,确定修改结构体中的具体修改功能点。
[0038]
需要说明的是,上述当前部署版本包中修改结构体可能为空,进而该修改结构体包含的至少一个功能点也可能为空。即该修改结构体可能为最新版本包相对于当前部署版本新研发设计的结构体,那么该修改结构体不存在于当前部署版本包中,即当前部署版本包中修改结构体为空。
[0039]
本技术实施例提供了一种基于字节码确定修改功能点的方法,该方法包括:获取当前部署版本包和最新版本包,确定最新版本包相对于当前部署版本包的修改结构体;根据当前部署版本包和最新版本包,执行方法体引用符号解析引擎,分别构建当前部署版本包和最新版本包中对应字节码的方法体指令模型;根据方法体指令模型,分别构建当前部
署版本包和最新版本包的结构体影响分析图;根据结构体影响分析图和修改结构体,确定修改结构体中的修改功能点。基于上述方法可以快速、准确地确定出两个不同版本包中的修改功能点,从而可以避免在功能代码修改的情况下,对所有的功能点逐一进行测试,进而提高研发效率,节约研发资源。
[0040]
在一种示例中,上述步骤s101中,确定最新版本包相对于当前部署版本包的修改结构体的实现方式可以包括:分别遍历当前部署版本包和最新版本包,确定当前部署版本包中各功能包的影响索引,以及最新版本包中各功能包的影响索引。进而,根据当前部署版本包中各功能包的影响索引,以及最新版本包中各功能包的影响索引,确定最新版本包相对于当前部署版本包的修改结构体。
[0041]
例如,在本技术实施例中,当前部署版本包和最新版本包均可以实现多个不同的功能,具体地,该多个不同的功能可以通过当前部署版本包和最新版本包中包含的各个功能包实现。进一步地,各功能包(package)中还包含有至少一个字节码(class字节码),即功能包与字节码之间的关系可以理解为树状图,例如,功能包为tree类型的节点,字节码为tree节点下的leaf类型节点。
[0042]
示例性地,确定上述不同版本包中各功能包的影响索引的实现方式可以包括:以遍历的方式分别提取当前部署版本包中各功能包包含的字节码,以及最新版本包中各功能包包含的字节码;基于消息摘要算法对上述提取的各功能包包含的字节码进行处理,确定字节码的散列码;进而,根据得到的字节码的散列码分别确定当前部署版本包中各功能包的影响索引,以及最新版本包中各功能包的影响索引。
[0043]
可选地,上述消息摘要算法可以采用消息摘要算法第五版(message digest algorithm,md5)。
[0044]
获取各功能包的影响索引后,可以以遍历的方式匹配最新版本包中各功能包的影响索引与当前部署版本包中各功能包的影响索引,并基于匹配的结果确定最新版本包相对于当前部署版本包的修改结构体。示例性地,该修改结构体可以为某一功能包,也可以为某一功能包中包含的功能点(或称为方法体)。
[0045]
例如,在最新版本包中任一功能包的影响索引与当前部署版本包中所有功能包的影响索引不同的情况下,确定任一功能包为最新版本包相对于当前部署版本报的修改结构体。比如,假设最新版本包中包含a功能包、b功能包、c功能包,当前部署版本包中包含a功能包、b功能包,当前部署版本包中的a功能包、b功能包的影响索引均与最新版本包中的a功能包、b功能包的影响索引相同,而最新版本包中的c功能包的影响索引与当前部署版本包中的a功能包、b功能包的影响索引均不相同,表示最新版本包中的c功能包为最新研发设计的功能包,那么该c功能包即为最新版本包相对于当前部署版本包的修改结构体。
[0046]
进一步地,在本技术实施例中,上述遍历匹配的方式可以为按照树状图,从上到下的顺序对当前部署版本包以及最新版本包中各功能包进行遍历、匹配。如图1b所示,在一种示例中,上述步骤s102中,生成字节码对应的动态链接的实现方式可以包括但不限于以下方式:
[0047]
s1001、分别基于当前部署版本包中各功能包包含的字节码和最新版本包中各自包含的功能包中的字节码提取方法描述表。
[0048]
具体地,该方法描述表中可以包含变量表、字节码结构总码元表、常量池、方法签
名、方法出口等。
[0049]
s1002、根据方法描述表中包含的变量表、字节码结构总码元表和常量池,确定对应字节码的字节码结构信息体。
[0050]
提取得到各字节码的方法描述表后,可以解析出方法描述表中包含的变量表、方法签名、方法出口、字节码结构总码元表和常量池(const-pool)等信息,进而根据字节码(例如,为十六进制的字节码)和字节码结构总码元表,在常量池中确定该方法描述表对应字节码的字节码结构信息体,该字节码结构信息体中可以包含有关于该字节码的属性名索引(attribute_name_index)、属性长度(attribute_length)、方法体字节码指令长度(code-length)以及方法执行逻辑指令助记符(即code-length个长度的字节码指令)等属性信息,即字节码结构信息体可以理解为是对该字节码相关信息的具体描述,基于字节码结构信息体可以确定各字节码之间的引用信息。
[0051]
s1003、将字节码结构信息体反汇编为字节指令码。
[0052]
s1004、解析字节指令码,获取字节码对应的动态链接。
[0053]
上述生成动态链接的过程,即可以理解为执行方法体引用符号解析引擎的过程。通过执行上述过程可以对方法体内部的指令进行解析,从而生成字节码对应的动态链接,并且可以基于指令计数器的指示确定当前解析字节指令码,获取动态链接的实施进程。
[0054]
示例性地,可以通过以下示例说明上述实现过程。例如,假设字节码a的方法体应用于字节码b的方法体,即classa的methoda应用于classb的methodb,那么可以截取字节码的部分内容,例如,方法表和常量池。进一步地,
[0055]
假设常量池中有一个常量指向classb的methodb,如下:
[0056][0057]
那么获取invokevirtual#4(即上述常量池中的常量#4),其指向classa.methoda:()v方法体,即可够成一个简单的方法体全限定名的引用符号,也即字节码对应方法体内部的动态链接。
[0058]
同样地,通过上述方式也可以获取功能包、字节码、接口等元素的全限定名的引用
符号。
[0059]
在另一种示例中,基于各字节码和获取字节码对应的动态链接,分别构建当前部署版本包和最新版本包中对应字节码的方法体指令模型的实现方式可以包括:基于字节码提取方法描述表,即上述步骤s1001,进而根据获取的字节码对应的动态链接和方法描述表中包含的变量表、方法签名、方法出口,分别构建当前部署版本包和最新版本包中对应字节码的方法体指令模型。
[0060]
如图2所示,在一种示例中,上述步骤s103中,根据字节码的散列码分别确定当前部署版本包中各功能包的影响索引、各功能包包含的字节码的影响索引,以及最新版本包中各功能包的影响索引、各功能包包含的字节码的影响索引的实现方式可以包括但不限于如下步骤:
[0061]
s201、对当前部署版本包中各功能包包含的字节码的散列码进行排序,并将排序后的散列码构成的集合确定为第一集合。
[0062]
s202、对最新版本包中各功能包包含的字节码的散列码进行排序,并将排序后的散列码构成的集合确定为第二集合。
[0063]
s203、基于摘要信息算法分别对第一集合和第二集合进行处理,确定第一集合的散列码和第二集合的散列码。
[0064]
s204、将第一集合的散列码和第二集合的散列码分别确定为当前部署版本包中对应功能包的影响索引和所述最新版本包中对应功能包的影响索引。
[0065]
s205、将字节码的散列码分别确定为当前部署版本包中对应功能包包含的对应字节码的影响索引和最新版本包中对应功能包包含的对应字节码的影响索引。
[0066]
图3为本技术实施例提供的一种基于字节码确定修改功能点的装置的结构示意图,如图3所示,该装置可以包括:确定模块301、构建模块302。
[0067]
其中,确定模块,用于获取当前部署版本包和最新版本包,确定最新版本包相对于当前部署版本包的修改结构体;
[0068]
构建模块,用于根据当前部署版本包和最新版本包,执行方法体引用符号解析引擎,分别构建当前部署版本包和最新版本包中对应字节码的方法体指令模型;
[0069]
构建模块,还用于根据方法体指令模型,分别构建当前部署版本包和最新版本包的结构体影响分析图;
[0070]
确定模块,还用于根据结构体影响分析图和修改结构体,确定修改结构体中的修改功能点。
[0071]
在一种示例中,上述确定模块,用于分别遍历当前部署版本白和最新版本包,确定当前部署版本包中各功能包的影响索引,以及最新版本包中各功能包的影响索引。进而,根据当前部署版本包中各功能包的影响索引,以及最新版本包中各功能包的影响索引,确定最新版本包相对于当前部署版本包的修改结构体。
[0072]
具体地,上述确定模块,用于以遍历的方式匹配最新版本包中各功能包的影响索引与当前部署版本包中各功能包的影响索引;在最新版本包中任一功能包的影响索引与当前部署版本包中所有功能包的影响索引不同的情况下,确定任一功能包为最新版本包相对于当前部署版本报的修改结构体。
[0073]
在一种示例中,上述构建模块可以包括遍历单元、生成单元和构建单元;
[0074]
其中,遍历单元,用于分别遍历当前部署版本包和最新版本包,确定当前部署版本包中各功能包包含的字节码和最新版本包中各功能包包含的字节码;
[0075]
生成单元,用于基于当前部署版本包和最新版本包中各功能包包含的字节码,执行方法体引用符号解析引擎,生成字节码对应的动态链接;
[0076]
构建单元,用于当前部署版本包中各功能包包含的字节码、最新版本包中各功能包包含的字节码,以及各字节码对应的动态链接,分别构建当前部署版本包中对应字节码的方法体指令模型和最新版本包中对应字节码的方法体指令模型。
[0077]
示例性地,生成单元,具体用于分别基于当前部署版本包中各功能包包含的字节码和最新版本包中各功能包包含的字节码提取方法描述表;根据方法描述表中包含的变量表、字节码结构总码元表和常量池,确定对应字节码的字节码结构信息体;将字节码结构信息体反汇编为字节指令码;解析字节指令码,获取字节码对应的动态链接。
[0078]
示例性地,构建单元,用于基于字节码提取方法描述表;以及,根据生成单元获取的动态链接,和方法描述表中包含的变量表、方法签名、方法出口,分别构建当前部署版本包中对应字节码的方法体指令模型和最新版本包中对应字节码的方法体指令模型。在一种示例中,上述构建模型,还可以用于分别遍历当前部署版本包和最新版本包,确定当前部署版本包中各功能包的影响索引、各功能包包含的字节码的影响索引,以及最新版本包中各功能包的影响索引、各功能包包含的字节码的影响索引;以及,根据当前部署版本包对应的各功能包的影响索引、各功能包包含的字节码的影响索引、方法体指令模型和最新版本包对应的各功能包的影响索引、各功能包包含的字节码的影响索引、方法体指令模型,分别构建当前部署版本包的结构体影响分析图和最新版本包的结构体影响分析图。
[0079]
示例性地,构建模块,可以具体用于以遍历的方式分别提取当前部署版本包中各功能包包含的字节码,以及最新版本包中各功能包包含的字节码;基于摘要信息算法对字节码进行处理,确定字节码的散列码;根据字节码的散列码分别确定当前部署版本包中各功能包的影响索引、各功能包包含的字节码的影响索引,以及最新版本包中各功能包的影响索引、各功能包包含的字节码的影响索引。
[0080]
例如,构建模块,可以用于对当前部署版本包中各功能包包含的字节码的散列码进行排序,并将排序后的散列码构成的集合确定为第一集合;对最新版本包中各功能包包含的字节码的散列码进行排序,并将排序后的散列码构成的集合确定为第二集合;基于摘要信息算法分别对第一集合和第二集合进行处理,确定第一集合的散列码和第二集合的散列码;将第一集合的散列码和第二集合的散列码分别确定为当前部署版本包中对应功能包的影响索引和最新版本包中对应功能包的影响索引;将字节码的散列码分别确定为当前部署版本包中对应功能包包含的对应字节码的影响索引和最新版本包中对应功能包包含的对应字节码的影响索引。
[0081]
在一种示例中,上述确定模块,还用于根据修改结构体在当前部署版本包中确定修改结构体包含的至少一个功能点,并将确定的至少一个功能点确定为第一功能点;根据修改结构体在最新部署版本包中确定修改结构体包含的至少一个功能点,并将确定的至少一个功能点确定为第二功能点;以遍历的方式匹配第一功能点和第二功能点,在第二功能点中的任一功能点的前面或字节与所有第一功能点均不相同的情况下,确定第二功能点中的任一功能点为修改结构体中的修改功能点。
[0082]
上述基于字节码确定修改功能点的装置可以执行图1-图2所提供的基于字节码确定修改功能点的方法,具备该方法中相应的器件和有益效果。
[0083]
图4为本发明实施例4提供的一种计算机设备的结构示意图,如图4所示,该计算机设备包括控制器401、存储器402、输入装置403、输出装置404;计算机设备中控制器401的数量可以是一个或多个,图4中以一个控制器401为例;计算机设备中的控制器401、存储器402、输入装置403和输出装置404可以通过总线或其他方式连接,图4中以通过总线连接为例。
[0084]
存储器402作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如图1、图2实施例中的基于字节码确定修改功能点的方法对应的程序指令/模块(例如,基于字节码确定修改功能点的装置中的获取模块301、确定模块302、构建模块303)。控制器401通过运行存储在存储器402中的软件程序、指令以及模块,从而执行计算机设备的各种功能以及数据处理,即实现上述的基于字节码确定修改功能点的方法。
[0085]
存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器402可进一步包括相对于控制器401远程设置的存储器,这些远程存储器可以通过网络连接至终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0086]
输入装置403可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入。输出装置404可包括显示屏等显示装置。
[0087]
本技术实施例还提供一种包含计算机可执行指令的存储介质,该计算机可执行指令在由计算机控制器执行时用于执行一种基于字节码确定修改功能点的方法,该方法包括图1所示的步骤。
[0088]
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本技术可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述的方法。
[0089]
值得注意的是,上述基于字节码确定修改功能点的装置中所包括的模块只是按照功能逻辑进行划分,但并不局限于上述的划分方式,只要能够实现相应的功能即可,不用于限制本技术的保护范围。
[0090]
注意,上述仅为本技术的较佳实施例及所运用技术原理。本领域技术人员会理解,本技术不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本技术的保护范围。因此,虽然通过以上实施例对本技术进行了较为详细的说明,但是本技术不仅仅限于以上实施例,在不脱离本技术构思的情况下,还可以包括更多其他等效实施例,而本技术的范围由所附的权利要求范围决定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1