CN111026581A - 应用程序的修复方法及装置、系统、存储介质、电子装置 - Google Patents
应用程序的修复方法及装置、系统、存储介质、电子装置 Download PDFInfo
- Publication number
- CN111026581A CN111026581A CN201911040240.3A CN201911040240A CN111026581A CN 111026581 A CN111026581 A CN 111026581A CN 201911040240 A CN201911040240 A CN 201911040240A CN 111026581 A CN111026581 A CN 111026581A
- Authority
- CN
- China
- Prior art keywords
- application program
- target application
- repair
- client
- error information
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1438—Restarting or rejuvenating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明提供了一种应用程序的修复方法及装置、系统、存储介质、电子装置,其中,该方法包括:接收客户端响应目标应用程序运行异常上报的错误信息;根据所述错误信息生成所述目标应用程序的修复文件;检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序。通过本发明,解决了相关技术中只能通过软件更新才能修复应用程序故障的技术问题,解决了相关技术中修复应用程序故障效率低的技术问题,提高了应用程序的修复速度,提高了修复效率,提升了用户体验。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种应用程序的修复方法及装置、系统、存储介质、电子装置。
背景技术
相关技术中,应用程序在网络中发布上线之后,在用户使用终端设备运行应用程序的过程中,应用程序通常会出现一些异常,应用软件在不同的平台上运行或多或少都会遇到APP闪退等使用异常的问题。
由于不同的终端设备厂商定制的系统不同,则可能会出现在不同的系统下某些应用程序无法显示或使用。换言之,在终端用户使用应用程序的过程中,可能出现系统与应用程序的兼容性问题,甚至会有相同功能的不同应用程序之间出现冲突的问题,系统权限与应用程序权限冲突的问题等。由于导致应用程序异常的原因很多,相关技术中需要人工排查,定向修复问题,然后发布新的版本进行统一更新和安装,导致修复应用程序的速度很慢,效率低且影响用户体验。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种应用程序的修复方法及装置、系统、存储介质、电子装置,以解决上述问题或者至少部分地解决上述问题。
根据本发明的一个实施例,提供了一种应用程序的修复方法,包括:
接收客户端响应目标应用程序运行异常上报的错误信息;
根据所述错误信息生成所述目标应用程序的修复文件;
检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序。
可选的,根据所述错误信息生成所述目标应用程序的修复文件包括:
解析所述错误信息,定位所述错误信息中的错误代码,其中,所述错误代码为所述目标应用程序中触发所述目标应用程序运行异常的程序代码;
查找与所述错误代码对应的保护代码;
根据所述保护代码生成所述修复文件。
可选的,根据所述错误信息生成所述目标应用程序的修复文件包括:
解析所述错误信息,定位所述错误信息中的错误代码和运行环境信息,其中,所述错误代码为所述目标应用程序中触发所述目标应用程序运行异常的程序代码,所述运行环境信息用于表征所述目标应用程序在运行异常时的客户端环境;
查找与所述错误代码和所述运行环境信息对应的保护代码;
根据所述保护代码生成所述修复文件。
可选的,检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,包括以下之一:
检测到所述目标应用程序的主程序启动时,向所述客户端推送所述修复文件;
检测到所述目标应用程序的后台线程启动时,向所述客户端推送所述修复文件。
可选的,接收客户端响应目标应用程序运行异常上报的错误信息包括以下之一:
接收客户端响应目标应用程序启动异常上报的第一错误信息;
接收客户端响应目标应用程序闪退异常上报的第二错误信息;
接收客户端响应目标应用程序卡顿异常上报的第三错误信息。
可选的,在根据所述错误信息生成所述目标应用程序的修复文件之后,所述方法还包括:
确定安装所述目标应用程序的客户端集合;
向所述客户端集合推送所述修复文件。
根据本发明的一个实施例,提供了另一种应用程序的修复方法,包括:
检测到目标应用程序运行异常,向服务器上报错误信息;
检测到所述目标应用程序在线时,接收所述服务器基于所述错误信息反馈的修复文件;
在使用所述修复文件修复所述目标应用程序后,运行所述目标应用程序。
可选的,在使用所述修复文件修复所述目标应用程序后,运行所述目标应用程序,包括:
读取所述修复文件中的保护代码;
在所述目标应用程序加载到运存后,将所述保护代码插入所述目标应用程序的原始代码;
运行插入所述保护代码后的所述目标应用程序。
可选的,检测到所述目标应用程序在线时,接收所述服务器基于所述错误信息反馈的修复文件,包括以下之一:
检测到所述目标应用程序的主程序启动时,接收所述服务器基于所述错误信息反馈的修复文件;
检测到所述目标应用程序的后台线程启动时,接收所述服务器基于所述错误信息反馈的修复文件。
根据本发明的另一个实施例,提供了一种应用程序的修复装置,包括:
接收模块,用于接收客户端响应目标应用程序运行异常上报的错误信息;
生成模块,用于根据所述错误信息生成所述目标应用程序的修复文件;
推送模块,用于检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序。
可选的,所述生成模块包括:
第一解析单元,用于解析所述错误信息,定位所述错误信息中的错误代码,其中,所述错误代码为所述目标应用程序中触发所述目标应用程序运行异常的程序代码;
第一查找单元,用于查找与所述错误代码对应的保护代码;
第一生成单元,用于根据所述保护代码生成所述修复文件。
可选的,所述生成模块包括:
第二解析单元,用于解析所述错误信息,定位所述错误信息中的错误代码和运行环境信息,其中,所述错误代码为所述目标应用程序中触发所述目标应用程序运行异常的程序代码,所述运行环境信息用于表征所述目标应用程序在运行异常时的客户端环境;
第二查找单元,用于查找与所述错误代码和所述运行环境信息对应的保护代码;
第二生成单元,用于根据所述保护代码生成所述修复文件。
根据本发明的另一个实施例,提供了另一种应用程序的修复装置,包括:
上报模块,用于检测到目标应用程序运行异常,向服务器上报错误信息;
接收模块,用于检测到所述目标应用程序在线时,接收所述服务器基于所述错误信息反馈的修复文件;
运行模块,用于在使用所述修复文件修复所述目标应用程序后,运行所述目标应用程序。
可选的,所述运行模块包括:
读取单元,用于读取所述修复文件中的保护代码;
插入单元,用于在所述目标应用程序加载到运存后,将所述保护代码插入所述目标应用程序的原始代码;
运行单元,用于运行插入所述保护代码后的所述目标应用程序。
根据本发明的又一个实施例,提供了一种应用程序的修复系统,包括客户端和服务器,其中,
所述服务器包括:
接收模块,用于接收所述客户端响应目标应用程序运行异常上报的错误信息;
生成模块,用于根据所述错误信息生成所述目标应用程序的修复文件;
推送模块,用于检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序;
所述客户端包括:
上报模块,用于检测到目标应用程序运行异常,向所述服务器上报错误信息;
接收模块,用于检测到所述目标应用程序在线时,接收所述服务器基于所述错误信息反馈的修复文件;
运行模块,用于在使用所述修复文件修复所述目标应用程序后,运行所述目标应用程序。
根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。
通过本发明,接收客户端响应目标应用程序运行异常上报的错误信息,然后根据错误信息生成目标应用程序的修复文件,检测到目标应用程序在线时,向客户端推送修复文件,以使客户端使用修复文件修复目标应用程序,解决了相关技术中只能通过软件更新才能修复应用程序故障的技术问题,解决了相关技术中修复应用程序故障效率低的技术问题,提高了应用程序的修复速度,提高了修复效率,提升了用户体验。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是本发明实施例的一种应用程序的修复移动终端结构框图;
图2是根据本发明实施例的一种应用程序的修复方法流程图;
图3是本发明实施例通过服务端本地的保护代码修复应用程序的流程图;
图4是根据本发明实施例的另一种应用程序的修复方法流程图;
图5是本发明实施例客户端和服务器的交互示意图;
图6本发明实施例的一种应用程序的修复装置的结构框图;
图7本发明实施例的另一种应用程序的修复装置的结构框图;
图8本发明实施例的一种应用程序的修复系统的结构框图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例一所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种应用程序的修复移动终端结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的一种应用程序的修复方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种应用程序的修复方法,图2是根据本发明实施例的一种应用程序的修复方法流程图,如图2所示,该流程包括如下步骤:
步骤S202,接收客户端响应目标应用程序运行异常上报的错误信息;
在本申请实施例中,错误信息可以是各种形式的信息,例如:错误日志(软件日志、系统日志等),错误代码,软件异常截图等。
错误信息包括触发和导致目标应用程序运行异常的底层代码,还可以包括异常时间,客户端标识,目标应用程序的配置信息,客户端的运行环境信息等,这些信息都可以用于辅助定位异常。
在本申请实施例中,目标应用程序可以在任何不能正常使用的情况下上报错误信息,包括启动异常、闪退等场景。接收客户端响应目标应用程序运行异常上报的错误信息可以但不限于为:
场景一:接收客户端响应目标应用程序启动异常上报的第一错误信息;
在该场景中,在客户端上点击目标应用程序后,目标应用程序不能正常启动,如不能打开UI界面,不能开启后台进程等。
例如,某一个APP在正常启动时,需要开启客户端的定位服务(如地图软件、本地生活服务软件等),而用户在使用时,定位服务并没有开启,APP检测到定位服务未开启,不能打开UI界面,导致启动异常。
场景二:接收客户端响应目标应用程序闪退异常上报的第二错误信息;
在该场景中,目标应用程序在客户端上已经正常开启,在目标应用程序的运行过程中,在用户或系统未正常关闭的情况下,自动退出UI界面,或者终止后台进程等。
例如,某一个APP在正常启动后,用户点击了其中的某个功能按钮(如跳转功能的按钮、支付功能的按钮等),而APP不能正常执行该功能,或者该操作被系统判定非法等,导致主动闪退或被动闪退。
场景三:接收客户端响应目标应用程序卡顿异常上报的第三错误信息。
在该场景中,目标应用程序在客户端上已经正常开启,在目标应用程序的运行过程中,不能正常响应控制指令,导致界面卡顿,无法退出,运行缓慢等。
例如,某一个APP在正常启动后,用户点击了其中的某个功能按钮(如跳转功能的按钮、支付功能的按钮等),APP在执行该功能时进入死循环无法跳出,或者占用大量的开销资源,导致卡顿异常。
步骤S204,根据错误信息生成目标应用程序的修复文件;本实施例的修复文件是一个补丁文件;
本实施例的修复文件用于修复运行异常的目标应用程序,至少包括与错误代码对应的保护代码,还可以包括客户端的运行环境信息等,可以通过将保护代码替换错误代码,使用保护代码控制错误代码,或者使用保护代码控制错误代码的调用函数等方式实现修复。
在本申请实施例的一个实施方式中,根据错误信息生成目标应用程序的修复文件包括:
S11,解析错误信息,定位错误信息中的错误代码,其中,错误代码为目标应用程序中触发目标应用程序运行异常的程序代码;
在一个示例中,错误信息的错误代码为a1b1c1,目标应用程序在底层运行a1b1c1时,导致了运行异常。
S12,查找与错误代码对应的保护代码;
本实施例可以在服务器本地的修复策略库中进行查找,修复策略库预设了错误代码的对应修复方案,修复策略库中包括多个保护代码,每个错误代码对应至少一个保护代码,当然,也可以从互联网或者第三方服务器查找,如从目标应用程序的官方网站,维护网站等中搜索已经发布的保护代码。图3是本发明实施例通过服务端本地的保护代码修复应用程序的流程图,在APP使用异常时,服务端通过分析错误信息,并按照系统己经记录的修复方案,自动在错误代码处进行修复,生成修复文件,在用户下次使用时自动推送到客户端,保证APP使用,包括:
S1、应用使用异常时,上报应用出错的代码信息;
S2、服务端接收到错误信息后,按照系统己经收集的对应修复方案,对具体报错的代码,按照约定自动修复,生成修复文件;
S3、服务端监控到APP应用再次启动的时候,推送到手机客户端,通过安装修复文件,保证APP正常使用;
将应用程序的异常问题通过系统自动扫描错误代码信息,生成保护代码,进行自主修复或者增加异常保护,在应用程序下次启动之前即时推送到应用中进行修复,可以保证APP的正常使用。
本实施例的保护代码是一串可以被目标应用程序运行的程序代码,用于使目标应用程序不运行错误代码,如跳过错误代码,控制错误代码失效等。
S13,根据保护代码生成修复文件。
在本申请实施例的另一个实施方式中,根据错误信息生成目标应用程序的修复文件包括:
S21,解析错误信息,定位错误信息中的错误代码和运行环境信息,其中,错误代码为目标应用程序中触发目标应用程序运行异常的程序代码,运行环境信息用于表征目标应用程序在运行异常时的客户端环境;
在一个示例中,错误信息的错误代码为a2b2c2,目标应用程序在底层运行a2b2c2时,导致了运行异常。此时,客户端除了运行目标应用程序(软件1)之外,还运行了软件2,可以将客户端同时启动了软件1和软件2作为运行环境信息一起上报给服务器,运行环境信息还可以包括客户端的其他运行状态信息和配置信息,如当前电量,当前可用内存,剩余内存,安全软件的黑名单,操作系统当前开启的服务和未开启的服务等。
S22,查找与错误代码和运行环境信息对应的保护代码;
在目标应用程序的错误代码可能对应多个保护代码时,运行环境信息用于确定唯一的保护代码,以使客户端可以根据目标应用程序实际问题进行异常修复,提高修复成功率和修复速度。下面进行举例说明:
在一个示例中,导致软件1运行异常的错误代码a2b2c2,包括三个保护代码(保护代码1,保护代码2,保护代码3),分别通过控制错误代码a2b2c2的调用函数跳过该错误代码,替换错误代码a2b2c2,删除错误代码a2b2c2,虽然都可以修复异常,但是修复手段不同,修复后目标应用程序的代码也不同。
以客户端的剩余内存为导致运行异常的原因为例,软件1的错误代码a2b2c2用于实时监测和判断客户端的剩余内存,如果小于阈值,则不允许错误代码软件1正常开启,通过生成保护代码1,控制软件1的主程序在运行时不调用a2b2c2,即不判定剩余内存,剩余内存也不会导致软件1运行异常。
以是否调用前置摄像头成功为导致运行异常的原因为例,软件1包括刷脸支付功能,在使用该支付功能时,必须开启前置摄像头才能正常使用,否则直接闪退,而客户端并没有前置摄像头,只有后置摄像头,在这种情况下,可以生成保护代码2,将错误代码a2b2c2的逻辑替换为在使用该支付功能时调用后置摄像头。
以当前是否开启定位服务为导致运行异常的原因为例,软件1包括定位功能,在启动软件1时,客户端当前必须已经开启定位服务才能正常启动,否则不允许启动,而在客户端没有内置GPS模块或者GPS模块故障的情况下,可以生成保护代码3,将是否开启定位服务的初始条件删除。
S23,根据保护代码生成修复文件。
步骤S206,检测到目标应用程序在线时,向客户端推送修复文件,以使客户端使用修复文件修复目标应用程序;
在本申请实施例中,软件在线包括前台在线和后台在线等。向客户端推送修复文件的条件,可以但不限于为:检测到目标应用程序的主程序启动时,向客户端推送修复文件;检测到目标应用程序的后台线程启动时,向客户端推送修复文件。
在另一示例中,也可以在目标应用程序不在线时,通过系统服务向客户端推送修复文件,客户端将修复文件保存在本地存储介质,客户端在启动目标应用程序,客户端在本地读取修复文件执行修复操作。
在本申请实施例中,在根据错误信息生成目标应用程序的修复文件之后,还包括:确定安装目标应用程序的客户端集合;向客户端集合推送修复文件。可以提前预防目标应用程序的运行异常。
通过上述步骤,接收客户端响应目标应用程序运行异常上报的错误信息,然后根据错误信息生成目标应用程序的修复文件,检测到目标应用程序在线时,向客户端推送修复文件,以使客户端使用修复文件修复目标应用程序,解决了相关技术中只能通过软件更新才能修复应用程序故障的技术问题,解决了相关技术中修复应用程序故障效率低的技术问题,提高了应用程序的修复速度,提高了修复效率,提升了用户体验。
在本实施例中提供了另一种应用程序的修复方法,在客户端侧对本实施例的方案进行说明,图4是根据本发明实施例的另一种应用程序的修复方法流程图,如图4所示,该流程包括如下步骤:
步骤S402,检测到目标应用程序运行异常,向服务器上报错误信息;
步骤S404,检测到目标应用程序在线时,接收服务器基于错误信息反馈的修复文件;
在本申请实施例中,软件在线包括前台在线和后台在线等。检测到目标应用程序在线时,接收服务器基于错误信息反馈的修复文件,可以但不限于为:
检测到目标应用程序的主程序启动时,接收服务器基于错误信息反馈的修复文件;通过检测用户点击目标应用程序的图标,或者监控到目标应用程序的开启指令,可以确定目标应用程序的主程序启动;
检测到目标应用程序的后台线程启动时,接收服务器基于错误信息反馈的修复文件。为了保证可以即时接收到服务器的推送消息等,某些目标应用程序会在后台开启线程,或者在目标应用程序退到后台运行时,会在后台保留一部分线程,可以通过检测运存中的线程列表来确定目标应用程序是否已经后台在线,进而利用后台的线程服务来接收修复文件。
步骤S406,在使用修复文件修复目标应用程序后,运行目标应用程序。
在本申请实施例中,可以使用多种修复方式来修复目标应用程序,如通过热补丁来修复,热补丁的主要优势是不会使设备当前正在运行的业务中断,即在不重启设备和应用程序的情况下,可以对设备当前软件版本的缺陷进行修复。在使用修复文件修复目标应用程序后,运行目标应用程序,包括:
S31,读取修复文件中的保护代码;保护代码可以是一个补丁文件,或者在修复文件中包括修复指令,客户端的处理器在内存中初始化目标应用程序的程序代码时,通过修复指令控制处理器优先执行保护代码;
S32,在目标应用程序加载到运存后,将保护代码插入目标应用程序的原始代码;
在目标应用程序加载到运存后,将补丁文件从客户端的存储介质加载到内存的补丁区中,同时为补丁文件中的补丁分配一个在此内存补丁区中唯一的单元序号,以使系统认为该补丁文件是合法的。
在本申请实施例中,保护代码还可以包括一个状态标识,用于指示该补丁文件是临时运行还是永久运行,如果是临时运行,则只是本次将保护代码插入目标应用程序的原始代码,如果是永久运行。则需要在每次运行目标应用程序时都插入补丁文件,或者是使用插入补丁文件的程序代码更新原始代码,并通过可执行文件,或可移植可执行的文件格式存储,如exe格式。
S32,运行插入保护代码后的目标应用程序。
图5是本发明实施例客户端和服务端的交互示意图,示意了一个运行APP应用的手机客户端,与服务端进行交互,该服务器可以是业务服务器、维护服务器等。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种应用程序的修复装置,系统,用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
实施例提供了一种应用程序的修复装置,图6本发明实施例的一种应用程序的修复装置的结构框图,应用在服务端,该装置包括:接收模块60,生成模块62,推送模块64,其中,
接收模块60,用于接收客户端响应目标应用程序运行异常上报的错误信息;
生成模块62,用于根据所述错误信息生成所述目标应用程序的修复文件;
推送模块64,用于检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序。
在本申请实施例中,所述生成模块包括:
第一解析单元,用于解析所述错误信息,定位所述错误信息中的错误代码,其中,所述错误代码为所述目标应用程序中触发所述目标应用程序运行异常的程序代码;
第一查找单元,用于查找与所述错误代码对应的保护代码;
第一生成单元,用于根据所述保护代码生成所述修复文件。
在本申请实施例中,所述生成模块包括:
第二解析单元,用于解析所述错误信息,定位所述错误信息中的错误代码和运行环境信息,其中,所述错误代码为所述目标应用程序中触发所述目标应用程序运行异常的程序代码,所述运行环境信息用于表征所述目标应用程序在运行异常时的客户端环境;
第二查找单元,用于查找与所述错误代码和所述运行环境信息对应的保护代码;
第二生成单元,用于根据所述保护代码生成所述修复文件。
实施例提供了另一种应用程序的修复装置,图7本发明实施例的另一种应用程序的修复装置的结构框图,应用在客户端,该装置包括:上报模块70,接收模块72,运行模块74,其中,
上报模块70,用于检测到目标应用程序运行异常,向服务器上报错误信息;
接收模块72,用于检测到所述目标应用程序在线时,接收所述服务器基于所述错误信息反馈的修复文件;
运行模块74,用于在使用所述修复文件修复所述目标应用程序后,运行所述目标应用程序。
在本申请实施例中,所述运行模块包括:
读取单元,用于读取所述修复文件中的保护代码;
插入单元,用于在所述目标应用程序加载到运存后,将所述保护代码插入所述目标应用程序的原始代码;
运行单元,用于运行插入所述保护代码后的所述目标应用程序。
实施例提供了一种应用程序的修复系统,图8本发明实施例的一种应用程序的修复系统的结构框图,包括服务器80和客户端82(图中示意了两个客户端),其中,
所述服务器80包括:
接收模块,用于接收所述客户端响应目标应用程序运行异常上报的错误信息;
生成模块,用于根据所述错误信息生成所述目标应用程序的修复文件;
推送模块,用于检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序;
所述客户端82包括:
上报模块,用于检测到目标应用程序运行异常,向所述服务器上报错误信息;
接收模块,用于检测到所述目标应用程序在线时,接收所述服务器基于所述错误信息反馈的修复文件;
运行模块,用于在使用所述修复文件修复所述目标应用程序后,运行所述目标应用程序。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例的一个方面中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,接收客户端响应目标应用程序运行异常上报的错误信息;
S2,根据所述错误信息生成所述目标应用程序的修复文件;
S3,检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例的一个方面中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,接收客户端响应目标应用程序运行异常上报的错误信息;
S2,根据所述错误信息生成所述目标应用程序的修复文件;
S3,检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种应用程序的修复方法,其特征在于,包括:
接收客户端响应目标应用程序运行异常上报的错误信息;
根据所述错误信息生成所述目标应用程序的修复文件;
检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序。
2.根据权利要求1所述的方法,其特征在于,根据所述错误信息生成所述目标应用程序的修复文件包括:
解析所述错误信息,定位所述错误信息中的错误代码,其中,所述错误代码为所述目标应用程序中触发所述目标应用程序运行异常的程序代码;
查找与所述错误代码对应的保护代码;
根据所述保护代码生成所述修复文件。
3.根据权利要求1所述的方法,其特征在于,根据所述错误信息生成所述目标应用程序的修复文件包括:
解析所述错误信息,定位所述错误信息中的错误代码和运行环境信息,其中,所述错误代码为所述目标应用程序中触发所述目标应用程序运行异常的程序代码,所述运行环境信息用于表征所述目标应用程序在运行异常时的客户端环境;
查找与所述错误代码和所述运行环境信息对应的保护代码;
根据所述保护代码生成所述修复文件。
4.一种应用程序的修复方法,其特征在于,包括:
检测到目标应用程序运行异常,向服务器上报错误信息;
检测到所述目标应用程序在线时,接收所述服务器基于所述错误信息反馈的修复文件;
在使用所述修复文件修复所述目标应用程序后,运行所述目标应用程序。
5.根据权利要求3所述的方法,其特征在于,在使用所述修复文件修复所述目标应用程序后,运行所述目标应用程序,包括:
读取所述修复文件中的保护代码;
在所述目标应用程序加载到运存后,将所述保护代码插入所述目标应用程序的原始代码;
运行插入所述保护代码后的所述目标应用程序。
6.一种应用程序的修复装置,其特征在于,包括:
接收模块,用于接收客户端响应目标应用程序运行异常上报的错误信息;
生成模块,用于根据所述错误信息生成所述目标应用程序的修复文件;
推送模块,用于检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序。
7.一种应用程序的修复装置,其特征在于,包括:
上报模块,用于检测到目标应用程序运行异常,向服务器上报错误信息;
接收模块,用于检测到所述目标应用程序在线时,接收所述服务器基于所述错误信息反馈的修复文件;
运行模块,用于在使用所述修复文件修复所述目标应用程序后,运行所述目标应用程序。
8.一种应用程序的修复系统,其特征在于,包括客户端和服务器,其中,
所述服务器包括:
接收模块,用于接收所述客户端响应目标应用程序运行异常上报的错误信息;
生成模块,用于根据所述错误信息生成所述目标应用程序的修复文件;
推送模块,用于检测到所述目标应用程序在线时,向所述客户端推送所述修复文件,以使所述客户端使用所述修复文件修复所述目标应用程序;
所述客户端包括:
上报模块,用于检测到目标应用程序运行异常,向所述服务器上报错误信息;
接收模块,用于检测到所述目标应用程序在线时,接收所述服务器基于所述错误信息反馈的修复文件;
运行模块,用于在使用所述修复文件修复所述目标应用程序后,运行所述目标应用程序。
9.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1至5任一项中所述的方法。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至5任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911040240.3A CN111026581A (zh) | 2019-10-29 | 2019-10-29 | 应用程序的修复方法及装置、系统、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911040240.3A CN111026581A (zh) | 2019-10-29 | 2019-10-29 | 应用程序的修复方法及装置、系统、存储介质、电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111026581A true CN111026581A (zh) | 2020-04-17 |
Family
ID=70204699
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911040240.3A Pending CN111026581A (zh) | 2019-10-29 | 2019-10-29 | 应用程序的修复方法及装置、系统、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111026581A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930550A (zh) * | 2020-08-18 | 2020-11-13 | 政采云有限公司 | 一种客户端修复方法、装置、设备及介质 |
CN112783540A (zh) * | 2020-12-31 | 2021-05-11 | 北京百度网讯科技有限公司 | 更新应用程序中业务数据的方法及装置、电子设备和介质 |
CN113961380A (zh) * | 2020-07-20 | 2022-01-21 | 腾讯科技(深圳)有限公司 | 一种跨应用修复的方法、装置、设备及存储介质 |
WO2022062612A1 (en) * | 2020-09-24 | 2022-03-31 | International Business Machines Corporation | Determining diagnostic information utilizing program code |
CN115080114A (zh) * | 2022-08-23 | 2022-09-20 | 中科方德软件有限公司 | 应用程序的移植处理方法、装置和介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530199A (zh) * | 2012-07-02 | 2014-01-22 | 腾讯科技(深圳)有限公司 | 一种修复软件运行错误的方法、装置及系统 |
CN106790895A (zh) * | 2015-11-25 | 2017-05-31 | 北京搜狗科技发展有限公司 | 一种故障处理方法和装置 |
CN106843933A (zh) * | 2016-12-27 | 2017-06-13 | 北京五八信息技术有限公司 | 一种应用程序的漏洞修复方法、移动终端及补丁服务器 |
CN107632901A (zh) * | 2017-09-25 | 2018-01-26 | 青岛海信移动通信技术股份有限公司 | 一种应用程序运行异常的自修复方法及装置 |
-
2019
- 2019-10-29 CN CN201911040240.3A patent/CN111026581A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103530199A (zh) * | 2012-07-02 | 2014-01-22 | 腾讯科技(深圳)有限公司 | 一种修复软件运行错误的方法、装置及系统 |
CN106790895A (zh) * | 2015-11-25 | 2017-05-31 | 北京搜狗科技发展有限公司 | 一种故障处理方法和装置 |
CN106843933A (zh) * | 2016-12-27 | 2017-06-13 | 北京五八信息技术有限公司 | 一种应用程序的漏洞修复方法、移动终端及补丁服务器 |
CN107632901A (zh) * | 2017-09-25 | 2018-01-26 | 青岛海信移动通信技术股份有限公司 | 一种应用程序运行异常的自修复方法及装置 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113961380A (zh) * | 2020-07-20 | 2022-01-21 | 腾讯科技(深圳)有限公司 | 一种跨应用修复的方法、装置、设备及存储介质 |
CN111930550A (zh) * | 2020-08-18 | 2020-11-13 | 政采云有限公司 | 一种客户端修复方法、装置、设备及介质 |
WO2022062612A1 (en) * | 2020-09-24 | 2022-03-31 | International Business Machines Corporation | Determining diagnostic information utilizing program code |
GB2614665A (en) * | 2020-09-24 | 2023-07-12 | Ibm | Determining diagnostic information utilizing program code |
US11720465B2 (en) | 2020-09-24 | 2023-08-08 | International Business Machines Corporation | Determining diagnostic information utilizing program code |
CN112783540A (zh) * | 2020-12-31 | 2021-05-11 | 北京百度网讯科技有限公司 | 更新应用程序中业务数据的方法及装置、电子设备和介质 |
CN115080114A (zh) * | 2022-08-23 | 2022-09-20 | 中科方德软件有限公司 | 应用程序的移植处理方法、装置和介质 |
CN115080114B (zh) * | 2022-08-23 | 2022-10-28 | 中科方德软件有限公司 | 应用程序的移植处理方法、装置和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111026581A (zh) | 应用程序的修复方法及装置、系统、存储介质、电子装置 | |
CN107704360B (zh) | 监控数据的处理方法、设备、服务器及存储介质 | |
CN110309029B (zh) | 异常数据的采集方法、装置、计算机设备和存储介质 | |
CN103530199A (zh) | 一种修复软件运行错误的方法、装置及系统 | |
CN106201811B (zh) | 应用程序的故障恢复方法和终端 | |
CN110943862B (zh) | 互斥业务判断方法、装置、电子设备及存储介质 | |
WO2018019242A1 (zh) | 网站服务器的自恢复方法和自恢复系统 | |
CN105512015A (zh) | 一种安卓目标应用崩溃统计方法和装置 | |
CN111625841B (zh) | 一种病毒处理方法、装置及设备 | |
CN113312064A (zh) | 物理机的安装配置方法、装置以及计算机可读介质 | |
CN105981332A (zh) | 使用喷泉码广播管理信息 | |
CN111078471A (zh) | 显示设备的系统故障恢复方法、设备及计算机存储介质 | |
CN107526584B (zh) | 数据接入方法和装置 | |
CN113985852B (zh) | 车载终端日志处理方法、装置及系统 | |
CN111104137A (zh) | 一种ota设备的升级方法及装置 | |
CN117056115B (zh) | 应用程序的修复方法和装置、存储介质及电子设备 | |
CN110362416A (zh) | 页面组件加载方法及装置、电子设备、存储介质 | |
CN111813627A (zh) | 应用审计方法、装置、终端、系统及可读存储介质 | |
CN111522571A (zh) | 设备升级方法、装置、终端设备及存储介质 | |
JP2006113754A (ja) | ソフトウェア更新装置及び方法 | |
CN109672573B (zh) | 一种配置文件的部署方法、确定方法、服务器及存储介质 | |
CN113434171A (zh) | 资源包的更新方法和装置、存储介质及电子装置 | |
CN112328267A (zh) | 一种多台服务器安装方法、装置、终端及存储介质 | |
CN111562925A (zh) | 一种云端应用的更新方法、服务器、存储介质及设备 | |
CN105511848A (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 |