CN105446712B - 一种应用程序缺陷修补方法及装置 - Google Patents

一种应用程序缺陷修补方法及装置 Download PDF

Info

Publication number
CN105446712B
CN105446712B CN201410389971.XA CN201410389971A CN105446712B CN 105446712 B CN105446712 B CN 105446712B CN 201410389971 A CN201410389971 A CN 201410389971A CN 105446712 B CN105446712 B CN 105446712B
Authority
CN
China
Prior art keywords
patch
application program
program
defect
repairing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410389971.XA
Other languages
English (en)
Other versions
CN105446712A (zh
Inventor
吕承飞
李�浩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410389971.XA priority Critical patent/CN105446712B/zh
Publication of CN105446712A publication Critical patent/CN105446712A/zh
Application granted granted Critical
Publication of CN105446712B publication Critical patent/CN105446712B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请涉及一种应用程序缺陷修补方法及装置,用以解决当前基于Lua脚本语言和Wax框架的应用程序缺陷修补方式存在维护过程复杂、执行效率较低的问题。本申请实施例提供的一种应用程序缺陷修补方法包括:在启动应用程序后,向服务器请求获取针对该应用程序的补丁程序patch;其中,所述patch为将编写的用于修补所述应用程序中的缺陷的补丁代码进行编译后生成的程序段,且所述patch的编程语言类型与所述应用程序的编程语言类型相同;在获取所述patch后,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法;根据所述patch,对所述应用程序中存在缺陷的方法进行修补。

Description

一种应用程序缺陷修补方法及装置
技术领域
本申请涉及应用程序领域,尤其涉及一种应用程序缺陷修补方法及装置。
背景技术
目前,当已发布的应用程序出现缺陷时,服务器端通常需要发布新的版本,安装应用程序的客户端通过将应用程序升级成新版本的应用程序来克服缺陷。但是,这种发布新版本的形式增加了服务器端和客户端的处理复杂度,且更新效率较低。
为了简化应用程序缺陷修补的过程,并提高更新效率,开发人员提出了采用将基于Lua脚本语言编写的补丁程序(patch)和Wax框架相结合修补应用程序中的缺陷的方式。客户端下载patch后,利用Lua解析器对该patch进行解析,并利用Wax框架提供的在Lua脚本语言和编写应用程序的Objective-C语言之间进行交互的能力,运行解析后的patch。
上述基于Lua脚本语言和Wax框架的应用程序缺陷修补方式存在如下缺陷:首先,WAX框架本身容易出现问题,并且WAX框架的架构和编写代码较为复杂,修复过程极为繁琐。其次,由于Lua脚本语言是需要解析执行的,在加载基于Lua脚本语言编写的补丁程序后,还需要采用Lua解析器对该patch进行解析,执行效率较低。
综上,当前基于Lua脚本语言和Wax框架的应用程序缺陷修补方式存在维护过程复杂、执行效率较低的问题。
发明内容
本申请实施例提供一种应用程序缺陷修补方法及装置,用以解决当前基于Lua脚本语言和Wax框架的应用程序缺陷修补方式存在维护过程复杂、执行效率较低的问题。
本申请实施例提供的一种应用程序缺陷修补方法包括:
在启动应用程序后,向服务器请求获取针对该应用程序的补丁程序patch;其中,所述patch为将编写的用于修补所述应用程序中的缺陷的补丁代码进行编译后生成的程序段,且所述patch的编程语言类型与所述应用程序的编程语言类型相同;
在获取所述patch后,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法;
根据所述patch,对所述应用程序中存在缺陷的方法进行修补。
可选地,根据所述patch,对所述应用程序中存在缺陷的方法进行修补,包括:
将所述应用程序中存在缺陷的方法替换为符合该方法的返回值类型的桩方法;所述桩方法为具有设定返回值类型和不固定参数的方法;
通过所述桩方法调用所述patch中的方法。
可选地,通过所述桩方法调用所述patch中的方法之后,还包括:
通过所述patch中的方法调用回调方法,执行所述回调方法中各参数指示的操作。
可选地,所述替换信息包括类名、方法名、和方法类型信息。
可选地,所述patch为编译生成的基于文件夹形式的patch,所述文件夹包含可执行文件和信息列表文件,所述可执行文件用于执行所述patch,所述信息列表文件包含所述替换信息。
本申请实施例提供一种应用程序缺陷修补装置,包括:
获取模块,用于在启动应用程序后,向服务器请求获取针对该应用程序的补丁程序patch;其中,所述patch为将编写的用于修补所述应用程序中的缺陷的补丁代码进行编译后生成的程序段,且所述patch的编程语言类型与所述应用程序的编程语言类型相同;
确定模块,用于在所述获取模块获取所述patch后,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法;
修补模块,用于根据所述patch,对所述应用程序中存在缺陷的方法进行修补。
根据上述方法或装置可知,本申请基于补丁程序patch来修补应用程序中的缺陷,从而无需发布新版本的应用程序,并且,本申请提供了采用一种新的类型的patch来修补应用程序中的缺陷的方式。在本申请中,用于修补应用程序中的缺陷的补丁代码是采用与该应用程序的编程语言同类型的语言编写的,因此无需Wax框架来实现两种不同语言之间的交互,并且,本申请中的patch为将编写的补丁代码进行编译后生成的,因此在进行方法修补的过程中,无需对该patch进行解析,提高了运行效率。可见,采用本申请提供的上述方法或装置可以显著提高修补应用程序缺陷的效率。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例一提供的应用程序缺陷修补方法流程图;
图2为本申请实施例二提供的应用程序缺陷修补方法流程图;
图3为本申请实施例提供的应用程序缺陷修补***结构示意图;
图4为本申请实施例提供的应用程序缺陷修补装置结构示意图。
具体实施方式
本申请实施例的基本思想是:在启动应用程序后,向服务器请求获取针对该应用程序的补丁程序patch;本申请实施例中的patch为将编写的用于修补所述应用程序中的缺陷的补丁代码进行编译后生成的程序段,且所述patch与所述应用程序的编程语言的类型相同;在获取所述patch后,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法;根据所述patch,对所述应用程序中存在缺陷的方法进行修补。
本申请实施例基于补丁程序patch来修补应用程序中的缺陷,从而无需发布新版本的应用程序来修补应用程序中的缺陷,并且,本申请实施例提供了采用一种新的类型的patch来修补应用程序中的缺陷的方式。在本申请实施例中,用于修补应用程序中的缺陷的补丁代码是采用与该应用程序的编程语言同类型的语言编写的,因此无需Wax框架来实现两种不同语言之间的交互,并且,本申请实施例中的patch为将编写的补丁代码进行编译后生成的,因此在进行方法修补的过程中,无需对该patch进行解析,提高了运行效率。可见,采用本申请实施例的方法可以显著提高修补应用程序缺陷的效率。
下面结合说明书附图对本申请实施例作进一步详细描述。
如图1所示,为本申请实施例一提供的应用程序缺陷修补方法流程图,包括以下步骤:
S101:在启动应用程序后,向服务器请求获取针对该应用程序的补丁程序patch;其中,所述patch为将编写的用于修补所述应用程序中的缺陷的补丁代码进行编译后生成的程序段,且所述patch的编程语言类型与所述应用程序的编程语言类型相同。
本申请实施例中,所述应用程序与所述patch的编程语言可以是Objective-C语言。
在具体实施过程中,可以在服务器侧基于Xcode创建基于文件夹形式的patch。具体地,使用Objective-C编写用于修补应用程序缺陷的补丁代码;编译运行编写好的补丁代码,生成基于文件夹形式的patch;采用Xcode工具对生成的patch进行签名。该文件夹包含可执行文件和信息列表文件,其中,所述可执行文件用于执行所述patch,所述信息列表文件包含用于确定所述应用程序中存在缺陷的方法的替换信息,除此之外,信息列表文件还可以包含patch版本号等。本申请实施例中,所述文件夹具体可以是NSBundle。
在S101中,安装有所述应用程序的客户端在启动所述应用程序之后,向服务器发送请求消息,该请求消息用于咨询是否有针对该应用程序的patch,服务器在确定存储有针对该应用程序的patch后,指示客户端下载该patch。
S102:在获取所述patch后,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法。
该步骤中,patch中指示的替换信息包括类名(比如classA)、方法名(比如methodB)和方法类型信息。这里的方法类型包括类方法和实例方法。
S103:根据所述patch,对所述应用程序中存在缺陷的方法进行修补。
该具体实施过程中,在客户端下载基于NSBundle的patch后,将其保存在该应用程序的指定保存目录下,然后进行解压缩。之后,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法。根据确定的缺陷的方法,通过NSBundle类库加载patch,完成缺陷修补过程。通过NSBundle类库加载patch的过程为:通过NSBundle的公开接口principalClass、classNamed获取patch在NSBundle中的入口类,然后调用patch中的方法,该入口类遵从指定至少一个接口的BundleProtocol。
在具体实施过程中,可以采用将应用程序中存在缺陷的方法直接替换为patch中的方法的方式来修补缺陷,但是,进行方法替换的过程并不是简单的程序拷贝过程,直接将存在缺陷的方法替换为patch中的方法会增加实现复杂度,也不利于对替换后的方法的追踪控制。
基于此,本申请实施例中引入桩方法的概念。这里的桩方法为具有设定返回值类型和不固定参数的方法;应用程序中具有任意参数个数和参数类型的方法都能被替换为与该方法具有相同返回值类型的桩方法。下面通过一个具体的实施例对该实施方式作进一步介绍。
如图2所示,为本申请实施例二提供的应用程序缺陷修补方法流程图,该实施例与实施例一的内容重复之处不再赘述。该实施例包括以下步骤:
S201:在启动应用程序后,向服务器请求获取针对该应用程序的补丁程序patch;其中,所述patch为将编写的用于修补所述应用程序中的缺陷的补丁代码进行编译后生成的程序段,且所述patch的编程语言类型与所述应用程序的编程语言类型相同。
本申请实施例中,patch为编译生成的基于NSBundle的补丁程序,patch的编程语言和应用程序的编程语言的类型相同,都是Objective-C语言。patch中主要包括可执行文件和信息列表文件两部分内容,其中的可执行文件用于执行所述patch,信息列表(Info.plist)文件包含类名(比如classA)、方法名(比如methodB)和方法类型等替换信息。该替换信息可用于确定应用程序中存在缺陷的方法。
S202:在获取所述patch后,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法。
该步骤中,根据替换信息中的类名、方法名和方法类型信息,确定应用程序中存在缺陷的方法。具体地,可以分别通过info.plist文件中的hookClassName、hookClassMethodName、isHookClassMethod字段来表示应用程序中存在缺陷的方法的类名、方法名和方法类型信息,根据这三个字段对应的值确定应用程序中存在缺陷的方法。
S203:将所述应用程序中存在缺陷的方法替换为符合该方法的返回值类型的桩方法。
该步骤中,可以通过Objective-C runtime(支持Objective-C语言具有动态属性的运行环境,可以动态获取方法列表、属性列表、变量列表,修改方法、属性,增加方法、属性等。)提供的method_exchangeImplementations或class_replaceMethod方法将应用程序中存在缺陷的方法替换为符合该方法的返回值类型的桩方法,这样可以在需要调用该应用程序中存在缺陷的方法时,转为调用替换后的桩方法。基于桩方法的参数不固定性,应用程序中具有任意参数个数和参数类型的方法都能被替换为与该方法具有相同返回值类型的桩方法,因此,该桩方法可支持patch替换应用程序中的任意方法。
比如,返回值类型为int的桩方法:int stub_hookMethod(id self,SEL_cmd,...);其中,self和_cmd分别为该桩方法中的第一个参数和第二个参数,省略号代表的是不固定参数,也即可变参数。
S204:通过所述桩方法调用所述patch中的方法。
该步骤中,通过所述桩方法,基于NSBundle的公开接口principalClass、classNamed获取patch在NSBundle中的入口类,调用patch中的方法。
可选地,S204之后,还包括:
通过所述patch中的方法调用回调方法,执行所述回调方法中各参数指示的操作。
在具体实施过程中,本申请实施例提供回调方法机制,运行完patch中用于修补应用程序缺陷的方法之后,调用回调方法,执行回调方法中各参数指示的操作,比如继续调用应用程序中存在缺陷的方法,或调用存在缺陷的方法的父类方法等。比如,回调方法idcallBackBlock(NSInteger operation);其中参数operation表示需要执行的操作,该参数值为0表示需要继续调用应用程序中存在缺陷的方法,值为1表示需要调用所述存在缺陷的方法的父类方法。这里,继续调用应用程序中存在缺陷的方法是指在调用完所述patch中的方法后,调用应用程序中继所述patch中的方法之后的方法。比如,应用程序中缺少了进行判断的程序段,只有根据判断结果执行的后续方法,则编写进行判断的程序段作为该应用程序的patch,在调用完该patch之后,继续调用应用程序中根据判断结果执行的后续方法。
如图3所示,为与上述实施例二的方法相对应的***结构示意图。本申请实施例的***包括:客户端31和服务器32。所述服务器32,用于将采用Objective-C语言编写的补丁代码进行编译运行,生成基于NSBundle的patch。所述客户端31,用于从服务器32下载针对该应用程序的补丁程序patch,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法,将所述应用程序中存在缺陷的方法替换为符合该方法的返回值类型的桩方法,通过所述桩方法调用所述patch中的方法,通过所述patch中的方法调用回调方法,执行所述回调方法中各参数指示的操作。
基于同一发明构思,本申请实施例中还提供了一种与应用程序缺陷修补方法对应的应用程序缺陷修补装置,由于该装置解决问题的原理与本申请实施例应用程序缺陷修补方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
如图4所示,为本申请实施例提供的应用程序缺陷修补装置结构示意图,包括:
获取模块41,用于在启动应用程序后,向服务器请求获取针对该应用程序的补丁程序patch;其中,所述patch为将编写的用于修补所述应用程序中的缺陷的补丁代码进行编译后生成的程序段,且所述patch的编程语言类型与所述应用程序的编程语言类型相同;
确定模块42,用于在所述获取模块41获取所述patch后,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法;
修补模块43,用于根据所述patch,对所述应用程序中存在缺陷的方法进行修补。
可选地,所述修补模块43具体用于:将所述应用程序中存在缺陷的方法替换为符合该方法的返回值类型的桩方法,通过所述桩方法调用所述patch中的方法;所述桩方法为具有设定返回值类型和不固定参数的方法。
可选地,所述修补模块43还用于,在通过所述桩方法调用所述patch中的方法之后,通过所述patch中的方法调用回调方法,执行所述回调方法中各参数指示的操作。
可选地,所述替换信息包括类名、方法名、和方法类型信息。
可选地,所述patch为编译生成的基于文件夹形式的patch,所述文件夹包含可执行文件和信息列表文件,所述可执行文件用于执行所述patch,所述信息列表文件包含所述替换信息。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (10)

1.一种应用程序缺陷修补方法,其特征在于,该方法包括:
在启动应用程序后,向服务器请求获取针对该应用程序的补丁程序patch;其中,所述patch为将编写的用于修补所述应用程序中的缺陷的补丁代码进行编译后生成的程序段,且所述patch的编程语言类型与所述应用程序的编程语言类型相同;
在获取所述patch后,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法;
根据所述patch,对所述应用程序中存在缺陷的方法进行修补;
其中,所述补丁程序patch是使用Objective-C编写得到用于修补应用程序缺陷的补丁代码,再编译运行所述补丁代码得到的,且所述补丁程序patch是采用Xcode工具进行签名的。
2.如权利要求1所述的方法,其特征在于,根据所述patch,对所述应用程序中存在缺陷的方法进行修补,包括:
将所述应用程序中存在缺陷的方法替换为符合该方法的返回值类型的桩方法;所述桩方法为具有设定返回值类型和不固定参数的方法;
通过所述桩方法调用所述patch中的方法。
3.如权利要求2所述的方法,其特征在于,通过所述桩方法调用所述patch中的方法之后,还包括:
通过所述patch中的方法调用回调方法,执行所述回调方法中各参数指示的操作。
4.如权利要求1所述的方法,其特征在于,所述替换信息包括类名、方法名、和方法类型信息。
5.如权利要求1~4任一所述的方法,其特征在于,所述patch为编译生成的基于文件夹形式的patch,所述文件夹包含可执行文件和信息列表文件,所述可执行文件用于执行所述patch,所述信息列表文件包含所述替换信息。
6.一种应用程序缺陷修补装置,其特征在于,该装置包括:
获取模块,用于在启动应用程序后,向服务器请求获取针对该应用程序的补丁程序patch;其中,所述patch为将编写的用于修补所述应用程序中的缺陷的补丁代码进行编译后生成的程序段,且所述patch的编程语言类型与所述应用程序的编程语言类型相同;
确定模块,用于在所述获取模块获取所述patch后,根据所述patch中指示的替换信息,确定所述应用程序中存在缺陷的方法;
修补模块,用于根据所述patch,对所述应用程序中存在缺陷的方法进行修补;
其中,所述补丁程序patch是使用Objective-C编写得到用于修补应用程序缺陷的补丁代码,再编译运行所述补丁代码得到的,且所述补丁程序patch是采用Xcode工具进行签名的。
7.如权利要求6所述的装置,其特征在于,所述修补模块具体用于:将所述应用程序中存在缺陷的方法替换为符合该方法的返回值类型的桩方法,通过所述桩方法调用所述patch中的方法;所述桩方法为具有设定返回值类型和不固定参数的方法。
8.如权利要求7所述的装置,其特征在于,所述修补模块还用于,在通过所述桩方法调用所述patch中的方法之后,通过所述patch中的方法调用回调方法,执行所述回调方法中各参数指示的操作。
9.如权利要求6所述的装置,其特征在于,所述替换信息包括类名、方法名、和方法类型信息。
10.如权利要求6~9任一所述的装置,其特征在于,所述patch为编译生成的基于文件夹形式的patch,所述文件夹包含可执行文件和信息列表文件,所述可执行文件用于执行所述patch,所述信息列表文件包含所述替换信息。
CN201410389971.XA 2014-08-08 2014-08-08 一种应用程序缺陷修补方法及装置 Active CN105446712B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410389971.XA CN105446712B (zh) 2014-08-08 2014-08-08 一种应用程序缺陷修补方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410389971.XA CN105446712B (zh) 2014-08-08 2014-08-08 一种应用程序缺陷修补方法及装置

Publications (2)

Publication Number Publication Date
CN105446712A CN105446712A (zh) 2016-03-30
CN105446712B true CN105446712B (zh) 2020-04-03

Family

ID=55556965

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410389971.XA Active CN105446712B (zh) 2014-08-08 2014-08-08 一种应用程序缺陷修补方法及装置

Country Status (1)

Country Link
CN (1) CN105446712B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106020873B (zh) * 2016-05-13 2021-11-23 腾讯科技(深圳)有限公司 补丁包加载方法及装置
CN107451474B (zh) * 2016-05-31 2020-06-26 百度在线网络技术(北京)有限公司 用于终端的软件漏洞修复方法和装置
CN105867988A (zh) * 2016-06-24 2016-08-17 深圳云之家网络有限公司 一种基于Hook技术的Android App热更新的方法及***
CN107092472B (zh) * 2016-08-19 2021-01-29 浙江口碑网络技术有限公司 一种动态发布方法及设备
CN106843928B (zh) * 2016-12-22 2021-04-13 北京五八信息技术有限公司 应用程序的远程修复方法及设备
CN106897095B (zh) * 2017-02-24 2020-10-13 网易(杭州)网络有限公司 应用程序热修复的方法、装置、可读存储介质和计算设备
CN106951279A (zh) * 2017-02-27 2017-07-14 努比亚技术有限公司 应用的热修复装置及方法
CN109445807A (zh) * 2017-08-28 2019-03-08 腾讯科技(深圳)有限公司 实现应用程序更新的方法、装置和计算机可读存储介质
CN108874394A (zh) * 2018-04-17 2018-11-23 上海达野智能科技有限公司 机器人用户程序的解释方法及解释装置
CN108874438B (zh) * 2018-06-25 2021-09-21 南京中感微电子有限公司 补丁生成方法、装置、电子设备及计算机存储介质
CN110308922B (zh) * 2019-06-27 2023-04-18 百度在线网络技术(北京)有限公司 数据传输方法、装置、设备及存储介质
CN115934147A (zh) * 2021-08-06 2023-04-07 中兴通讯股份有限公司 软件自动修复方法、***、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719074A (zh) * 2009-12-17 2010-06-02 金蝶软件(中国)有限公司 补丁实现方法及装置
CN101957766A (zh) * 2010-09-17 2011-01-26 山东中创软件工程股份有限公司 一种字节码织入方法、装置及***
CN103197942A (zh) * 2013-03-18 2013-07-10 华为技术有限公司 一种补丁的生成方法、打补丁的方法及装置
CN103309683A (zh) * 2012-03-07 2013-09-18 京信通信***(中国)有限公司 硬件设备的软件补丁嵌入方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719074A (zh) * 2009-12-17 2010-06-02 金蝶软件(中国)有限公司 补丁实现方法及装置
CN101957766A (zh) * 2010-09-17 2011-01-26 山东中创软件工程股份有限公司 一种字节码织入方法、装置及***
CN103309683A (zh) * 2012-03-07 2013-09-18 京信通信***(中国)有限公司 硬件设备的软件补丁嵌入方法及装置
CN103197942A (zh) * 2013-03-18 2013-07-10 华为技术有限公司 一种补丁的生成方法、打补丁的方法及装置

Also Published As

Publication number Publication date
CN105446712A (zh) 2016-03-30

Similar Documents

Publication Publication Date Title
CN105446712B (zh) 一种应用程序缺陷修补方法及装置
US10635432B2 (en) Systems and methods for incremental software deployment
US10019256B2 (en) Systems and methods for incremental software development
JP6294886B2 (ja) アプリケーション用の中間言語コードからネイティブコードを生成すること
US8607208B1 (en) System and methods for object code hot updates
US10496417B2 (en) Modular co-versioning in a dynamically linked runtime environment
US9021512B1 (en) Runtime management of TOC pointer save and restore commands
US9569199B2 (en) Systems and methods to update source code files
CN110955431B (zh) 编译环境的处理方法及装置
CN107451474B (zh) 用于终端的软件漏洞修复方法和装置
JP2021002317A (ja) アプリケーションをアップグレードするための方法、装置、デバイスならびに記憶媒体
US9063819B2 (en) Extensible patch management
US8607203B1 (en) Test automation framework using dependency injection
CN105159732B (zh) 在移动终端安装或更新应用程序的方法和移动终端
US20110126179A1 (en) Method and System for Dynamic Patching Software Using Source Code
CN112882718B (zh) 编译处理方法、装置、设备及存储介质
US9639343B2 (en) Method for altering execution of a program, debugger, and computer-readable medium
US7987457B2 (en) Targeted patching for native generation images
CN112052037A (zh) 一种应用软件开发方法、装置、设备及介质
CN103645888A (zh) 一种自动构建操作***的***及方法
CN117435512B (zh) 一种基于Junit5自动切换不同数据库类型的单元测试方法
US9841982B2 (en) Locating import class files at alternate locations than specified in classpath information
US9760364B2 (en) Checks for software extensions
CN107092472B (zh) 一种动态发布方法及设备
CN111142848A (zh) 一种软件程序编译方法、执行方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant