CN110633099A - 应用程序的修复方法、装置、设备和可读介质 - Google Patents
应用程序的修复方法、装置、设备和可读介质 Download PDFInfo
- Publication number
- CN110633099A CN110633099A CN201910838275.5A CN201910838275A CN110633099A CN 110633099 A CN110633099 A CN 110633099A CN 201910838275 A CN201910838275 A CN 201910838275A CN 110633099 A CN110633099 A CN 110633099A
- Authority
- CN
- China
- Prior art keywords
- management file
- fault
- fault management
- class
- client
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Abstract
本公开实施例公开了一种应用程序的修复方法、装置、设备和可读介质。所述方法包括由客户端执行:若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件;若存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。通过采用本公开实施例所提供的技术方案,可以达到快速解决应用程序的任意使用版本中存在的运行问题的效果。
Description
技术领域
本公开实施例涉及互联网技术领域,尤其涉及一种应用程序的修复方法、装置、设备和可读介质。
背景技术
目前,随着经济的快速发展,智能移动终端已经融入到人们的日常生活中的每一个角落。随着导航、购物以及即时通信等功能的不断丰富,各式各样的应用程序得到了快速的发展。
为了满足用户的使用需求,应用程序是需要不断进行更新的。然而在更新过程中,或者发布的原始版本的应用程序的使用过程中,会因为当前版本中的部分代码中存在一些问题,导致应用程序每次执行某一个方法或者组件时会出现闪退现象。又由于当前版本已经发布,客户端使用量的巨大,无法从客户端侧解决这一问题。所以现有的一些做法往往是需要重新发布新的版本来解决相应的问题,然而新版本的发布需要大量的审核和测试工作,就使得相应问题无法被及时解决。
发明内容
本公开实施例提供一种应用程序的修复方法、装置、设备和可读介质,以达到快速解决应用程序的任意使用版本中存在的运行问题的效果。
第一方面,本公开实施例提供了一种应用程序的修复方法,所述方法由客户端执行,该方法包括:
若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;
接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件;
若存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
进一步的,所述故障管理文件中的修复信息包括类的方法和/或类的变量。
进一步的,
若所述故障管理文件中的修复信息包括针对故障代码段的类的方法,则,
当检测到需要执行故障代码段时,执行修复信息中的类的方法,并识别所述修复信息中的类的方法的执行结果;
若所述修复信息中的类的方法的执行结果为空,则返回无响应结果;
若所述修复信息中的类的方法的执行结果不为空,则返回与执行结果相关的响应结果;
若所述故障管理文件中的修复信息包括针对故障代码段的类的变量,则,
当检测到需要执行故障代码段时,使用修复信息中的类的变量;
若所述故障管理文件中的修复信息包括针对故障代码段的类的方法和类的变量,则,
当检测到需要执行故障代码段时,执行修复信息中的类的方法,并使用修复信息中的类的变量;
若所述修复信息中的类的方法的执行结果为空,则返回无响应结果;
若所述修复信息中的类的方法的执行结果不为空,则返回与执行结果相关的响应结果。
进一步的,所述故障管理文件中的类的变量包括数组变更信息,所述数组变更信息包括数据内容和/或数据长度;
所述故障管理文件中的类的变量还包括键值对变更信息,所述键值对变更信息包括将键值对中的值指向空指针或者符合预设标准的合法指针。
进一步的,在检测到客户端被启动时,或,客户端被切换至前台使用时,确定为检测到故障管理文件读取触发事件。
第二方面,本公开实施例提供了一种应用程序的修复方法,所述方法由服务端执行,该方法包括:
响应于客户端的故障管理文件读取请求,确定是否存在与客户端当前版本对应的故障管理文件;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;
若存在,则将所述故障管理文件下发至所述客户端,供客户端执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
进一步的,所述方法还包括:
响应于故障管理文件变更请求,对所述故障管理文件进行增加、删除以及更新中的至少一种操作。
第三方面,本公开实施例还提供了一种应用程序的修复装置,所述装置配置于客户端,该装置包括:
读取请求发送模块,用于若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;
故障管理文件识别模块,用于接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件;
修复模块,用于若所述故障管理文件识别模块识别为存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
第四方面,本公开实施例还提供了一种应用程序的修复装置,所述装置配置于服务端,该装置包括:
故障管理文件查询模块,用于响应于客户端的故障管理文件读取请求,确定是否存在与客户端当前版本对应的故障管理文件;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;
故障管理文件下发模块,用于若所述故障管理文件查询模块查询为存在,则将所述故障管理文件下发至所述客户端,供客户端执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
第五方面,本公开实施例提供了一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器运行的计算机程序,所述处理器执行所述计算机程序时实现如本公开实施例第一方面或者第二方面所述的应用程序的修复方法。
第六方面,本公开实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本公开实施例第一方面或者第二方面所述的应用程序的修复方法。
本公开实施例所提供的技术方案,由客户端执行:若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件;若存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。通过采用本公开所提供的技术方案,可以达到快速解决应用程序的任意使用版本中存在的运行问题的效果。
附图说明
图1是本公开实施例提供的应用程序的修复方法的流程图;
图2是本公开实施例提供的应用程序的修复方法的流程图;
图3是本公开实施例提供的应用程序的修复装置的结构示意图;
图4是本公开实施例提供的应用程序的修复装置的结构示意图;
图5是本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1是本公开实施例提供的应用程序的修复方法的流程图,本实施例可适用于应用程序的上线版本存在故障的情况,所述方法可以由本公开实施例所提供的应用程序的修复装置执行,该装置可以由软件和/或硬件的方式来实现,并可集成于智能终端等电子设备中。
如图1所示,所述应用程序的修复方法包括:
S110、若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息。
在本申请中,应用程序的使用终端的数量是较大的,因此无法由于一个版本的应用程序的代码段的故障,去针对每一个使用终端进行修复。因此,可以在应用程序使用过程中,检测使用终端的应用程序是否存在故障代码段,以及是否会使用到故障代码段,若存在且需要使用,如果不修复就会出现应用程序闪退、卡死或者其他崩溃的现象。
在本实施例中,由于用户对应用程序的使用方式是各不相同的,因此可以在应用程序被使用时,就确定为需要运行应用程序的所有代码段。因此,可以是应用程序被使用确定为检测到故障管理文件读取触发事件。
在本实施例中,可选的,在检测到客户端被启动时,或,客户端被切换至前台使用时,确定为检测到故障管理文件读取触发事件。其中,当客户端被启动时,则用户会即将对应用程序进行各种功能性的操作,而如果用户已经将客户端切换至后台,则可以把用户将客户端切换至前台使用时,确定为检测到故障管理文件读取触发事件。在本实施例中,这样设置的好处是可以在应用程序的客户端处于被使用状态时,就进行故障管理文件读取,以保证应用程序的运行过程的顺利进行,不会因为故障代码段导致应用程序运行崩溃的现象出现。
其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息。由于应用程序的客户端当前版本可以是各不相同的,例如当前存在四个版本供用户使用,则可以针对每个版本确定一个故障管理文件,针对各版本的故障管理文件中,可以包括有该版本存在的故障代码段,以及故障代码段的修复信息。例如针对版本1,存在故障管理文件1,其中针对版本1共有两个故障代码段,并且针对两个故障代码段分别有对应的修复信息,而针对版本2,由于其中不存在故障代码段,因此可以不存在故障管理文件2,相应的,针对版本3和4可以采用同样的设置方式。在本实施例中,可以将各个故障管理文件合并成一个故障管理文件,也可以像上述示例中所示的分别生成一个故障管理文件。其中如果不存在故障代码段的,可以不生成故障管理文件,也可以生成空的故障管理文件,对此本申请不做限定。
S120、接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件。
在发送故障管理文件读取请求之后,可以接收服务端返回的读取结果。其中,读取结果可以是包括故障管理文件的,也可以是不包括故障管理文件的,包括故障管理文件的情况还可以分为返回的故障管理文件是否为空文件两种情况。本申请为了表述方便,可以确定各故障管理文件均为非空文件,即如果当前应用程序的版本存在故障代码段,则可以返回故障管理文件,如果不存在故障代码段,则可以不返回故障管理文件。在不存在故障管理文件时,可以返回其他信息,表示当前应用程序的版本不存在问题,可以继续运行应用程序。
S130、若存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
当存在故障管理文件时,可以下载故障管理文件到使用终端,当运行应用程序到故障代码段时,使用相应的修复信息替代该故障代码段,由此可以保证应用程序的正常运行。
在本实施例中,可选的,所述故障管理文件中的修复信息包括类的方法和/或类的变量。其中,修复信息为类的方法,可以是对故障代码段的方法的替代。例如应用程序的某一个get()方法存在问题,且每次运行这个get()方法都会导致应用程序的闪退,则可以在应用程序执行这一个get()方法时,从修复信息中执行相应的类的方法。该方法可以是使应用程序正常运行的方法,也可以是一个空方法,即执行该方法时不会导致任何功能的实现,但是也不会时应用程序崩溃,这样就可以保证应用程序的运行是顺利的。相应的,如果是应用程序的某一个类的变量存在问题,导致应用程序每次使用该变量都会造成死机等情况,则可以在调取该变量时,使用修复信息中的类的变量来替代,以保证应用程序的正常运行。本技术方案这样设置的好处是可以提高应用程序使用过程中的稳定性,克服了因为故障代码段的运行导致应用程序闪退等崩溃现象的发生。
可以理解的,在上述方案中,修复信息可以包括类方法和实例方法,还可以包括类变量和实例变量。其中,对于类中的类方法,在该类被加载到内存时,就分配了相应的入口地址。从而类方法不仅可以被类创建的任何对象调用执行,也可以直接通过类名调用。类方法的入口地址直到程序退出才被取消。对于实例方法,对于类中的类方法,当类的字节码文件被加载到内存时,类的实例方法不会被分配入口地址,当该类创建对象后,类中的实例方法才分配入口地址,从而实例方法可以被类创建的任何对象调用执行。需要注意的是,当我们创建第一个对象时,类中的实例方法就分配了入口地址,当再创建对象时,不再分配入口地址,也就是说,方法的入口地址被所有的对象共享,当所有的对象都不存在时,方法的入口地址才被取消。对于类中的类变量,在该类被加载到内存时,就分配了相应的内存空间。如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量。对于实例变量,不同的对象的实例变量将被分配不同的内存空间。
本公开实施例所提供的技术方案,由客户端执行:若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件;若存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。通过采用本公开所提供的技术方案,可以达到快速解决应用程序的任意使用版本中存在的运行问题的效果。
在上述技术方案的基础上,可选的,若所述故障管理文件中的修复信息包括针对故障代码段的类的方法,则,当检测到需要执行故障代码段时,执行修复信息中的类的方法,并识别所述修复信息中的类的方法的执行结果;若所述修复信息中的类的方法的执行结果为空,则返回无响应结果;若所述修复信息中的类的方法的执行结果不为空,则返回与执行结果相关的响应结果;
若所述故障管理文件中的修复信息包括针对故障代码段的类的变量,则,当检测到需要执行故障代码段时,使用修复信息中的类的变量;
若所述故障管理文件中的修复信息包括针对故障代码段的类的方法和类的变量,则,当检测到需要执行故障代码段时,执行修复信息中的类的方法,并使用修复信息中的类的变量;若所述修复信息中的类的方法的执行结果为空,则返回无响应结果;若所述修复信息中的类的方法的执行结果不为空,则返回与执行结果相关的响应结果。
本技术方案提供了针对同一个故障代码段的三种修复信息对应的修复方式,分别包括只有类的方法的情况,只有类的变量的情况,同时具有类的方法和类的变量的情况。若为只有类的方法的情况,则在执行该故障代码段时,执行修复信息当中的类的方法,该方法可以是指向一个正常结果,例如得到一个具体的数据结果。该方法还可以是指向一个空结果,例如执行修复信息当中的类的方法得不到任何结果,不执行任何操作。示例性的,例如在电商应用程序中点击加入购物车后不执行任何操作,即不把该商品加到购物车当中。通过这两种方式,可以分别返回执行结果的响应结果和无响应结果。无论采取其中的哪一种方式,都能够保证应用程序的正常运行,不会遭到闪退等现象。在本技术方案中,还存在故障代码段为类的变量的情况,当故障代码段为类的变量时,只要引用这个变量都会遭到闪退等情况。在这种情况下,可以在使用到该故障的类的变量时,通过调取修复信息中类的变量进行处理,这样就不会出现闪退等情况。在另一种情况下,还可以存在针对同一个故障代码段同的修复信息中同时存在类的方法和类的变量的情况,在这种情况下,可以通过执行该方法并在需要使用变量时调用该变量,以保证应用程序的正常运行。
在上述技术方案的基础上,可选的,所述故障管理文件中的类的变量包括数组变更信息,所述数组变更信息包括数据内容和/或数据长度;所述故障管理文件中的类的变量还包括键值对变更信息,所述键值对变更信息包括将键值对中的值指向空指针或者符合预设标准的合法指针。在本技术方案中,针对类的变量包括的数组信息存在问题时,可以提供数组变更信息,具体包括数据内容的变化和数据长度的变化。针对数据内容的变化,例如当前的类为桌子类,在实例化的过程中,发现桌子的长、宽和高的数据中存在负值,这就会导致桌子无法被实例化。在这种情况下,可以将其中的数据内容进行变更,例如将-0.8变更为0.8,就可以使桌子的数组内容正确。另一种情况,可以是数组长度的问题导致桌子无法被实例化,例如桌子的数组中包括长、宽和高的数据,但是在实际使用过程中需要调取桌子中抽屉的个数的数据,而在原来的数据中抽屉的个数是不存在的,则可以通过改变数组中数据的长度来实现,例如由原来的长、宽和高的三个数据,变更为长、宽、高和抽屉个数的四个数据,通过改变数据的长度,从而带有抽屉的桌子可以被实例化。除此之外,类的变量还可以是以键值对的形式进行体现的,在这种情况下,如果是因为其中的值信息导致的应用程序的为题,可以将其指向一个合法指针或者指向一个空指针。其中合法指针实质可以使用的键值对信息,空指针可以是将其值信息设置为null,这样可以避免使用该类的变量时发生闪退等影响用户继续使用的故障。
图2是本公开实施例提供的应用程序的修复方法的流程图。本方案从服务端的角度,展示应用程序的修复方法的流程图。
如图2所示,所述应用程序的修复方法包括:
S210、响应于客户端的故障管理文件读取请求,确定是否存在与客户端当前版本对应的故障管理文件;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息。
其中,在接收到客户端的故障管理文件读取请求是,可以通过该请求信息确定客户端的当前版本,并根据当前版本确定是否存在与之对应的故障管理文件,若是,则返回该故障管理文件,若否,则可以返回相应的告知信息。
S220、若存在,则将所述故障管理文件下发至所述客户端,供客户端执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
当存在于客户端的版本对应的故障管理文件时,通过将故障管理文件下发到客户端的形式,供客户端使用其中的修复信息,具体的使用方式如上述方案所示,此处不再赘述。通过这样的设置,可以及时提供客户端的代码段故障信息的应对策略,避免出现用户无法正常使用该应用程序的情况出现。
在本技术方案中,服务端还可以接收客户端闪退等故障日志,供工作人员确定客户端各版本的故障代码段的内容,并在确定故障代码段之后,针对其开发相应的修复方式,并以故障管理文件的形式存储到服务端当中。
在本技术方案中,可选的,响应于故障管理文件变更请求,对所述故障管理文件进行增加、删除以及更新中的至少一种操作。其中,可以根据版本的不同,增加、删除或者更新故障管理文件。故障管理文件的变更可以是依据权限进行的,只有在有权限的工作人员的身份认证成功后,才能够进行对故障管理文件的变更。故障管理文件的灵活变更的好处是可以及时发现新的问题,并将解决方案通过故障管理文件的形式下发至各个用户终端,提高了应用程序的修复效率,保证用户对应用程序的使用体验。
图3是本公开实施例提供的应用程序的修复装置的结构示意图。如图3所示,所述应用程序的修复装置,包括:
读取请求发送模块310,用于若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;
故障管理文件识别模块320,用于接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件;
修复模块330,用于若所述故障管理文件识别模块320识别为存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
本公开实施例所提供的技术方案,由客户端执行:若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件;若存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。通过采用本公开所提供的技术方案,可以达到快速解决应用程序的任意使用版本中存在的运行问题的效果。
上述产品可执行本公开任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
图4是本公开实施例提供的应用程序的修复装置的结构示意图。如图4所示,所述应用程序的修复装置,包括:
故障管理文件查询模块410,用于响应于客户端的故障管理文件读取请求,确定是否存在与客户端当前版本对应的故障管理文件;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;
故障管理文件下发模块420,用于若所述故障管理文件查询模块410查询为存在,则将所述故障管理文件下发至所述客户端,供客户端执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
本公开实施例所提供的技术方案,由服务端执行:响应于客户端的故障管理文件读取请求,确定是否存在与客户端当前版本对应的故障管理文件;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;若存在,则将所述故障管理文件下发至所述客户端,供客户端执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。通过采用本公开所提供的技术方案,可以达到快速解决应用程序的任意使用版本中存在的运行问题的效果。
上述产品可执行本公开任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果。
图5是本公开实施例提供的一种电子设备的结构示意图。下面参考图5,其示出了适于用来实现本公开实施例的电子设备500的结构示意图。本公开实施例中的电子设备可以是用来提供信息展示功能的电子设备。图5示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(ROM)502中的程序或者从存储装置508加载到随机访问存储器(RAM)503中的程序而执行各种适当的动作和处理。在RAM 503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、ROM 502以及RAM 503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
通常,以下装置可以连接至I/O接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置507;包括例如磁带、硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他电子设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从ROM 502被安装。在该计算机程序被处理装置501执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行:若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件;若存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
或执行:响应于客户端的故障管理文件读取请求,确定是否存在与客户端当前版本对应的故障管理文件;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;若存在,则将所述故障管理文件下发至所述客户端,供客户端执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或电子设备上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块、单元的名称在某种情况下并不构成对该模块、单元本身的限定。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
注意,上述仅为本公开的较佳实施例及所运用技术原理。本领域技术人员会理解,本公开不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本公开的保护范围。因此,虽然通过以上实施例对本公开进行了较为详细的说明,但是本公开不仅仅限于以上实施例,在不脱离本公开构思的情况下,还可以包括更多其他等效实施例,而本公开的范围由所附的权利要求范围决定。
Claims (11)
1.一种应用程序的修复方法,其特征在于,所述方法由客户端执行,所述方法包括:
若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;
接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件;
若存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
2.根据权利要求1所述的方法,其特征在于,所述故障管理文件中的修复信息包括类的方法和/或类的变量。
3.根据权利要求2所述的方法,其特征在于,
若所述故障管理文件中的修复信息包括针对故障代码段的类的方法,则,
当检测到需要执行故障代码段时,执行修复信息中的类的方法,并识别所述修复信息中的类的方法的执行结果;
若所述修复信息中的类的方法的执行结果为空,则返回无响应结果;
若所述修复信息中的类的方法的执行结果不为空,则返回与执行结果相关的响应结果;
若所述故障管理文件中的修复信息包括针对故障代码段的类的变量,则,
当检测到需要执行故障代码段时,使用修复信息中的类的变量;
若所述故障管理文件中的修复信息包括针对故障代码段的类的方法和类的变量,则,
当检测到需要执行故障代码段时,执行修复信息中的类的方法,并使用修复信息中的类的变量;
若所述修复信息中的类的方法的执行结果为空,则返回无响应结果;
若所述修复信息中的类的方法的执行结果不为空,则返回与执行结果相关的响应结果。
4.根据权利要求2所述的方法,其特征在于,所述故障管理文件中的类的变量包括数组变更信息,所述数组变更信息包括数据内容和/或数据长度;
所述故障管理文件中的类的变量还包括键值对变更信息,所述键值对变更信息包括将键值对中的值指向空指针或者符合预设标准的合法指针。
5.根据权利要求1所述的方法,其特征在于,在检测到客户端被启动时,或,客户端被切换至前台使用时,确定为检测到故障管理文件读取触发事件。
6.一种应用程序的修复方法,其特征在于,所述方法由服务端执行,所述方法包括:
响应于客户端的故障管理文件读取请求,确定是否存在与客户端当前版本对应的故障管理文件;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;
若存在,则将所述故障管理文件下发至所述客户端,供客户端执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
响应于故障管理文件变更请求,对所述故障管理文件进行增加、删除以及更新中的至少一种操作。
8.一种应用程序的修复装置,其特征在于,所述装置配置于客户端,所述装置包括:
读取请求发送模块,用于若检测到故障管理文件读取触发事件,向服务端发送故障管理文件读取请求;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;
故障管理文件识别模块,用于接收服务端返回的故障管理文件读取结果,并识别读取结果中是否存在故障管理文件;
修复模块,用于若所述故障管理文件识别模块识别为存在,则在执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
9.一种应用程序的修复装置,其特征在于,所述装置配置于服务端,所述装置包括:
故障管理文件查询模块,用于响应于客户端的故障管理文件读取请求,确定是否存在与客户端当前版本对应的故障管理文件;其中,所述故障管理文件用于记录至少一个客户端版本存在的故障代码段,以及针对故障代码段的修复信息;
故障管理文件下发模块,用于若所述故障管理文件查询模块查询为存在,则将所述故障管理文件下发至所述客户端,供客户端执行故障代码段时执行所述故障管理文件中针对故障代码段的修复信息。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5中任一项所述的应用程序的修复方法或实现如权利要求6或7所述的应用程序的修复方法。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-5中任一项所述的应用程序的修复方法,或实现如权利要求6或7所述的应用程序的修复方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838275.5A CN110633099A (zh) | 2019-09-05 | 2019-09-05 | 应用程序的修复方法、装置、设备和可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910838275.5A CN110633099A (zh) | 2019-09-05 | 2019-09-05 | 应用程序的修复方法、装置、设备和可读介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110633099A true CN110633099A (zh) | 2019-12-31 |
Family
ID=68970324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910838275.5A Pending CN110633099A (zh) | 2019-09-05 | 2019-09-05 | 应用程序的修复方法、装置、设备和可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110633099A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160378453A1 (en) * | 2015-06-29 | 2016-12-29 | Verizon Patent And Licensing Inc. | Dynamic delivery of code and fixes |
CN106843947A (zh) * | 2017-01-04 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 代码缺陷的处理方法和装置 |
CN108270832A (zh) * | 2016-12-30 | 2018-07-10 | 华为软件技术有限公司 | 一种故障重放方法和装置 |
CN108304213A (zh) * | 2018-01-11 | 2018-07-20 | 口碑(上海)信息技术有限公司 | 运行程序的热修复方法及装置 |
CN108322345A (zh) * | 2018-02-07 | 2018-07-24 | 平安科技(深圳)有限公司 | 一种故障修复数据包的发布方法及服务器 |
-
2019
- 2019-09-05 CN CN201910838275.5A patent/CN110633099A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160378453A1 (en) * | 2015-06-29 | 2016-12-29 | Verizon Patent And Licensing Inc. | Dynamic delivery of code and fixes |
CN108270832A (zh) * | 2016-12-30 | 2018-07-10 | 华为软件技术有限公司 | 一种故障重放方法和装置 |
CN106843947A (zh) * | 2017-01-04 | 2017-06-13 | 腾讯科技(深圳)有限公司 | 代码缺陷的处理方法和装置 |
CN108304213A (zh) * | 2018-01-11 | 2018-07-20 | 口碑(上海)信息技术有限公司 | 运行程序的热修复方法及装置 |
CN108322345A (zh) * | 2018-02-07 | 2018-07-24 | 平安科技(深圳)有限公司 | 一种故障修复数据包的发布方法及服务器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109491646B (zh) | 一种消息录入方法、装置、电子设备及可读介质 | |
CN109408481B (zh) | 日志采集规则的更新方法、装置、电子设备及可读介质 | |
CN112016284B (zh) | 电子表格的处理方法及设备 | |
CN115268854A (zh) | 业务扩展实现方法、系统、电子设备及可读存储介质 | |
CN111324441A (zh) | 运行环境的切换方法、装置、计算机设备和存储介质 | |
CN116302708A (zh) | 基于负载均衡的数据备份方法、装置、设备及存储介质 | |
CN109873861B (zh) | 跨区块链节点的交互方法及装置、存储介质及电子设备 | |
CN109828830B (zh) | 用于管理容器的方法和装置 | |
CN109634702B (zh) | 一种信息提示的方法、装置、电子设备及可读介质 | |
CN113407973B (zh) | 软件功能权限管理方法、系统、服务器及存储介质 | |
CN110648126A (zh) | 支付类型配置方法、装置、服务器及存储介质 | |
CN109885431B (zh) | 用于备份数据的方法和装置 | |
CN111240998A (zh) | 测试用例处理方法和装置 | |
CN110633099A (zh) | 应用程序的修复方法、装置、设备和可读介质 | |
CN116308171A (zh) | 信息处理方法、装置、电子设备和存储介质 | |
CN111984496B (zh) | 一种监控栈内存泄露的方法、装置、介质和电子设备 | |
CN114036218A (zh) | 一种数据模型切换方法、装置、服务器和存储介质 | |
CN111538717B (zh) | 数据处理的方法、装置、电子设备及计算机可读介质 | |
CN115114612A (zh) | 访问处理方法、装置、电子设备以及存储介质 | |
CN110221854B (zh) | 一种多进程数据更新方法、装置、介质和电子设备 | |
US9477448B2 (en) | Screen-oriented computing program refactoring | |
CN112506592A (zh) | 页面加载时长的确定方法、装置、设备和存储介质 | |
US20150113501A1 (en) | Mobile computing program slicing | |
CN111061576A (zh) | 一种实体对象的创建方法及系统 | |
CN117131071B (zh) | 一种数据处理方法、装置、电子设备及计算机可读介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230427 Address after: Room 802, Information Building, 13 Linyin North Street, Pinggu District, Beijing, 101299 Applicant after: Beijing youzhuju Network Technology Co.,Ltd. Address before: No. 715, 7th floor, building 3, 52 Zhongguancun South Street, Haidian District, Beijing 100081 Applicant before: Beijing infinite light field technology Co.,Ltd. |