一种应用程序的修复方法和装置的制造方法

文档序号:8543512阅读:187来源:国知局
一种应用程序的修复方法和装置的制造方法
【技术领域】
[0001]本发明实施例涉及计算机技术,尤其涉及一种应用程序的修复方法和装置。
【背景技术】
[0002]1S系统是由美国苹果公司推出的当下最流行的移动操作系统,基于1S系统开发的1S端应用程序数量已逾百万,产品间竞争激烈,用户对产品的要求也不断提高。尤其是用户量较大的应用程序,产品质量对应用开发者是很大的挑战。
[0003]现有1S端应用程序在遇到较为严重,或急需修复的问题时,通常需要将应用程序进行修改后,重新打包提交给苹果公司的应用商店(App Store)审核、再更新,或者部分应用程序可通过服务端控制停止存在问题的功能。由于审核时间通常无法控制,所以带有问题的应用程序或者停用某些功能的应用程序都会影响用户使用,且带来较大损失。
[0004]现有解决方式存在下述多种缺陷:
[0005](I)局限性,无法依赖服务端解决应用程序的所有问题,问题的存在可能带来严重的损失;
[0006](2)时效性差,由于应用商店的审核时间无法预估,重新提交审核往往无法及时解决应用程序的线上问题;
[0007](3)影响用户体验,由于线上问题的存在,导致用户无法正常使用应用程序客户端的功能;
[0008](4)增加开发量,对线上问题的修复会增加开发人员工作量。

【发明内容】

[0009]本发明实施例提供一种应用程序的修复方法和装置,以实现应用程序问题能够及时、便捷的修复。
[0010]第一方面,本发明实施例提供了一种应用程序的修复方法,包括:
[0011]接收服务端下发的脚本插件的配置信息;
[0012]根据所述配置信息获取对应的有效脚本插件;
[0013]在运行应用程序的过程中,启动所述有效脚本插件以修复所述应用程序。
[0014]第二方面,本发明实施例还提供了一种应用程序的修复装置,包括:
[0015]配置接收模块,用于接收服务端下发的脚本插件的配置信息;
[0016]脚本获取模块,用于根据所述配置信息获取对应的有效脚本插件;
[0017]程序修复模块,用于在运行应用程序的过程中,启动所述有效脚本插件以修复所述应用程序。
[0018]本发明实施例提供的应用程序的修复方法和装置,针对客户端应用程序中的问题,由服务端向客户端下发用于修复问题的脚本插件的配置信息,客户端根据配置信息能够自动获取、启动、执行对应脚本插件,从而在不影响用户使用的情况下修复问题。
【附图说明】
[0019]图1为本发明实施例一提供的一种应用程序的修复方法的流程图;
[0020]图2为本发明实施例二提供的一种应用程序的修复方法的流程图;
[0021]图3为本发明实施例三提供的一种应用程序的修复方法的流程图;
[0022]图4是本发明实施例四提供的一种应用程序的修复方法的流程图;
[0023]图5是本发明实施例五提供的一种应用程序的修复装置的结构示意图。
【具体实施方式】
[0024]下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0025]实施例一
[0026]图1为本发明实施例一提供的一种应用程序的修复方法的流程图,本实施例可适用于对已安装运行的应用程序进行动态修复的场景,具体是由服务端控制用户终端上运行的客户端应用程序,进行动态修改。该方法由应用程序的修复装置来执行,该装置可以采用软件的形式实现,配置在客户端所在用户终端上。如图1所示,该方法包括:
[0027]S110、接收服务端下发的脚本插件的配置信息;
[0028]脚本插件是用于修复客户端应用程序中问题的,一般在程序开发者发现应用程序存在问题时,就会开发用于修复的脚本插件,或者在已有的脚本插件中进行更新。服务端在需要修复问题时,先向客户端下发脚本插件的配置信息,可以是主动向客户端下发配置信息,以提示有脚本插件的更新,也可以是应客户端发起的更新请求下发配置信息。配置信息中包括了脚本插件的基本信息,例如至少包括脚本插件的版本号,还可以进一步包括下载地址和验证信息等。每次更新的脚本插件可以为一个或多个,因此一次下发的配置信息可包括一个或多个版本号。服务端可以根据客户端的版本,向其下发相应的脚本插件的版本号。
[0029]S120、根据所述配置信息获取对应的有效脚本插件;
[0030]客户端在接收到配置信息之后可获知待更新的是哪个脚本插件,据此获取对应的有效脚本插件。具体可以从服务端下载,或者在本地查找是否已存在。即S120的操作具体可以为:从所述配置信息中获取所述脚本插件的版本号;如果在本地查询到存储有所述版本号对应的脚本插件,则作为有效脚本插件;如果在本地未查询到存储有所述版本号对应的脚本插件,则从所述服务端下载对应的有效脚本插件。
[0031]在客户端可以存储多个脚本插件,并根据服务端的配置信息确定当前哪个脚本插件有效,从而启动有效脚本插件进行问题修复。这样可以避免客户端重复下载脚本插件,也使得服务端可以根据需要,利用客户端的已有脚本插件进行问题修改,方式更为灵活。服务端还可以配置使得客户端侧的已有脚本插件和新下发的脚本插件同时生效,这样可以减少新脚本插件的大小,节省传输所消耗的流量。
[0032]S130、在运行应用程序的过程中,启动所述有效脚本插件以修复所述应用程序。
[0033]脚本插件是能够动态修复应用程序中问题的一种补丁文件,其能够在应用程序所支持的程序环境中运行,并且在不更改应用程序原有代码的情况下动态修复应用程序运行中的问题。
[0034]S130的操作优选可以是通过如下方式进行应用程序的修复:
[0035]在运行应用程序的过程中,启动所述有效脚本插件以监听所述应用程序的函数入栈操作;
[0036]在监听到所述有效脚本插件中设置的目标函数的入栈请求时,以所述有效脚本插件中的替换函数,代替所述目标函数执行入栈操作,以运行所述替换函数来修复所述应用程序。
[0037]在脚本插件中确定有要替换的目标函数,可以是该目标函数的函数名称,并且脚本插件中提供了代替目标函数执行的替换函数。目标函数通常就是有问题的函数,以替换函数代替其执行,能够修复应用程序中存在的问题。或者,也可以是采用此方式丰富应用程序的功能。
[0038]上述应用程序的修复方式,尤为适用于应用程序是基于1S系统开发的封闭代码程序的情况。当应用程序存在问题时,开发者可通过脚本插件的形式,在不改变原应用程序的情况下修复问题,因此无需经过1S系统应用商店的审核。脚本插件所采用的编程语言,是应用程序能够支持其运行环境,且能够替代其函数运行的语言,优选的,所述脚本插件的编程语言为Lua语言。Lua语言是一种轻量语言,体积小、启动速度快,可以很方便的嵌入别的应用程序中运行,并且拥有很好的扩展性,可以方便的使用宿主语言提供的功能,就像使用内置功能一样。在Lua语言的脚本插件下载到客户端后,运行客户端应用程序时,客户端将自动启动Lua引擎,使执行环境生效,脚本插件的代码生效,达到修复客户端应用程序问题的目的。
[0039]采用本发明实施例提供的技术方案,针对客户端应用程序中的问题,由服务端向客户端下发用于修复问题的脚本插件的配置信息,客户端根据配置信息能够自动获取、启动、执行对应脚本插件,从而在不影响用户使用的情况下修复问题。
[0040]客户端还可以进一步上报运行日志,例如在脚本插件下载成功后,或运行脚本插件成功后,上报运行日志给服务端,以便开发者能够了解脚本插件的请求、下载、执行等全过程,便于统计,进行问题定位及脚本插件的代码优化。
[0041]在上述技术方案的基础上,优选是基于配置信息对脚本插件进行有效性验证,以提高问题修复的可靠性。有效性验证可以从多方面进行,优选是通过脚本插件的版本号和验证信息来实现。
[0042]实施例二
[0043]图2为本发明实施例二提供的一种应用程序的修复方法的流程图,本实施例以上述实施例为基础,且具体是优化了根据所述配置信息获取对应的有效脚本插件的操作。本实施例的方法包括:
[0044]S210、接收服务端下发的脚本插件的配置信息;
[0045]S220、从所述配置信息中获取脚本插件的第一版本号;
[0046]S230、获取本地当前采用的有效脚本插件的第二版本号;
[0047]S240、比对所述第一版本号和第二版本号,验证所述第一版本号的有效性;
[0048]S250、如果所述第一版本号有效,则获取对应的有效脚本插件;
[0049]S260、在运行应用程序的过程中,启动所述有效脚本插件以修复所述应用程序。
[0050]上述方案中,第一版本号是服务端配置的需要生效使用的脚本插件的版本号,客户端本地的第二版本号是客户端已生效正在使用的脚本插件的版本号。可以通过比较两个版本号的方式来验证当前配置的脚本插件的有效性。例如,当第一版本号的排序高于第二版本号,则确定第一版本号有效。否则,客户端实际上已更新至较新的版本,无需再进行脚本插件的更新。
[0051]实施例三
[0052]图3为本发明实施例三提供的一种应用程序的修复方法的流程图,本实施例以上述实施例为基础,且具体是优化了通过下载方式获取有效脚本插件的方案。本实施例的方法包括:
[0053]S310、接收服务端下发的脚本插件的配置信息;
[0054]S320、根据所述配置信息下载对应的有效脚本插件;
[0055]S330、从所述配置信息中获取所述脚本插件的第一摘要算法值;
[0056]S340、计算下载完成的所述脚本插件的第二摘要算法值;
[0057]S350、比对所述第一摘要算法值和第二摘要算法值,以验证下载的所述脚本插件的有效性,如果有效,则执行S360,如果无效,则重复执行S320,或者结束本次操作,提示出现异常;
[0058]S360、在运行应用程序的过程中,启动所述有效脚本插件以修复所述应用程序。
[0059]上述方案中,可以采用MD5的摘要算法,第一摘要算法值是服务端对完整的脚本插件进行计算获取的摘要算法值,作为验证信息;第二摘要算法值是客户端在将脚本插件下载完成后计算获取的摘要算法值,若脚本插件下载完整且正确,则两个摘要算法值相同,下载的脚本插件有效。基于摘要算法对脚本插件进行验证,可以保证下载的完整性。
[0060]实施例四
[0061]图4为本发明实施例四提供的一种应用程序的修复方法的流程
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1