CN106339273A - 一种应用程序修复方法、终端及服务器 - Google Patents

一种应用程序修复方法、终端及服务器 Download PDF

Info

Publication number
CN106339273A
CN106339273A CN201510412416.9A CN201510412416A CN106339273A CN 106339273 A CN106339273 A CN 106339273A CN 201510412416 A CN201510412416 A CN 201510412416A CN 106339273 A CN106339273 A CN 106339273A
Authority
CN
China
Prior art keywords
instruction
terminal
application program
server
daily record
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
Application number
CN201510412416.9A
Other languages
English (en)
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 CN201510412416.9A priority Critical patent/CN106339273A/zh
Publication of CN106339273A publication Critical patent/CN106339273A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Transfer Between Computers (AREA)

Abstract

本申请实施例涉及通信领域,尤其涉及一种应用程序修复方法、终端及服务器,用于减少应用程序运行中出现异常情况时必须重装的现象。本申请实施例中,终端获取包含有应用程序执行异常的信息的日志,向服务器发送该日志,终端接收服务器根据该日志发送的修复指令并执行。如此,终端可在应用程序执行异常时,不需要重装该应用程序,仅通过向服务器发送包含有应用程序执行异常的信息的日志,从而执行所获取的修复指令对执行异常进行修复即可,实现了该应用程序在线修复的功能。

Description

一种应用程序修复方法、终端及服务器
技术领域
本申请实施例涉及通信领域,尤其涉及一种应用程序修复方法、终端及服务器。
背景技术
随着计算机与电子信息技术的发展,智能电子产品越来越流行,例如智能手机。当应用程序的开发者发布一个应用程序后,用户可将该应用程序安装在用户的终端上,如用户的智能手机、平板电脑上等。
一个应用程序在开发测试时即使做得再充分,也总有一些遗漏的场景,该遗漏的场景可能会导致该应用程序在终端上运行出错。现有技术中,当应用程序运行过程中出现异常情况时,只能通过重新安装该应用程序的方式进行恢复。且后期用户只能通过论坛或程序的反馈模块向开发者反馈该应用程序出现的该种异常情况。
综上所述,亟需一种应用程序修复方法、终端及服务器,用于实现在线修复过程,减少应用程序运行中出现异常情况时必须重装的现象。
发明内容
本申请实施例提供一种应用程序修复方法、终端及服务器,用于实现在线修复过程,减少应用程序运行中出现异常情况时必须重装的现象。
本申请实施例提供一种应用程序修复方法,包括以下步骤:
终端获取包含有应用程序执行异常的信息的日志;
该终端向服务器发送该日志;
该终端接收该服务器根据该日志发送的修复指令;
该终端执行该修复指令。
较佳的,该终端获取包含有应用程序执行异常的信息的日志,包括:
该终端通过HOOK函数捕获应用程序出现的异常事件,根据捕获的异常事件生成该日志;或者
该终端通过自定义函数捕获应用程序出现的异常事件,根据捕获的异常事件生成该日志。
较佳的,该终端向服务器发送该日志,包括:
该终端获取该日志之后立即向服务器发送该日志;或者
该终端在连接到无线局域网后向服务器发送该日志;或者
该终端在向服务器发送数据请求时,将该日志携带于该数据请求发送给服务器。
较佳的,该终端接收该服务器根据该日志发送的修复指令,包括:
该终端向该服务器发送修复指令获取请求,并接收该服务器根据该修复指令获取请求返回的修复指令;或者
该终端接收该服务器根据该日志推送的修复指令,其中,该修复指令是该服务器向该终端推送的,或者该修复指令是该服务器向包含该终端在内的多个安装有该应用程序的终端推送的。
较佳的,该终端执行该修复指令之前,还包括:
该终端对该修复指令进行合法性校验;和/或
该终端根据该修复指令中包含的修复指令的执行条件,判断是否满足该执行条件。
较佳的,该终端执行该修复指令,包括:
该终端接收到该修复指令之后立即执行该修复指令;或者
该终端接收到该修复指令之后进行缓存,并在启动该应用程序时执行缓存的该修复指令;或者
该终端在***空闲时执行该修复指令。
较佳的,该终端向服务器发送该日志之后、接收该服务器根据该日志发送的修复指令之前,还包括:
该终端接收所述服务器发送的数据上传指令;
该终端根据该数据上传指令向该服务器上传该应用程序所使用的所有数据。
较佳的,该修复指令为一条指令或多条指令的组合;
该一条指令用于指示以下操作中的一种:
重启该应用程序、下载并安装该应用程序的更新版本、增加该应用程序所使用的数据、修改该应用程序所使用的数据、删除该应用程序所使用的数据、清除该应用程序所使用的所有数据。
较佳的,该日志中包含该终端的标识信息。
本申请实施例提供一种应用程序修复方法,包括以下步骤:
服务器接收终端发送的包含有应用程序执行异常的信息的日志;
该服务器根据该日志向该终端发送修复指令,该修复指令用于修复该应用程序。
较佳的,该服务器根据该日志向该终端发送修复指令,包括:
该服务器接收该终端发送的修复指令获取请求,并根据该修复指令获取请求向该终端返回修复指令;或者
该服务器向该终端推送修复指令;或者
该服务器向包含该终端在内的多个安装有该应用程序的终端推送修复指令。
较佳的,该服务器接收该终端发送的该日志之后、向该终端发送修复指令之前,还包括:
该服务器向该终端发送数据上传指令,该数据上传指令用于指示该终端向该服务器上传该应用程序所使用的所有数据的指令;
该服务器接收该终端根据该数据上传指令上传的该应用程序所使用的所有数据。
较佳的,该修复指令中包含修复指令的执行条件。
较佳的,该修复指令为一条指令或多条指令的组合;
该一条指令用于指示以下操作中的一种:
重启该应用程序、下载并安装该应用程序的更新版本、增加该应用程序所使用的数据、修改该应用程序所使用的数据、删除该应用程序所使用的数据、清除该应用程序所使用的所有数据。
较佳的,该日志中包含该终端的标识信息;
该服务器根据该日志向该终端发送修复指令,包括:
该服务器根据该日志中包含的该终端的标识信息向该终端的标识信息对应的该终端推送修复指令。
本申请提供一种终端,包括:
获取单元,用于获取包含有应用程序执行异常的信息的日志;
发送单元,用于向服务器发送该日志;
接收单元,用于接收该服务器根据该日志发送的修复指令;
处理单元,用于执行该修复指令。
较佳的,该获取单元,具体用于:
通过HOOK函数捕获应用程序出现的异常事件,根据捕获的异常事件生成该日志;或者
通过自定义函数捕获应用程序出现的异常事件,根据捕获的异常事件生成该日志。
较佳的,该发送单元,具体用于:
获取该日志之后立即向服务器发送该日志;或者
在连接到无线局域网后向服务器发送该日志;或者
在向服务器发送数据请求时,将该日志携带于该数据请求发送给服务器。
较佳的,该发送单元,还用于向该服务器发送修复指令获取请求,并通过接收单元接收该服务器根据该修复指令获取请求返回的修复指令;或者
该接收单元,还用于接收该服务器根据该日志推送的修复指令,其中,该修复指令是该服务器向该终端推送的,或者该修复指令是该服务器向包含该终端在内的多个安装有该应用程序的终端推送的。
较佳的,该处理单元,还用于:
对该修复指令进行合法性校验;和/或
根据该修复指令中包含的修复指令的执行条件,判断是否满足该执行条件。
较佳的,该处理单元,具体用于:
接收到该修复指令之后立即执行该修复指令;或者
接收到该修复指令之后进行缓存,并在启动该应用程序时执行缓存的该修复指令;或者
在***空闲时执行该修复指令。
较佳的,该接收单元,还用于:
接收所述服务器发送的数据上传指令;
该发送单元,还用于:
根据该数据上传指令向该服务器上传该应用程序所使用的所有数据。
较佳的,该修复指令为一条指令或多条指令的组合;
该一条指令用于指示以下操作中的一种:
重启该应用程序、下载并安装该应用程序的更新版本、增加该应用程序所使用的数据、修改该应用程序所使用的数据、删除该应用程序所使用的数据、清除该应用程序所使用的所有数据。
较佳的,该日志中包含该终端的标识信息。
本申请提供一种服务器,包括:
接收单元,用于接收终端发送的包含有应用程序执行异常的信息的日志;
发送单元,用于该服务器根据该日志向该终端发送修复指令,该修复指令用于修复该应用程序。
较佳的,该接收单元,还用于接收该终端发送的修复指令获取请求,并根据该修复指令获取请求通过发送单元向该终端返回修复指令;或者
该发送单元,还用于向该终端推送修复指令;或者
该发送单元,还用于向包含该终端在内的多个安装有该应用程序的终端推送修复指令。
较佳的,该发送单元,还用于:
向该终端发送数据上传指令,该数据上传指令用于指示该终端向该服务器上传该应用程序所使用的所有数据的指令;
该接收单元,还用于:
接收该终端根据该数据上传指令上传的该应用程序所使用的所有数据。
较佳的,该修复指令中包含修复指令的执行条件。
较佳的,该修复指令为一条指令或多条指令的组合;
该一条指令用于指示以下操作中的一种:
重启该应用程序、下载并安装该应用程序的更新版本、增加该应用程序所使用的数据、修改该应用程序所使用的数据、删除该应用程序所使用的数据、清除该应用程序所使用的所有数据。
较佳的,该日志中包含该终端的标识信息;
该服务器根据该日志向该终端发送修复指令,包括:
该服务器根据该日志中包含的该终端的标识信息向该终端的标识信息对应的该终端推送修复指令。
本申请实施例中,终端获取包含有应用程序执行异常的信息的日志,向服务器发送该日志,终端接收服务器根据该日志发送的修复指令并执行。如此,终端可在应用程序执行异常时,不需要重装该应用程序,仅通过向服务器发送包含有应用程序执行异常的信息的日志,从而执行所获取的修复指令对执行异常进行修复即可,实现了该应用程序在线修复的功能,减小应用程序运行中出现执行异常时必须重装的现象。进一步,由于终端获取包含有应用程序执行异常的信息的日志,并向服务器发送日志,从而实现了服务器可自动收集应用程序执行异常的信息的日志的功能,从而可使开发者进一步完善应用程序。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例适用的一种应用程序修复***的架构示意图;
图2为本申请实施例提供的一种应用程序修复方法流程示意图;
图3为本申请实施例提供的另一种应用程序修复方法流程示意图;
图4为本申请实施例提供的一种终端的结构示意图;
图5为本申请实施例提供的一种服务器的结构示意图。
具体实施方式
为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1示例性示出了本申请实施例适用的一种应用程序修复***的架构示意图。如图1所示,包括终端101以及服务器102。终端101与服务器102可通过通信网络进行通信。所述通信网络可以是互联网或无线通信网络,比如全球移动通信***(global system for mobile communication,简称GSM)网络、长期演进(Long Term Evolution,简称LTE)网络等,在此不再一一列举。
服务器102为网络侧服务器。优选地,该服务器可为应用在云OS平台上的云端服务器。服务器102一方面可存储多个不同的应用程序的修复指令,另一方面,服务器102接收到终端发送的日志之后,可根据日志等数据构造修复指令。
终端101可为一个或多个,终端101通过安装在终端101上的某个应用程序与服务器102连接。终端101可为手机、个人计算机(personal computer,简称PC)、平板电脑、智能终端等,所述智能终端可以是智能家居设备等。
一方面,本申请实施例中,终端获取包含有应用程序执行异常的信息的日志,向服务器发送该日志,终端接收服务器根据该日志发送的修复指令并执行,从而实现了该应用程序在线修复的功能。
另一方面,本申请实施例中的服务器可自动收集应用程序执行异常的信息的日志,在具体实施中,开发者针对某些可预测到的该应用程序的执行异常的信息构造了相应的修复指令,并将该修复指令存储于服务器中。但是,总有开发者不可能预测到该应用程序的运行场景,由于开发者可访问到服务器,因此开发者可针对服务器所收集的未能预测到的应用程序执行异常制定解决方案,构造修复指令,并存储于服务器中,进而通过服务器发送给终端,以便完成终端上该应用程序的修复,从而进一步完善该应用程序。
基于上述内容及图1所示的***架构,图2示例性示出本申请实施例提供的一种应用程序修复方法流程示意图。该流程可在终端实现。参见图2,本申请实施例提供的一种应用程序修复方法,包括以下步骤:
步骤201,终端获取包含有应用程序执行异常的信息的日志;
步骤202,该终端向服务器发送该日志;
步骤203,该终端接收该服务器根据该日志发送的修复指令;
步骤204,该终端执行该修复指令。
终端可在应用程序执行异常时,不需要重装该应用程序,仅通过向服务器发送包含有应用程序执行异常的信息的日志,从而执行所获取的修复指令对执行异常进行修复即可,实现了该应用程序在线修复的功能,减小应用程序运行中出现执行异常时必须重装的现象。
应用程序执行异常通常有两种方式:应用程序崩溃和错误效果展示。
针对应用程序崩溃则可通过本申请实施例所提供的方法使终端获取包含有应用程序执行异常的信息的日志并上传给服务器,进而通过获取到的修复指令进行修复。在步骤201中,终端可通过以下两种方式获取包含有应用程序执行异常的信息的日志。
第一种方式,针对开发者可预测到的应用程序执行异常,终端通过HOOK函数捕获应用程序出现的异常事件,根据捕获的异常事件生成该日志。具体来说,HOOK函数是Windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在***级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。本申请实施中,应用程序崩溃时异常事件的捕获可通过在线程中注册钩子函数的形式,当出现崩溃(crash)时,此钩子指向的程序被调用。具体的程序语言为:
第二种方式,针对开发者未能预测到的应用程序执行异常,可通过自定义函数捕获应用程序出现的异常事件,根据捕获的异常事件生成该日志。
具体来说,java的线程(thread)中有一个UncaughtExceptionHandler接口,当程序因为未能预测到的异常事件而导致运行终止时,通过此handler调用处理程序。所以只要在此埋下一个钩子即可在应用程序执行异常而导致运行终止时获得通知。代码片断如下:
而针对错误效果展示,如应用程序预期向用户展示的是A内容,但却展示为B内容,此时用户可通过论坛反馈该错误效果展示的问题,另一方面,开发者也可通过自己的终端设备发现该错误效果展示的问题,之后开发者根据获取的错误效果展示的问题构造相应的修复指令,并通过服务器向安装有该应用程序的其它终端进行推送,以便解决该应用程序所出现的效果展示问题。
上述步骤202中,该终端可通过多种方式向服务器发送该日志,优选地有以下几种发送方式。
方式一,终端获取该日志之后立即向服务器发送该日志。如此,可使终端尽快将应用程序执行异常的情况上报给服务器,从而更快获取修复指令,以便尽快修复该应用程序。
方式二,该终端在连接到无线局域网后向服务器发送该日志。如此,则可为用户节省流量,尤其在需发送的数据较多的情况下,节省流量的效果更加明显。
方式三,该终端在向服务器发送数据请求时,将该日志携带于该数据请求发送给服务器。例如,可终端可将日志携带于超文本传输协议(HyperTextTransfer Protocol,简称HTTP)数据请求中,当发送HTTP数据请求时,即将日志也发送给了服务器,如此,则可减少信令的传输,降低信令的复杂度。
方式四,终端对该日志进行压缩,向服务器发送压缩后的日志。如此,可减少终端与服务器之间传输的数据量,降低流量消耗。
方式五,终端对该日志进行加密,向服务器发送加密后的日志。如此,则可提高数据传输的安全性。
方式六,终端对该日志进行压缩、加密,向服务器发送压缩并且加密后的日志。如此,则可提高数据传输的安全性,且减少终端与服务器之间传输的数据量,降低流量消耗。
本申请实施例中,服务器可根据终端上报的应用程序执行异常的信息的日志构造修复指令,某些情况下,仅通过这些日志还无法分析出出现问题的原因,无法构造修复指令,此时则在终端向服务器发送该日志之后、接收该服务器根据该日志发送的修复指令之前,终端接收所述服务器发送的数据上传指令,终端根据该数据上传指令向该服务器上传该应用程序所使用的所有数据。如此,可通过终端上传的应用程序执行异常的信息的日志,以及终端向该服务器上传该应用程序所使用的所有数据构造修复指令。
应用程序存储数据所使用的数据库包括database和sharedpreference,此时要求终端打包并上传数据库database和数据库sharedpreference中该应用程序所使用的所有数据,优选地可在终端连接无线局域网时才上传数据,如在终端连接无线高保真(wireless fidelity,WI-FI)时才上传数据,以便为用户节省通信流量。具体指令如下:
“cmd”:”package_data”,
“condition”:”network_type=wifi”
上述步骤203中,优选地,终端可通过以下几种方式接收该服务器根据该日志发送的修复指令。
第一方式,终端向该服务器发送修复指令获取请求,并接收该服务器根据该修复指令获取请求返回的修复指令。具体来说,终端可在该应用程序重启时,或者在终端连接在无线局域网时,终端主动向服务器发送修复指令获取请求,以便于终端主动获取修复指令,服务器接收该终端发送的修复指令获取请求,服务器根据该修复指令获取请求向该终端返回修复指令。优选地,修复指令获取请求可为HTTP请求。如此,终端可自己选择获取修复指令的时机,更具有主动性,且也减少数据流量消耗。
第二方式,该终端接收该服务器根据该日志推送的修复指令,该修复指令是该服务器向包含该终端在内的多个安装有该应用程序的终端推送的。具体来说,当该应用程序在一个终端上发生了执行异常的情况,则该应用程序可能在其它终端上也存在类似的情况,可能由于某种原因未能及时发送日志,因此当服务器接收到某一个或某几个终端发送的该应用程序的执行异常的信息的日志时,服务器可向包含该终端在内的多个安装有该应用程序的终端推送修复指令,进一步完善了该应用程序。服务器向所有终端推送修复指令的方式在现有的终端中有很多服务可以支持,例如极光推送、云OS***中的***推送服务云应用程序消息通知服务(Cloud Application Message Notify Service,简称CMNS)。
第三方式,该终端接收该服务器根据该日志推送的修复指令,其中,该修复指令是该服务器向该终端推送的。一方面,即服务器主动向终端推送修复指令,无需终端再发送请求来获取修复指令。另一方面,终端可能由于特定的运行环境造成了该终端上该应用程序执行异常的情况,当服务器接收到该包含应用程序执行异常的信息的日志之后,服务器可针对性的向发生执行异常的终端发送修复指令,以避免将该修复指令误发给其它安装有该应用程序的终端。优选地,当终端向服务器上报了该终端的标识信息时,如终端向服务器上报终端设备号、移动设备国际身份码(International Mobile Equipment Identity,简称IMEI)、账号、云OS***中的通用唯一识别码(Universally Unique Identifier,简称UUID)等能唯一标识该终端的标识信息时,服务器可根据该终端的标识信息向该终端的标识信息对应的终端发送修复指令。服务器向该终端推送修复指令的方式在现有的终端中有很多服务可以支持,例如极光推送、云OS***中的***推送服务CMNS。
上述第三方式中,优选地,终端向服务器上报终端的标识信息,具体可有以下几种方式:
第一,日志中包含该终端的标识信息,具体来说,在发送的日志中携带终端的标识信息,之后将携带终端的标识信息的日志发送给服务器;
第二,向服务器发送一条消息,该消息中包括终端的标识信息与日志;
第三,终端将日志发送给服务器之后,再单独通过其它消息向服务器发送终端的标识信息;
第四,终端向服务器发送日志时所使用的载体消息中包括的源地址即可作为该终端的标识信息。
通过上述几种方式向服务器发送了终端的标识信息,一方面该服务器则可根据该日志中包含的该终端的标识信息向该终端的标识信息对应的该终端推送修复指令,如此,服务器则可精确定位应用程序执行异常的终端,从而使服务器针对该终端服务器推送修复指令。另一方面,服务器也可将修复指令中携带终端的标识信息,以使终端接收到修复指令时,对该修复指令中携带的中的终端的标识信息进行合法性校验,当确定修复指令中携带的终端的标识信息与自身的标识信息匹配时,才执行该修复指令,从而提高了安全性。
本领域技术人员可知,程序一般等于算法加数据,在用户的使用过程中,唯一发生变化的就是程序中的数据,因此,当程序中的数据出现问题,造成应用程序执行异常时,可通过本申请实施例所提供的方法通过修复指令的方式实现在线修复,无需重新安装该应用程序。因此,本申请实施例中的修复指令有一部分是针对该应用程序所使用的数据进行的修复。本申请实施例中的程序中的数据可存储至两个数据库,数据库database和数据库sharedpreference。
本申请实施例中的修复指令可由多种表示方式,即修复指令有多种语言,只需本申请实施例中的终端可支持解析即可。如传统的json、xml、文本、脚本等等均为终端可解析出的语言,本申请实施例中修复指令也可使用一些自定义的语言。为描述方便,本申请实施例中下述示例内容以json语言表示修复指令,本领域技术人员可应用其它任何语言来表述修复指令。
本申请实施例中服务器向终端发送的修复指令可为一条指令或多条指令的组合。同时下发多个指令,终端可在一次执行中执行该指令的集合,举例来说,指令结合表现为数组的形式可为[{“cmd”:”update”,…},{“cmd”:”add”,…}]。
上述内容中的一条指令用于指示以下操作中的一种:
重启该应用程序、下载并安装该应用程序的更新版本、增加该应用程序所使用的数据、修改该应用程序所使用的数据、删除该应用程序所使用的数据、清除该应用程序所使用的所有数据。具体修复指令的代码示例如下:
第一种,重启该应用程序。
“cmd”:”restart”,
“condition”:”xx
第二种,下载并安装该应用程序的更新版本,此修复指令用于当前该应用程序的版本确实无法通过其它办法修复时,可先通过后台下载该应用程序的更新版本,之后并通过修复指令使终端安装该应用程序的更新版本。
“cmd”:”reinstall”,
“condition”:”network_type=wifi”,
“url”:”http://xx.aliapp.com/123.apk”,
上述指令中的统一资源***(Uniform Resoure Locator,简称URL)表示该应用程序的更新版本的安装包(AndroidPackage,简称apk)的所在位置。某些情况下,该指令的执行需要***特性的支持。
第三种,增加该应用程序所使用的数据库database中的数据、修改该应用程序所使用的数据库database中的数据、删除该应用程序所使用的数据库database中的数据。
“device”:”imei=xx”,
“sign”:”xxxxxxxx”,
“cmd”:“update”,
“dest”:”db”,
“condition”:”version>xxx”,
“select”:”data_id=xxx OR…AND…”,
“set”:”attr_x=val_x,…”
上述修复指令中,命令(command,简称cmd)表示指令,可以是修改(update)、删除(delete)、增加(add);dest表示目标主体,这时db表示在数据库database中;条件(condition)表示要执行此修复指令需要满足的条件,可以填写也可不填。选择(select)表示从数据库中以此作为where子名可检索出的数据项;设置(set)表示设置新的值。如果是delete子句则不需要set子句只需根据select删除即可。如果是add则需要在set子句中将所有键值对(key-value,简称kv)列举出来。装置(device)表示目标设备,可以通过终端的标识信息指定,也可以是表示所有安装有该应用程序的终端的所有(all)。签名(sign)标示此修复指令中其它所有字段的签名算法,可用于使终端用于对该发出该修复指令的服务器进行合法性校验。
第四种,增加该应用程序所使用的数据库sharedpreference中的数据、修改该应用程序所使用的数据库sharedpreference中的数据、删除该应用程序所使用的数据库sharedpreference中的数据。
“device”:”imei=xx”,
“sign”:”xxxxxxxx”,
“cmd”:”update”,
“dest”:”sharedpreference”,
“condition”:”…”,
“name”:”xxx”,
“value”:”xxx”
上述修复指令的代码中name表示sharedpreference中的字段名,value表示要设置的新值。如果是删除(delete)该应用程序所使用的数据库sharedpreference中的数据,则不需要给出value。
第五种,清除该应用程序所使用的数据库database中的所有数据。
“device”:”imei=xx”,
“sign”:”xxxxxxxx”,
“cmd”:”clear”,
“dest”:”db”,
“condition”:”xx”
第六种,清除该应用程序所使用的数据库sharedpreference中的所有数据。
“cmd”:”clear”,
“dest”:”sharedpreference”,
“condition”:”xx”
第七种,动态脚本指令。
一般终端都有支持动态脚本执行的环境,可以通过动态脚本指令的方式设定更加灵活的修复指令。不过为了在脚本环境中访问到Native环境中的数据,某些情况下可能需要在Native中增加一些数据接口,以便供脚本调用。下面以执行javascript为例:
“cmd”:”js”,
“code”:”if(get_sharedpref(name1)==1)then set_sharedpref(name2)==2);”
“condition”:”js_supported”
上述动态脚本指令中编码(code)即是javascript代码片断。get_sharedpref(),set_sharedpref()是Native中提供的读写sharedpreference数据的接口。
具体实施中,终端的指令执行框架用以解析并执行该修复指令。如果是数据库类型的修复指令,则调用执行相应sql语句。如果是脚本语句(比如js),则可调用如WebView等执行js。有的修复指令的执行需依赖***支持,比如下载并安装该应用程序的更新版本、清除该应用程序所使用的所有数据等,此时,这需要调用PackageManager等***接口,此时要求终端上的该应用程序具有该调用权限。
一种较佳地实现方式为,终端执行该修复指令之前,该终端对该修复指令进行合法性校验,在该修复指令通过合法性校验时执行修复指令;或者终端根据该修复指令中包含的修复指令的执行条件,判断是否满足该执行条件,在修复指令满足执行条件时执行修复指令;或者该终端对该修复指令进行合法性校验,并且该终端根据该修复指令中包含的修复指令的执行条件,判断是否满足该执行条件,即在该修复指令通过合法性校验时,且该修复指令满足执行条件时执行修复指令时,才执行修复指令。
上述内容中,优选地,修复指令通过合法性校验具体是指该修复指令满足以下内容中的任一项或任几项。
第一,修复指令携带服务器标识,且该修复指令所携带的服务器标识与发送修复指令的该服务器的标识一致。具体来说,在修复指令中携带有sign字段,这个sign在服务器已按照约定的加密签名算法算出值,终端接收到该修复指令后,以同样的加密签名算法计算sign的值,如果两者一致则认为该修复指令是由合法服务器发送的;
第二,修复指令的格式为该应用程序支持的格式。举个例子,如果修复指令是json,则首先是合法的json格式,修复指令必须是终端支持的格式;如果修复指令是update指令,则修复指令中必须有select,set等字段。
第三,修复指令携带终端标识,且该修复指令携带的终端标识为该终端的终端标识。具体来说,修复指令中有device字段,指示终端,该字段可设置为UUID标识,则当前终端的标识信息的UUID与修复指令中携带的UUID一致,则认为该终端为该修复指令的合法终端。修复指令中的device字段对应的终端标识信息用以保证当修复指令下发到其它非发送该日志的终端,即非目标终端时,非目标终端经过合法性校验,发现该修复指令并不是发送给自身的,因此,该修复指令的下发并不影响该非目标终端的正常运行。
上述内容中,优选地,修复指令满足执行条件具体是指修复指令的条件满足以下内容中的任一项或任几项:
第一,终端所安装的***的版本等于或高于执行该修复指令所要求的该***的版本。举例来说,要求***的版本大于19,具体代码片段为version>19。
第二,终端连接无线局域网。举例来说,要求终端连接在WI-FI下,具体代码片段为network_type=wifi。
第三,终端电量大于预设电量值。
第四,终端的地理位置在预设位置区域内。
第五,终端***的当前时间在预设时间范围内。
较佳地,在步骤204中,该终端可通过以下几种方式执行该修复指令:
第一种执行方式,终端接收到该修复指令之后立即执行该修复指令,以便尽快修复该应用程序。
第二种执行方式,终端接收到该修复指令之后进行缓存,并在启动该应用程序时执行缓存的该修复指令,以便使终端获得更多主动权,且节省资源。
第三种执行方式,终端在***空闲时执行该修复指令。具体来说,***空闲状态时执行该修复指令,则可减轻***负荷量。
优选地,终端执行该修复指令之后,终端将执行结果上传到服务器中,以使服务器记录该终端的一些列操作,进一步服务器可通过该上传的执行结果判断该终端是否已修复该应用程序的执行异常。另一种实现方式为,终端在执行该修复指令之后,向服务器发送用于指示该应用程序是否修复异常状态的指示信息,以便于告知服务器自身是否已经恢复至正常工作状态。若终端还未恢复,则服务器需针对该情况进行下一步处理,即进一步发送其它修复指令以便于修复该终端上的该应用程序。
从上述内容可以看出:本申请实施例中,终端获取包含有应用程序执行异常的信息的日志,向服务器发送日志,接收服务器根据日志发送的修复指令并执行。如此,终端可在应用程序执行异常时,不需要重装该应用程序,仅通过向服务器发送包含有应用程序执行异常的信息的日志,从而执行所获取的修复指令对执行异常进行修复即可,实现了该应用程序在线修复的功能,减小应用程序运行中出现执行异常时必须重装的现象。进一步,由于终端获取包含有应用程序执行异常的信息的日志,并向服务器发送日志,从而实现了服务器可自动收集应用程序执行异常的信息的日志的功能,从而可使开发者进一步完善应用程序。
基于相同构思,图3示例性示出本申请实施例提供的一种应用程序修复方法流程示意图。该流程可在服务器实现。参见图3,本申请实施例提供的一种应用程序修复方法,包括以下步骤:
步骤301,服务器接收终端发送的包含有应用程序执行异常的信息的日志;
步骤302,该服务器根据该日志向该终端发送修复指令,该修复指令用于修复该应用程序。
终端上安装的应用程序执行异常时,不需要重装该应用程序,仅通过向服务器发送包含有应用程序执行异常的信息的日志,从而执行所获取的修复指令对执行异常进行修复即可,实现了该应用程序在线修复的功能,减小应用程序运行中出现执行异常时必须重装的现象。
较佳地,服务器根据该日志通过以下几种方式向该终端发送修复指令:
第一方式,该服务器接收该终端发送的修复指令获取请求,并根据该修复指令获取请求向该终端返回修复指令。具体来说,终端可在该应用程序重启时,或者在终端连接在无线局域网时,终端主动向服务器发送修复指令获取请求,以便于终端主动获取修复指令,服务器接收该终端发送的修复指令获取请求,服务器根据该修复指令获取请求向该终端返回修复指令。优选地,修复指令获取请求可为HTTP请求。如此,终端可自己选择获取修复指令的时机,更具有主动性,且也减少数据流量消耗。
第二方式,该服务器向包含该终端在内的多个安装有该应用程序的终端推送修复指令。具体来说,当该应用程序在一个终端上发生了执行异常的情况,则该应用程序可能在其它终端上也存在类似的情况,可能由于某种原因未能及时发送日志,因此当服务器接收到某一个或某几个终端发送的该应用程序的执行异常的信息的日志时,服务器可向包含该终端在内的多个安装有该应用程序的终端推送修复指令,进一步完善了该应用程序。服务器向所有终端推送修复指令的方式在现有的终端中有很多服务可以支持,例如极光推送、云OS***中的***推送服务CMNS。
第三方式,该服务器向该终端推送修复指令。一方面,即服务器主动向终端推送修复指令,无需终端再发送请求来获取修复指令。另一方面,终端可能由于特定的运行环境造成了该终端上该应用程序执行异常的情况,当服务器接收到该包含应用程序执行异常的信息的日志之后,服务器可针对性的向发生执行异常的终端发送修复指令,以避免将该修复指令误发给其它安装有该应用程序的终端。优选地,当终端向服务器上报了该终端的标识信息时,如终端向服务器上报终端设备号、IMEI、账号、云OS***中的UUID等能唯一标识该终端的标识信息时,服务器可根据该终端的标识信息向该终端的标识信息对应的终端发送修复指令。服务器向该终端推送修复指令的方式在现有的终端中有很多服务可以支持,例如极光推送、云OS***中的***推送服务CMNS。
上述第三方式中,优选地,终端向服务器上报终端的标识信息,具体可有以下几种方式:
第一,日志中包含该终端的标识信息,具体来说,在发送的日志中携带终端的标识信息,之后将携带终端的标识信息的日志发送给服务器;
第二,向服务器发送一条消息,该消息中包括终端的标识信息与日志;
第三,终端将日志发送给服务器之后,再单独通过其它消息向服务器发送终端的标识信息;
第四,终端向服务器发送日志时所使用的载体消息中包括的源地址即可作为该终端的标识信息。
通过上述几种方式向服务器发送了终端的标识信息,一方面该服务器根据该日志中包含的该终端的标识信息向该终端的标识信息对应的该终端推送修复指令,如此,服务器则可精确定位应用程序执行异常的终端,从而使服务器针对该终端服务器推送修复指令。另一方面,服务器也可将修复指令中携带终端的标识信息,以使终端接收到修复指令时,对该修复指令中携带的中的终端的标识信息进行合法性校验,当确定修复指令中携带的终端的标识信息与自身的标识信息匹配时,才执行该修复指令,从而提高了安全性。
较佳地,该服务器接收该终端发送的该日志之后、向该终端发送修复指令之前,还包括:
该服务器向该终端发送数据上传指令,该数据上传指令用于指示该终端向该服务器上传该应用程序所使用的所有数据的指令;
该服务器接收该终端根据该数据上传指令上传的该应用程序所使用的所有数据。
本申请实施例中,服务器可根据终端上报的应用程序执行异常的信息的日志构造修复指令,某些情况下,仅通过这些日志还无法分析出出现问题的原因,无法构造修复指令,此时则在终端向服务器发送该日志之后、接收该服务器根据该日志发送的修复指令之前,终端接收所述服务器发送的数据上传指令,终端根据该数据上传指令向该服务器上传该应用程序所使用的所有数据。如此,可通过终端上传的应用程序执行异常的信息的日志,以及终端向该服务器上传该应用程序所使用的所有数据构造修复指令。
较佳地,该修复指令中包含修复指令的执行条件。优选的,终端执行该修复指令之前,该终端对该修复指令进行合法性校验,在该修复指令通过合法性校验时执行修复指令;或者终端根据该修复指令中包含的修复指令的执行条件,判断是否满足该执行条件,在修复指令满足执行条件时执行修复指令;或者该终端对该修复指令进行合法性校验,并且该终端根据该修复指令中包含的修复指令的执行条件,判断是否满足该执行条件,即在该修复指令通过合法性校验时,且该修复指令满足执行条件时执行修复指令时,才执行修复指令。
上述内容中,修复指令通过合法性校验,以及修复指令满足执行条件的具体内容参见前述内容,在此不再赘述。
较佳地,该修复指令为一条指令或多条指令的组合;
该一条指令用于指示以下操作中的一种:
重启该应用程序、下载并安装该应用程序的更新版本、增加该应用程序所使用的数据、修改该应用程序所使用的数据、删除该应用程序所使用的数据、清除该应用程序所使用的所有数据。
具体指令内容参见前述内容,此处不再赘述。
从上述内容可以看出:本申请实施例中,终端获取包含有应用程序执行异常的信息的日志,向服务器发送日志,接收服务器根据日志发送的修复指令并执行。如此,终端可在应用程序执行异常时,不需要重装该应用程序,仅通过向服务器发送包含有应用程序执行异常的信息的日志,从而执行所获取的修复指令对执行异常进行修复即可,实现了该应用程序在线修复的功能,减小应用程序运行中出现执行异常时必须重装的现象。进一步,由于终端获取包含有应用程序执行异常的信息的日志,并向服务器发送日志,从而实现了服务器可自动收集应用程序执行异常的信息的日志的功能,从而可使开发者进一步完善应用程序。
基于相同构思,图4示例性示出本申请实施例提供的一种终端的结构示意图。该终端可用于执行上述方法流程。参见图4,本申请实施例提供的一种终端400,终端400包括获取单元401、发送单元402、接收单元403、处理单元404:
获取单元401,用于获取包含有应用程序执行异常的信息的日志;
发送单元402,用于向服务器发送该日志;
接收单元403,用于接收该服务器根据该日志发送的修复指令;
处理单元404,用于执行该修复指令。
较佳地,该获取单元401,具体用于:
通过HOOK函数捕获应用程序出现的异常事件,根据捕获的异常事件生成该日志;或者
通过自定义函数捕获应用程序出现的异常事件,根据捕获的异常事件生成该日志。
较佳地,该发送单元402,具体用于:
获取该日志之后立即向服务器发送该日志;或者
在连接到无线局域网后向服务器发送该日志;或者
在向服务器发送数据请求时,将该日志携带于该数据请求发送给服务器。
较佳地,发送单元402,还用于向该服务器发送修复指令获取请求,并通过接收单元403接收该服务器根据该修复指令获取请求返回的修复指令;或者
接收单元403,还用于接收该服务器根据该日志推送的修复指令,其中,该修复指令是该服务器向该终端推送的,或者该修复指令是该服务器向包含该终端在内的多个安装有该应用程序的终端推送的。
较佳地,该处理单元404,还用于:
对该修复指令进行合法性校验;和/或
根据该修复指令中包含的修复指令的执行条件,判断是否满足该执行条件。
较佳地,该处理单元404,具体用于:
接收到该修复指令之后立即执行该修复指令;或者
接收到该修复指令之后进行缓存,并在启动该应用程序时执行缓存的该修复指令;或者
在***空闲时执行该修复指令。
较佳地,该接收单元403,还用于:
接收所述服务器发送的数据上传指令;
该发送单元402,还用于:
根据该数据上传指令向该服务器上传该应用程序所使用的所有数据。
较佳地,该修复指令为一条指令或多条指令的组合;
该一条指令用于指示以下操作中的一种:
重启该应用程序、下载并安装该应用程序的更新版本、增加该应用程序所使用的数据、修改该应用程序所使用的数据、删除该应用程序所使用的数据、清除该应用程序所使用的所有数据。
较佳地,该日志中包含该终端的标识信息。
从上述内容可以看出:本申请实施例中,终端获取包含有应用程序执行异常的信息的日志,向服务器发送日志,接收服务器根据日志发送的修复指令并执行。如此,终端可在应用程序执行异常时,不需要重装该应用程序,仅通过向服务器发送包含有应用程序执行异常的信息的日志,从而执行所获取的修复指令对执行异常进行修复即可,实现了该应用程序在线修复的功能,减小应用程序运行中出现执行异常时必须重装的现象。进一步,由于终端获取包含有应用程序执行异常的信息的日志,并向服务器发送日志,从而实现了服务器可自动收集应用程序执行异常的信息的日志的功能,从而可使开发者进一步完善应用程序。
基于相同构思,图5示例性示出本申请实施例提供的一种服务器的结构示意图。该服务器可用于执行上述方法流程。参见图5,本申请实施例提供的一种服务器500,服务器500包括接收单元501、发送单元502:
接收单元501,用于接收终端发送的包含有应用程序执行异常的信息的日志;
发送单元502,用于该服务器根据该日志向该终端发送修复指令,该修复指令用于修复该应用程序。
较佳地,接收单元501,还用于接收该终端发送的修复指令获取请求,并根据该修复指令获取请求通过发送单元502向该终端返回修复指令;或者
发送单元502,还用于向该终端推送修复指令;或者
发送单元502,还用于向包含该终端在内的多个安装有该应用程序的终端推送修复指令。
较佳地,该发送单元502,还用于:
向该终端发送数据上传指令,该数据上传指令用于指示该终端向该服务器上传该应用程序所使用的所有数据的指令;
该接收单元501,还用于:
接收该终端根据该数据上传指令上传的该应用程序所使用的所有数据。
较佳地,该修复指令中包含修复指令的执行条件。
较佳地,该修复指令为一条指令或多条指令的组合;
该一条指令用于指示以下操作中的一种:
重启该应用程序、下载并安装该应用程序的更新版本、增加该应用程序所使用的数据、修改该应用程序所使用的数据、删除该应用程序所使用的数据、清除该应用程序所使用的所有数据。
较佳地,该日志中包含该终端的标识信息;
该服务器根据该日志向该终端发送修复指令,包括:
该服务器根据该日志中包含的该终端的标识信息向该终端的标识信息对应的该终端推送修复指令。
从上述内容可以看出:本申请实施例中,终端获取包含有应用程序执行异常的信息的日志,向服务器发送日志,接收服务器根据日志发送的修复指令并执行。如此,终端可在应用程序执行异常时,不需要重装该应用程序,仅通过向服务器发送包含有应用程序执行异常的信息的日志,从而执行所获取的修复指令对执行异常进行修复即可,实现了该应用程序在线修复的功能,减小应用程序运行中出现执行异常时必须重装的现象。进一步,由于终端获取包含有应用程序执行异常的信息的日志,并向服务器发送日志,从而实现了服务器可自动收集应用程序执行异常的信息的日志的功能,从而可使开发者进一步完善应用程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (30)

1.一种应用程序修复方法,其特征在于,包括以下步骤:
终端获取包含有应用程序执行异常的信息的日志;
所述终端向服务器发送所述日志;
所述终端接收所述服务器根据所述日志发送的修复指令;
所述终端执行所述修复指令。
2.如权利要求1所述的方法,其特征在于,所述终端获取包含有应用程序执行异常的信息的日志,包括:
所述终端通过HOOK函数捕获应用程序出现的异常事件,根据捕获的异常事件生成所述日志;或者
所述终端通过自定义函数捕获应用程序出现的异常事件,根据捕获的异常事件生成所述日志。
3.如权利要求1所述的方法,其特征在于,所述终端向服务器发送所述日志,包括:
所述终端获取所述日志之后立即向服务器发送所述日志;或者
所述终端在连接到无线局域网后向服务器发送所述日志;或者
所述终端在向服务器发送数据请求时,将所述日志携带于所述数据请求发送给服务器。
4.如权利要求1所述的方法,其特征在于,所述终端接收所述服务器根据所述日志发送的修复指令,包括:
所述终端向所述服务器发送修复指令获取请求,并接收所述服务器根据所述修复指令获取请求返回的修复指令;或者
所述终端接收所述服务器根据所述日志推送的修复指令,其中,所述修复指令是所述服务器向所述终端推送的,或者所述修复指令是所述服务器向包含所述终端在内的多个安装有所述应用程序的终端推送的。
5.如权利要求1所述的方法,其特征在于,所述终端执行所述修复指令之前,还包括:
所述终端对所述修复指令进行合法性校验;和/或
所述终端根据所述修复指令中包含的修复指令的执行条件,判断是否满足所述执行条件。
6.如权利要求1所述的方法,其特征在于,所述终端执行所述修复指令,包括:
所述终端接收到所述修复指令之后立即执行所述修复指令;或者
所述终端接收到所述修复指令之后进行缓存,并在启动所述应用程序时执行缓存的所述修复指令;或者
所述终端在***空闲时执行所述修复指令。
7.如权利要求1所述的方法,其特征在于,所述终端向服务器发送所述日志之后、接收所述服务器根据所述日志发送的修复指令之前,还包括:
所述终端接收所述服务器发送的数据上传指令;
所述终端根据所述数据上传指令向所述服务器上传所述应用程序所使用的所有数据。
8.如权利要求1至7中任一项所述的方法,其特征在于,所述修复指令为一条指令或多条指令的组合;
所述一条指令用于指示以下操作中的一种:
重启所述应用程序、下载并安装所述应用程序的更新版本、增加所述应用程序所使用的数据、修改所述应用程序所使用的数据、删除所述应用程序所使用的数据、清除所述应用程序所使用的所有数据。
9.如权利要求1至7中任一项所述的方法,其特征在于,所述日志中包含所述终端的标识信息。
10.一种应用程序修复方法,其特征在于,包括以下步骤:
服务器接收终端发送的包含有应用程序执行异常的信息的日志;
所述服务器根据所述日志向所述终端发送修复指令,所述修复指令用于修复所述应用程序。
11.如权利要求10所述的方法,其特征在于,所述服务器根据所述日志向所述终端发送修复指令,包括:
所述服务器接收所述终端发送的修复指令获取请求,并根据所述修复指令获取请求向所述终端返回修复指令;或者
所述服务器向所述终端推送修复指令;或者
所述服务器向包含所述终端在内的多个安装有所述应用程序的终端推送修复指令。
12.如权利要求10所述的方法,其特征在于,所述服务器接收所述终端发送的所述日志之后、向所述终端发送修复指令之前,还包括:
所述服务器向所述终端发送数据上传指令,所述数据上传指令用于指示所述终端向所述服务器上传所述应用程序所使用的所有数据的指令;
所述服务器接收所述终端根据所述数据上传指令上传的所述应用程序所使用的所有数据。
13.如权利要求10所述的方法,其特征在于,所述修复指令中包含修复指令的执行条件。
14.如权利要求10至13中任一项所述的方法,其特征在于,所述修复指令为一条指令或多条指令的组合;
所述一条指令用于指示以下操作中的一种:
重启所述应用程序、下载并安装所述应用程序的更新版本、增加所述应用程序所使用的数据、修改所述应用程序所使用的数据、删除所述应用程序所使用的数据、清除所述应用程序所使用的所有数据。
15.如权利要求10至13中任一项所述的方法,其特征在于,所述日志中包含所述终端的标识信息;
所述服务器根据所述日志向所述终端发送修复指令,包括:
所述服务器根据所述日志中包含的所述终端的标识信息向所述终端的标识信息对应的所述终端推送修复指令。
16.一种终端,其特征在于,包括:
获取单元,用于获取包含有应用程序执行异常的信息的日志;
发送单元,用于向服务器发送所述日志;
接收单元,用于接收所述服务器根据所述日志发送的修复指令;
处理单元,用于执行所述修复指令。
17.如权利要求16所述的终端,其特征在于,所述获取单元,具体用于:
通过HOOK函数捕获应用程序出现的异常事件,根据捕获的异常事件生成所述日志;或者
通过自定义函数捕获应用程序出现的异常事件,根据捕获的异常事件生成所述日志。
18.如权利要求16所述的终端,其特征在于,所述发送单元,具体用于:
获取所述日志之后立即向服务器发送所述日志;或者
在连接到无线局域网后向服务器发送所述日志;或者
在向服务器发送数据请求时,将所述日志携带于所述数据请求发送给服务器。
19.如权利要求16所述的终端,其特征在于,
所述发送单元,还用于向所述服务器发送修复指令获取请求,并通过接收单元接收所述服务器根据所述修复指令获取请求返回的修复指令;或者
所述接收单元,还用于接收所述服务器根据所述日志推送的修复指令,其中,所述修复指令是所述服务器向所述终端推送的,或者所述修复指令是所述服务器向包含所述终端在内的多个安装有所述应用程序的终端推送的。
20.如权利要求16所述的终端,其特征在于,所述处理单元,还用于:
对所述修复指令进行合法性校验;和/或
根据所述修复指令中包含的修复指令的执行条件,判断是否满足所述执行条件。
21.如权利要求16所述的终端,其特征在于,所述处理单元,具体用于:
接收到所述修复指令之后立即执行所述修复指令;或者
接收到所述修复指令之后进行缓存,并在启动所述应用程序时执行缓存的所述修复指令;或者
在***空闲时执行所述修复指令。
22.如权利要求16所述的终端,其特征在于,所述接收单元,还用于:
接收所述服务器发送的数据上传指令;
所述发送单元,还用于:
根据所述数据上传指令向所述服务器上传所述应用程序所使用的所有数据。
23.如权利要求16至22中任一项所述的终端,其特征在于,所述修复指令为一条指令或多条指令的组合;
所述一条指令用于指示以下操作中的一种:
重启所述应用程序、下载并安装所述应用程序的更新版本、增加所述应用程序所使用的数据、修改所述应用程序所使用的数据、删除所述应用程序所使用的数据、清除所述应用程序所使用的所有数据。
24.如权利要求16至22中任一项所述的终端,其特征在于,所述日志中包含所述终端的标识信息。
25.一种服务器,其特征在于,包括:
接收单元,用于接收终端发送的包含有应用程序执行异常的信息的日志;
发送单元,用于所述服务器根据所述日志向所述终端发送修复指令,所述修复指令用于修复所述应用程序。
26.如权利要求25所述的服务器,其特征在于,
所述接收单元,还用于接收所述终端发送的修复指令获取请求,并根据所述修复指令获取请求通过发送单元向所述终端返回修复指令;或者
所述发送单元,还用于向所述终端推送修复指令;或者
所述发送单元,还用于向包含所述终端在内的多个安装有所述应用程序的终端推送修复指令。
27.如权利要求25所述的服务器,其特征在于,所述发送单元,还用于:
向所述终端发送数据上传指令,所述数据上传指令用于指示所述终端向所述服务器上传所述应用程序所使用的所有数据的指令;
所述接收单元,还用于:
接收所述终端根据所述数据上传指令上传的所述应用程序所使用的所有数据。
28.如权利要求25所述的服务器,其特征在于,所述修复指令中包含修复指令的执行条件。
29.如权利要求25至28中任一项所述的服务器,其特征在于,所述修复指令为一条指令或多条指令的组合;
所述一条指令用于指示以下操作中的一种:
重启所述应用程序、下载并安装所述应用程序的更新版本、增加所述应用程序所使用的数据、修改所述应用程序所使用的数据、删除所述应用程序所使用的数据、清除所述应用程序所使用的所有数据。
30.如权利要求25至28中任一项所述的服务器,其特征在于,所述日志中包含所述终端的标识信息;
所述服务器根据所述日志向所述终端发送修复指令,包括:
所述服务器根据所述日志中包含的所述终端的标识信息向所述终端的标识信息对应的所述终端推送修复指令。
CN201510412416.9A 2015-07-14 2015-07-14 一种应用程序修复方法、终端及服务器 Pending CN106339273A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510412416.9A CN106339273A (zh) 2015-07-14 2015-07-14 一种应用程序修复方法、终端及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510412416.9A CN106339273A (zh) 2015-07-14 2015-07-14 一种应用程序修复方法、终端及服务器

Publications (1)

Publication Number Publication Date
CN106339273A true CN106339273A (zh) 2017-01-18

Family

ID=57827238

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510412416.9A Pending CN106339273A (zh) 2015-07-14 2015-07-14 一种应用程序修复方法、终端及服务器

Country Status (1)

Country Link
CN (1) CN106339273A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951280A (zh) * 2017-02-28 2017-07-14 努比亚技术有限公司 移动终端及应用修复方法
CN107329781A (zh) * 2017-06-21 2017-11-07 努比亚技术有限公司 软件热修复方法、终端、***及计算机可读存储介质
CN107578394A (zh) * 2017-10-11 2018-01-12 上海联影医疗科技有限公司 一种图像重建失败的修复方法和装置
CN107783857A (zh) * 2017-10-31 2018-03-09 珠海市魅族科技有限公司 一种异常修复方法及装置、计算机装置、可读存储介质
CN111190755A (zh) * 2019-08-01 2020-05-22 腾讯科技(深圳)有限公司 应用程序的功能异常处理方法及装置
CN111786814A (zh) * 2020-06-05 2020-10-16 腾讯科技(深圳)有限公司 一种日志处理方法和装置
CN112286949A (zh) * 2020-11-20 2021-01-29 深圳市和讯华谷信息技术有限公司 应用列表更新方法、装置、计算机设备及存储介质
CN112328422A (zh) * 2020-11-06 2021-02-05 深圳市锐尔觅移动通信有限公司 异常修复方法、装置、电子设备及存储介质
CN112865994A (zh) * 2019-11-27 2021-05-28 Oppo广东移动通信有限公司 远程辅助修复方法及相关装置
CN113835912A (zh) * 2020-06-24 2021-12-24 北京新氧科技有限公司 应用程序的崩溃信息处理方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103995715A (zh) * 2014-05-06 2014-08-20 百度在线网络技术(北京)有限公司 应用程序的修复方法、装置及服务器
CN104050058A (zh) * 2014-06-27 2014-09-17 珠海市君天电子科技有限公司 一种数据修复方法及相关设备、***
CN104216811A (zh) * 2013-05-30 2014-12-17 腾讯科技(深圳)有限公司 应用程序的日志收集方法和***
CN104378781A (zh) * 2013-08-16 2015-02-25 中兴通讯股份有限公司 一种检测移动终端故障的方法及移动终端
CN104503892A (zh) * 2014-12-19 2015-04-08 宇龙计算机通信科技(深圳)有限公司 终端异常的处理方法、处理装置和终端

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216811A (zh) * 2013-05-30 2014-12-17 腾讯科技(深圳)有限公司 应用程序的日志收集方法和***
CN104378781A (zh) * 2013-08-16 2015-02-25 中兴通讯股份有限公司 一种检测移动终端故障的方法及移动终端
CN103995715A (zh) * 2014-05-06 2014-08-20 百度在线网络技术(北京)有限公司 应用程序的修复方法、装置及服务器
CN104050058A (zh) * 2014-06-27 2014-09-17 珠海市君天电子科技有限公司 一种数据修复方法及相关设备、***
CN104503892A (zh) * 2014-12-19 2015-04-08 宇龙计算机通信科技(深圳)有限公司 终端异常的处理方法、处理装置和终端

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106951280A (zh) * 2017-02-28 2017-07-14 努比亚技术有限公司 移动终端及应用修复方法
CN107329781A (zh) * 2017-06-21 2017-11-07 努比亚技术有限公司 软件热修复方法、终端、***及计算机可读存储介质
CN107578394A (zh) * 2017-10-11 2018-01-12 上海联影医疗科技有限公司 一种图像重建失败的修复方法和装置
CN107783857A (zh) * 2017-10-31 2018-03-09 珠海市魅族科技有限公司 一种异常修复方法及装置、计算机装置、可读存储介质
CN111190755A (zh) * 2019-08-01 2020-05-22 腾讯科技(深圳)有限公司 应用程序的功能异常处理方法及装置
CN111190755B (zh) * 2019-08-01 2022-03-08 腾讯科技(深圳)有限公司 应用程序的功能异常处理方法及装置
CN112865994A (zh) * 2019-11-27 2021-05-28 Oppo广东移动通信有限公司 远程辅助修复方法及相关装置
CN111786814A (zh) * 2020-06-05 2020-10-16 腾讯科技(深圳)有限公司 一种日志处理方法和装置
CN111786814B (zh) * 2020-06-05 2024-05-28 腾讯科技(深圳)有限公司 一种日志处理方法和装置
CN113835912A (zh) * 2020-06-24 2021-12-24 北京新氧科技有限公司 应用程序的崩溃信息处理方法及设备
CN113835912B (zh) * 2020-06-24 2024-02-09 北京新氧科技有限公司 应用程序的崩溃信息处理方法及设备
CN112328422A (zh) * 2020-11-06 2021-02-05 深圳市锐尔觅移动通信有限公司 异常修复方法、装置、电子设备及存储介质
CN112286949B (zh) * 2020-11-20 2024-05-17 深圳市和讯华谷信息技术有限公司 应用列表更新方法、装置、计算机设备及存储介质
CN112286949A (zh) * 2020-11-20 2021-01-29 深圳市和讯华谷信息技术有限公司 应用列表更新方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN106339273A (zh) 一种应用程序修复方法、终端及服务器
CN108551487B (zh) PaaS平台的应用部署方法、装置、服务器及存储介质
CN110442524B (zh) 一种针对带有认证授权的web服务接口测试方法和装置
CN106681924B (zh) 一种软件测试方法及***
CN107800565B (zh) 巡检方法、装置、***、计算机设备和存储介质
CN102708050B (zh) 移动应用测试方法和***
CN112261118B (zh) 多媒体数据的异常检测方法、终端及服务器
US9612812B2 (en) Method and system for distributed application stack test certification
US10019255B1 (en) Incremental software deployment in a service environment
CN104468843A (zh) 一种文件上传方法及装置
CN107357571B (zh) 设备组件程序的维护方法及***
CN112988485B (zh) 电力物联网设备模拟测试方法及装置
US10250483B2 (en) System and method thereof for dynamically testing networked target systems through simulation by a mobile device
US11636016B2 (en) Cloud simulation and validation system
CN105302732A (zh) 一种移动终端的自动测试方法及装置
CN113110864B (zh) 应用程序更新方法、装置及存储介质
CN109391673A (zh) 一种管理更新文件的方法、***及终端设备
CN105786636B (zh) 一种***修复方法及装置
CN104424317B (zh) 一种向用户终端提供应用的方法和***
CN106126419A (zh) 一种应用程序的调试方法及装置
US9935867B2 (en) Diagnostic service for devices that employ a device agent
WO2022197604A1 (en) Methods, systems, and computer readable media for autonomous network test case generation
CN112445507A (zh) 一种设备的升级方法和装置
CN115705190A (zh) 依赖程度的确定方法及装置
CN110535919B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170118