CN107168699A - 应用程序修复方法及终端设备 - Google Patents

应用程序修复方法及终端设备 Download PDF

Info

Publication number
CN107168699A
CN107168699A CN201710295468.1A CN201710295468A CN107168699A CN 107168699 A CN107168699 A CN 107168699A CN 201710295468 A CN201710295468 A CN 201710295468A CN 107168699 A CN107168699 A CN 107168699A
Authority
CN
China
Prior art keywords
file
download
mark
state
application program
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
CN201710295468.1A
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.)
Beijing 58 Information Technology Co Ltd
Original Assignee
Beijing 58 Information Technology Co 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 Beijing 58 Information Technology Co Ltd filed Critical Beijing 58 Information Technology Co Ltd
Priority to CN201710295468.1A priority Critical patent/CN107168699A/zh
Publication of CN107168699A publication Critical patent/CN107168699A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/72Code refactoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明实施例提供一种应用程序修复方法及终端设备,该方法包括:在获取得到应用程序的启动指令之后,获取应用程序的下载标识的状态和异常标识的状态;判断下载标识和异常标识是否均为第一状态,下载标识和异常标识为第一状态用于指示在终端设备上一次下载应用程序的修复文件的过程中,应用出现了异常;若是,则向服务器请求下载修复文件,并在修复文件下载完成之后,根据修复文件启动应用程序;若否,判断是否需要向服务器请求下载修复文件,若是,则同时向服务器请求下载修复文件、及启动应用程序。用于提高应用程序修复的可靠性。

Description

应用程序修复方法及终端设备
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种应用程序修复方法及终端设备。
背景技术
目前,随着终端设备技术的不断发展,市场上的应用程序越来越多。在用户使用应用程序的过程中,当应用程序出现故障时,应用程序开发者通常开发修复文件,以对应用程序的故障进行修复。
在现有技术中,当应用程序出现故障之后,应用程序开发者根据应用程序的故障开发修复文件,并将修复文件上传至应用程序服务器。当用户在终端设备中启动应用程序时,终端设备判断服务器中是否存在该应用程序对应的修复文件,若存在,则终端设备在服务器中下载修复文件,同时,终端设备还对应用程序进行启动。在终端设备下载得到修复文件之后,通过修复文件修复应用程序中的故障。
然而,终端设备向服务器请求下载修复文件消耗的时间较长,在终端设备下载修复文件的过程中,应用程序可能出现故障,使得终端设备无法根据修复文件对应用进行修复,导致对应用程序修复的可靠性低下。
发明内容
本发明实施例提供一种应用程序修复方法及终端设备,提高了应用程序修复的可靠性。
第一方面,本发明实施例提供一种应用程序修复方法,应用于终端设备,所述方法包括:
在获取得到应用程序的启动指令之后,获取所述应用程序的下载标识的状态和异常标识的状态;
判断所述下载标识和所述异常标识是否均为第一状态,所述下载标识和所述异常标识为所述第一状态用于指示在终端设备上一次下载所述应用程序的修复文件的过程中,所述应用出现了异常;
若是,则向服务器请求下载修复文件,并在所述修复文件下载完成之后,根据所述修复文件启动所述应用程序;
若否,判断是否需要向所述服务器请求下载修复文件,若是,则同时向服务器请求下载修复文件、及启动所述应用程序。
在一种可能的实施方式中,在所述修复文件下载完成之后,还包括:
将所述下载标识设置为第二状态;
将所述异常标识设置为第二状态。
在另一种可能的实施方式中,判断是否需要向所述服务器请求获取修复文件,包括:
向所述服务器请求获取所述服务器中存储的最新修复文件的标识;
根据所述终端设备本地存储的修复文件的标识、和所述最新修复文件的标识,判断是否需要向所述服务器请求获取所述修复文件。
在另一种可能的实施方式中,同时向服务器请求获取修复文件、及启动所述应用程序,包括:
创建第一线程和第二线程,所述第一线程和所述第二线程为异步线程;
通过所述第一线程向所述服务器发送修复文件获取请求,并接收所述服务器发送的所述修复文件;
通过所述第二线程启动所述应用程序。
在另一种可能的实施方式中,在通过所述第一线程向所述服务器发送修复文件获取请求之后,还包括:
获取所述下载标识的状态;
若所述下载标识的状态为第二状态,则将所述下载标识设置为第一状态。
在另一种可能的实施方式中,在将所述下载标识设置为第一状态之后,还包括:
在下载完所述修复文件之后,生成所述修复文件的下载完成指令;
根据所述下载完成指令,将所述下载标识设置为第二状态。
在另一种可能的实施方式中,在启动所述应用程序之后,还包括:
在所述应用程序异常时,生成所述应用程序的异常指令;
根据所述异常指令,将所述异常标识的状态设置为第一状态。
在另一种可能的实施方式中,所述修复文件中包括修复代码和验证信息,所述验证信息为所述服务器对所述服务器中的修复代码进行MD5加密、及通过预设私钥进行RSA加密得到的信息;相应的,在所述修复文件下载完成之后,还包括:
通过预设公钥对应所述签名信息进行解密,得到第一MD5信息,所述预设公钥与所述预设私钥为非对称密码;
对所述修复文件中的修复代码进行MD5加密,得到第二MD5信息;
若所述第一MD5信息和所述第二MD5信息相同,则确定所述修复文件中的修复代码正确。
第二方面,本发明实施例提供一种终端设备,包括获取模块、判断模块、下载模块、启动模块,其中,
所述获取模块用于,在获取得到应用程序的启动指令之后,获取所述应用程序的下载标识的状态和异常标识的状态;
所述判断模块用于,判断所述下载标识和所述异常标识是否均为第一状态,所述下载标识和所述异常标识为所述第一状态用于指示在终端设备上一次下载所述应用程序的修复文件的过程中,所述应用出现了异常;
所述下载模块用于,在所述判断模块判断所述下载标识和所述异常标识均为第一状态时,向服务器请求下载修复文件;相应的,所述启动模块用于,在所述下载模块下载完成所述修复文件之后,根据所述修复文件启动所述应用程序;
在所述判断模块判断所述下载标识和所述异常标识不同时为第一状态时,所述判断模块还用于,判断是否需要向所述服务器请求下载修复文件,在所述判断模块判断需要向所述服务器请求下载修复文件时,在所述下载模块向服务器请求下载修复文件的同时,所述启动模块启动所述应用程序。
在一种可能的实施方式中,,所述终端设备还包括设置模块,其中,
所述设置模块用于,在所述下载模块下载完成所述修复文件之后,将所述下载标识设置为第二状态,将所述异常标识设置为第二状态。
在另一种可能的实施方式中,所述判断模块具体用于:
向所述服务器请求获取所述服务器中存储的最新修复文件的标识;
根据所述终端设备本地存储的修复文件的标识、和所述最新修复文件的标识,判断是否需要向所述服务器请求获取所述修复文件。
在另一种可能的实施方式中,所述终端设备还包括创建模块,其中,
所述创建模块用于,创建第一线程和第二线程,所述第一线程和所述第二线程为异步线程;
相应的,所述下载模块具体用于,通过所述第一线程向所述服务器发送修复文件获取请求,并接收所述服务器发送的所述修复文件;
所述启动模块具体用于,通过所述第二线程启动所述应用程序。
在另一种可能的实施方式中,所述获取模块还用于,在所述下载模块在通过所述第一线程向所述服务器发送修复文件获取请求之后,获取所述下载标识的状态;
所述设置模块还用于,在所述下载标识的状态为第二状态时,将所述下载标识设置为第一状态。
在另一种可能的实施方式中,所述终端设备还包括生成模块,其中,
所述生成模块用于,在所述下载模块下载完所述修复文件之后,生成所述修复文件的下载完成指令;
所述设置模块还用于,根据所述下载完成指令,将所述下载标识设置为第二状态。
在另一种可能的实施方式中,所述生成模块还用于,在所述启动模块启动所述应用程序之后,在所述应用程序异常时,生成所述应用程序的异常指令;
所述设置模块还用于,根据所述异常指令,将所述异常标识的状态设置为第一状态。
在另一种可能的实施方式中,所述修复文件中包括修复代码和验证信息,所述验证信息为所述服务器对所述服务器中的修复代码进行MD5加密、及通过预设私钥进行RSA加密得到的信息;所述终端设备还包括验证模块,其中,在所述下载模块下载完成所述修复文件之后,所述验证模块用于:
通过预设公钥对应所述签名信息进行解密,得到第一MD5信息,所述预设公钥与所述预设私钥为非对称密码;
对所述修复文件中的修复代码进行MD5加密,得到第二MD5信息;
若所述第一MD5信息和所述第二MD5信息相同,则确定所述修复文件中的修复代码正确。
本发明实施例提供的应用程序修复方法及终端设备,当需要在终端设备中启动应用程序时,终端设备获取应用程序的下载标识的状态和异常标识的状态,若下载标识的状态和异常标识的状态指示,终端设备上一次下载应用程序的修复文件的过程中应用出现了异常时,终端设备则先下载修复文件,并在修复文件下载完成之后,再启动应用程序,进而避免终端设备下载完成修复文件之前,应用程序出现异常,进而提高应用程序修复的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的应用程序修复方法的应用场景示意图;
图2为本发明实施例提供的应用程序修复方法的流程示意图一;
图3为本发明实施例提供的应用程序修复方法的流程示意图二;
图4为本发明实施例提供的终端设备的结构示意图一;
图5为本发明实施例提供的终端设备的结构示意图二。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的应用程序修复方法的应用场景示意图。请参见图1,包括终端设备101和服务器102。终端设备101可以为手机、电脑、电视等设备。在终端设备101可以从服务器102中下载应用程序,并在终端设备中安装应用程序。在实际应用过程中,应用程序维护者会根据应用程序的故障开发修复文件,并在服务器中上传最新的修复文件。在终端设备启动时,终端设备101可以从服务器102中下载最新的修复文件,并根据最新的修复文件对应用程序进行修复。
在本申请中,在应用程序中还包括下载标识和异常标识。下载标识和异常标识可以为第一状态或者第二状态,例如,第一状态可以为true,第二状态可以为false。若应用程序出现异常,则将异常标识设置为第一状态。在终端设备开始下载应用程序对应的修复文件时,将下载标识的状态设置为第一状态;在终端设备下载完成应用程序对应的修复文件时,将下载标识的状态设置为第二状态,并将异常标识设置为第二状态。相应的,在终端设备中启动应用程序时,可以根据下载标识和异常标识的状态确定下载修复文件的方式,进而避免在下载完成修复文件之前,应用程序出现故障,进而提高对应用程序修复的可靠性。
下面,通过具体实施例对本申请所示的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
图2为本发明实施例提供的应用程序修复方法的流程示意图一。该方法的执行主体为终端设备,请参见图2,该方法可以包括:
S201、在获取得到应用程序的启动指令之后,获取应用程序的下载标识的状态和异常标识的状态。
在本发明实施例中,在终端设备安装应用程序之后,该应用程序的下载标识的初始状态为第二状态、异常标识的初始状态也为第二状态。在实际应用过程中,下载标识的状态与是否存在应用程序对应的、未下载完成的修复文件有关,异常标识的状态与终端设备中是否存在应用程序对应的未下载完成的应用程序、及应用程序是否发生异常有关。用户无法手动修改下载标识的状态及异常标识的状态。终端设备的重启、应用程序的重启也不会修改下载标识的状态及异常标识的状态。
可选的,若应用程序出现异常,则将异常标识设置为第一状态。在终端设备开始下载应用程序对应的修复文件时,将下载标识的状态设置为第一状态,在终端设备下载完成应用程序对应的修复文件时,将下载标识的状态设置为第二状态,并将异常标识设置为第二状态。
在实际该应用,当用户需要在终端设备中启动应用程序时,用户可以在终端设备中对应用程序的图标进行点击操作,以实现在终端设备中输入应用程序对应的启动指令,以使终端设备获取应用程序的启动指令。
在终端设备获取得到应用程序的启动指令之后,终端设备获取应用程序的下载标识的状态和异常标识的状态。可选的,下载标识和异常标识可以为预先设置在应用程序中的两个参数,例如,下载标识可以为hotFixIsDownloading参数,异常标识可以为isCrash参数。该两个参数的第一状态可以为true,该两个参数的第二状态可以为false。
S202、判断下载标识和异常标识是否均为第一状态。
若是,则执行S203。若否,则执行S204。
当下载标识和异常标识均为第一状态时,说明终端设备在上一次下载应用程序的修复文件的过程中,应用程序出现了异常,这样,导致终端设备未能成功下载修复文件。
当下载标识为第一状态、异常标识为第二状态时,说明终端设备在上一次下载修复文件的过程中,由于网络中断、用户退出应用程序等而导致的修复文件未完成下载。此时,由于应用程序未出现异常,因此,异常标识为第二状态。
当下载标识为第二状态、异常标识为第一状态时,说明应用程序在上一次运行过程中,无需下载修复文件、或者成功下载了修复文件,且应用程序出现了异常。
当下载标识和异常标识均为第二状态时,说明应用程序在上一次运行过程中,无需下载修复文件、或者成功下载了修复文件,且应用程序未出现异常。
S203、向服务器请求下载修复文件,并在修复文件下载完成之后,根据修复文件启动应用程序。
当下载标识和异常标识均为第一状态时,说明终端设备在上一次下载应用程序的修复文件的过程中,应用程序出现了异常,进而导致终端设备未能成功下载修复文件。由于应用程序的故障点通常类似,因此,在本次启动应用程序的过程中,有可能在终端设备下载完修复文件之前,应用程序出现故障。此时,为了避免在终端设备下载完修复文件之前,应用程序再次出现故障,终端设备先向服务器请求下载修复文件,并在修复文件下载完成之后,在启动应用程序,这样,可以确保应用程序正常启动。
可选的,在终端设备下载完修复文件之后,终端设备开始启动应用程序,在启动应用程序的过程中,通过应用程序中预设设置的修复接口获取修复文件中的修复代码,并将修复代码替换应用程序中的故障代码,使得应用程序的故障得以修复。
可选的,在修复文件下载完成之后,将下载标识设置为第二状态,并将异常标识设置为第二状态。
需要说明的是,在应用程序启动之后,若应用程序出现异常,则终端设备生成应用程序的异常指令,并根据异常指令,将异常标识的状态设置为第一状态。可选的,在应用程序出现异常之后,终端设备会调用应用程序中的预设函数,并通过该预设函数将异常标识的状态设置为第一状态。
S204、判断是否需要向服务器请求下载修复文件。
若是,则执行S205。若否,则执行S206。
可选的,终端设备可以向服务器请求获取服务器中存储的最新修复文件的标识,根据终端设备本地存储的修复文件的标识、和最新修复文件的标识,判断是否需要向服务器请求获取修复文件。
可选的,最新修复文件的标识可以为最新修复文件的版本号、生成日期等,终端设备本地存储的修复文件的标识可以为本地存储的修复文件的版本号、生成日期等。
当终端设备本地存储的修复文件的标识与最新修复文件的标识相同时,则确定无需向服务器请求下载修复文件,否则,则需要向服务器请求下载修复文件。
S205、同时向服务器请求下载修复文件、及启动应用程序。
当下载标识和异常标识不同时为第一状态、且需要向服务器请求下载修复文件时,为了提高应用程序的启动效率,则同时向服务器请求下载修复文件、及启动应用程序。
可选的,终端设备可以创建第一线程和第二线程,第一线程和第二线程为异步线程;通过第一线程向服务器发送修复文件获取请求,并接收服务器发送的修复文件;通过第二线程启动应用程序。这样,可以通过第一线程和第二线程同时执行下载修复文件及启动应用程序。
可选的,在终端设备通过第一线程向服务器发送修复文件获取请求之后,获取下载标识的状态;若下载标识的状态为第二状态,则将下载标识设置为第一状态。
可选的,在终端设备下载完修复文件之后,生成修复文件的下载完成指令,并根据下载完成指令,将下载标识设置为第二状态。
需要说明的是,在终端设备下载修复文件的过程中,应用程序可能出现异常,或者在终端设备下载完修复文件之后,应用程序也可能出现异常。当应用程序异常时,生成应用程序的异常指令,并根据异常指令,将异常标识的状态设置为第一状态。
S206、启动应用程序。
当下载标识和异常标识不同时为第一状态、且不需要向服务器请求下载修复文件时,则终端设备直接启动应用程序。
本发明实施例提供的应用程序修复方法,当需要在终端设备中启动应用程序时,终端设备获取应用程序的下载标识的状态和异常标识的状态,若下载标识的状态和异常标识的状态指示,终端设备上一次下载应用程序的修复文件的过程中应用出现了异常时,终端设备则先下载修复文件,并在修复文件下载完成之后,再启动应用程序,进而避免终端设备下载完成修复文件之前,应用程序出现异常,进而提高应用程序修复的可靠性。
在图2所示实施例的基础上,在终端设备下载修复文件的过程中,修复文件可能被恶意篡改,进而对终端设备带来安全隐患。在本申请中,为了保证在终端设备下载的修复文件的安全性,服务器可以对其存储的修复文件进行安全性处理。
可选的,在应用程序研发阶段,可以生成一对预设公钥和预设私钥,将预设公钥写入应用程序中,将预设私钥存储在服务器中。在应用程序维护人员在服务器中上传修复代码之后,服务器先通过第五版消息摘要算法(Message Digest Algorithm,简称MD5)对修复代码进行加密,得到MD5信息,并通过预设私钥对MD5信息进行RSA加密,得到验证信息。服务器可以将包括修复代码和验证信息的修复文件发送至终端设备。当然,在服务器向终端设备发送修复文件时,还可以通过终端设备和服务器公知的密码对修复文件进行加密压缩。
相应的,在终端设备接收到修复文件之后,终端设备通过预设公钥对应签名信息进行解密,得到第一MD5信息,预设公钥与预设私钥为非对称密码,终端设备对修复文件中的修复代码进行MD5加密,得到第二MD5信息;终端设备判断第一MD5信息和第二MD5信息是否相同,若是,则说明修复代码在传输过程中未被修改,则确定修复文件中的修复代码正确,否则,说明修复代码在传输过程中被修改。
在上述过程中,在接收到修复文件之后,通过对修复文件中的修复代码进行验证,可以确保对应用程序修复的安全性。
下面,结合图3,以终端设备两次启动应用程序1的过程为例,对上述方法实施例所示的技术方案进行详细说明。
图3为本发明实施例提供的应用程序修复方法的流程示意图二。请参见图3,该方法可以包括:
S301、在终端设备获取得到应用程序1的启动指令1之后,终端设备获取应用程序1的下载标识的状态为false(第二状态)、异常标识的状态为false(第二状态)。
S302、终端设备向服务器发送修复文件标识获取请求。
S303、服务器向终端设备设备发送服务器中的最新修复文件的标识(V2)。
S304、终端设备判断服务器中的最新修复文件的标识(V2)与本地存储的修复文件的标识(V1)不同,终端设备创建线程1和线程2。
S305、终端设备通过线程1向服务器发送修复文件获取请求。
S306、终端设备将下载标识的状态修改为true(第一状态)。
S307、终端设备通过线程2启动应用程序。
需要说明的是,S305和S307同时执行。
还需要说明的是,在S301之后,可以立刻创建线程2,通过线程2启动应用程序,并在终端设备确定需要下载修复文件时,再创建线程1,通过线程1下载修复文件。在创建完成线程1和线程2之后,线程1和线程2同时执行。
S308、在终端设备下载修复文件的过程中,应用程序出现异常,则将异常标识的状态设置为true(第一状态),并退出应用程序1。
假设在退出应用程序之后,用户再次再终端设备中启动应用程序1,具体的,请参见S309-S313。
S309、在终端设备获取得到应用程序1的启动指令2之后,终端设备获取应用程序1的下载标识的状态的true(第一状态)、异常标识的状态为true(第一状态)。
S310、终端设备向服务器发送修复文件下载请求。
S311、服务器向终端设备发送最新版本(V2)的修复文件。
S312、终端设备下载完修复文件之后,将下载标识的状态设置为false,将异常标识的状态设置为false。
S313、终端设备根据最新版本(V2)的修复文件启动应用程序1。
在上述过程中,在终端设备第一次启动应用程序1时,由于下载标识和异常标识的状态均为false,因此,终端设备同时启动应用程序1和下载修复文件,在开始下载修复文件时,将下载标识的状态设置为了true。在下载修复文件的过程中,应用程序1出现异常,则将异常标识的状态设置为了true。
在终端设备第二次启动应用程序1时,由于下载标识和异常标识的状态均为true,则终端设备先下载修复文件,并在修复文件下载完成之后,再根据修复文件启动应用程序1,这样,可以保证应用程序1正常启动。
图4为本发明实施例提供的终端设备的结构示意图一。请参见图4,该终端设备可以包括获取模块11、判断模块12、下载模块13、启动模块14,其中,
所述获取模块11用于,在获取得到应用程序的启动指令之后,获取所述应用程序的下载标识的状态和异常标识的状态;
所述判断模块12用于,判断所述下载标识和所述异常标识是否均为第一状态,所述下载标识和所述异常标识为所述第一状态用于指示在终端设备上一次下载所述应用程序的修复文件的过程中,所述应用出现了异常;
所述下载模块13用于,在所述判断模块12判断所述下载标识和所述异常标识均为第一状态时,向服务器请求下载修复文件;相应的,所述启动模块14用于,在所述下载模块下载完成所述修复文件之后,根据所述修复文件启动所述应用程序;
在所述判断模块12判断所述下载标识和所述异常标识不同时为第一状态时,所述判断模块12还用于,判断是否需要向所述服务器请求下载修复文件,在所述判断模块12判断需要向所述服务器请求下载修复文件时,在所述下载模块13向服务器请求下载修复文件的同时,所述启动模块14启动所述应用程序。
本发明实施例提供的终端设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
图5为本发明实施例提供的终端设备的结构示意图二。在图4所示实施例的基础上,请参见图5,所述终端设备还包括设置模块15,其中,
所述设置模块15用于,在所述下载模块13下载完成所述修复文件之后,将所述下载标识设置为第二状态,将所述异常标识设置为第二状态。
在一种可能的实施方式中,所述判断模块12具体用于:
向所述服务器请求获取所述服务器中存储的最新修复文件的标识;
根据所述终端设备本地存储的修复文件的标识、和所述最新修复文件的标识,判断是否需要向所述服务器请求获取所述修复文件。
在另一种可能的实施方式中,所述终端设备还包括创建模块16,其中,
所述创建模块16用于,创建第一线程和第二线程,所述第一线程和所述第二线程为异步线程;
相应的,所述下载模块13具体用于,通过所述第一线程向所述服务器发送修复文件获取请求,并接收所述服务器发送的所述修复文件;
所述启动模块14具体用于,通过所述第二线程启动所述应用程序。
在另一种可能的实施方式中,所述获取模块11还用于,在所述下载模块在通过所述第一线程向所述服务器发送修复文件获取请求之后,获取所述下载标识的状态;
所述设置模块15还用于,在所述下载标识的状态为第二状态时,将所述下载标识设置为第一状态。
在另一种可能的实施方式中,所述终端设备还包括生成模块17,其中,
所述生成模块17用于,在所述下载模块下载完所述修复文件之后,生成所述修复文件的下载完成指令;
所述设置模块15还用于,根据所述下载完成指令,将所述下载标识设置为第二状态。
在另一种可能的实施方式中,所述生成模块17还用于,在所述启动模块14启动所述应用程序之后,在所述应用程序异常时,生成所述应用程序的异常指令;
所述设置模块15还用于,根据所述异常指令,将所述异常标识的状态设置为第一状态。
在另一种可能的实施方式中,所述修复文件中包括修复代码和验证信息,所述验证信息为所述服务器对所述服务器中的修复代码进行MD5加密、及通过预设私钥进行RSA加密得到的信息;所述终端设备还包括验证模块18,其中,在所述下载模块13下载完成所述修复文件之后,所述验证模块18用于:
通过预设公钥对应所述签名信息进行解密,得到第一MD5信息,所述预设公钥与所述预设私钥为非对称密码;
对所述修复文件中的修复代码进行MD5加密,得到第二MD5信息;
若所述第一MD5信息和所述第二MD5信息相同,则确定所述修复文件中的修复代码正确。
本发明实施例提供的终端设备可以执行上述方法实施例所示的技术方案,其实现原理以及有益效果类似,此处不再进行赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例方案的范围。

Claims (16)

1.一种应用程序修复方法,其特征在于,应用于终端设备,所述方法包括:
在获取得到应用程序的启动指令之后,获取所述应用程序的下载标识的状态和异常标识的状态;
判断所述下载标识和所述异常标识是否均为第一状态,所述下载标识和所述异常标识为所述第一状态用于指示在终端设备上一次下载所述应用程序的修复文件的过程中,所述应用出现了异常;
若是,则向服务器请求下载修复文件,并在所述修复文件下载完成之后,根据所述修复文件启动所述应用程序;
若否,判断是否需要向所述服务器请求下载修复文件,若是,则同时向服务器请求下载修复文件、及启动所述应用程序。
2.根据权利要求1所述的方法,其特征在于,在所述修复文件下载完成之后,还包括:
将所述下载标识设置为第二状态;
将所述异常标识设置为第二状态。
3.根据权利要求1所述的方法,其特征在于,判断是否需要向所述服务器请求获取修复文件,包括:
向所述服务器请求获取所述服务器中存储的最新修复文件的标识;
根据所述终端设备本地存储的修复文件的标识、和所述最新修复文件的标识,判断是否需要向所述服务器请求获取所述修复文件。
4.根据权利要求1所述的方法,其特征在于,同时向服务器请求获取修复文件、及启动所述应用程序,包括:
创建第一线程和第二线程,所述第一线程和所述第二线程为异步线程;
通过所述第一线程向所述服务器发送修复文件获取请求,并接收所述服务器发送的所述修复文件;
通过所述第二线程启动所述应用程序。
5.根据权利要求1所述的方法,其特征在于,在通过所述第一线程向所述服务器发送修复文件获取请求之后,还包括:
获取所述下载标识的状态;
若所述下载标识的状态为第二状态,则将所述下载标识设置为第一状态。
6.根据权利要求5所述的方法,其特征在于,在将所述下载标识设置为第一状态之后,还包括:
在下载完所述修复文件之后,生成所述修复文件的下载完成指令;
根据所述下载完成指令,将所述下载标识设置为第二状态。
7.根据权利要求1-6任一项所述的方法,其特征在于,在启动所述应用程序之后,还包括:
在所述应用程序异常时,生成所述应用程序的异常指令;
根据所述异常指令,将所述异常标识的状态设置为第一状态。
8.根据权利要求1-5任一项所述的方法,其特征在于,所述修复文件中包括修复代码和验证信息,所述验证信息为所述服务器对所述服务器中的修复代码进行MD5加密、及通过预设私钥进行RSA加密得到的信息;相应的,在所述修复文件下载完成之后,还包括:
通过预设公钥对应所述签名信息进行解密,得到第一MD5信息,所述预设公钥与所述预设私钥为非对称密码;
对所述修复文件中的修复代码进行MD5加密,得到第二MD5信息;
若所述第一MD5信息和所述第二MD5信息相同,则确定所述修复文件中的修复代码正确。
9.一种终端设备,其特征在于,包括获取模块、判断模块、下载模块、启动模块,其中,
所述获取模块用于,在获取得到应用程序的启动指令之后,获取所述应用程序的下载标识的状态和异常标识的状态;
所述判断模块用于,判断所述下载标识和所述异常标识是否均为第一状态,所述下载标识和所述异常标识为所述第一状态用于指示在终端设备上一次下载所述应用程序的修复文件的过程中,所述应用出现了异常;
所述下载模块用于,在所述判断模块判断所述下载标识和所述异常标识均为第一状态时,向服务器请求下载修复文件;相应的,所述启动模块用于,在所述下载模块下载完成所述修复文件之后,根据所述修复文件启动所述应用程序;
在所述判断模块判断所述下载标识和所述异常标识不同时为第一状态时,所述判断模块还用于,判断是否需要向所述服务器请求下载修复文件,在所述判断模块判断需要向所述服务器请求下载修复文件时,在所述下载模块向服务器请求下载修复文件的同时,所述启动模块启动所述应用程序。
10.根据权利要求9所述的终端设备,其特征在于,所述终端设备还包括设置模块,其中,
所述设置模块用于,在所述下载模块下载完成所述修复文件之后,将所述下载标识设置为第二状态,将所述异常标识设置为第二状态。
11.根据权利要求9所述的终端设备,其特征在于,所述判断模块具体用于:
向所述服务器请求获取所述服务器中存储的最新修复文件的标识;
根据所述终端设备本地存储的修复文件的标识、和所述最新修复文件的标识,判断是否需要向所述服务器请求获取所述修复文件。
12.根据权利要求9所述的终端设备,其特征在于,所述终端设备还包括创建模块,其中,
所述创建模块用于,创建第一线程和第二线程,所述第一线程和所述第二线程为异步线程;
相应的,所述下载模块具体用于,通过所述第一线程向所述服务器发送修复文件获取请求,并接收所述服务器发送的所述修复文件;
所述启动模块具体用于,通过所述第二线程启动所述应用程序。
13.根据权利要求10所述的终端设备,其特征在于,
所述获取模块还用于,在所述下载模块在通过所述第一线程向所述服务器发送修复文件获取请求之后,获取所述下载标识的状态;
所述设置模块还用于,在所述下载标识的状态为第二状态时,将所述下载标识设置为第一状态。
14.根据权利要求13所述的终端设备,其特征在于,所述终端设备还包括生成模块,其中,
所述生成模块用于,在所述下载模块下载完所述修复文件之后,生成所述修复文件的下载完成指令;
所述设置模块还用于,根据所述下载完成指令,将所述下载标识设置为第二状态。
15.根据权利要求14所述的终端设备,其特征在于,
所述生成模块还用于,在所述启动模块启动所述应用程序之后,在所述应用程序异常时,生成所述应用程序的异常指令;
所述设置模块还用于,根据所述异常指令,将所述异常标识的状态设置为第一状态。
16.根据权利要求9-13任一项所述的终端设备,其特征在于,所述修复文件中包括修复代码和验证信息,所述验证信息为所述服务器对所述服务器中的修复代码进行MD5加密、及通过预设私钥进行RSA加密得到的信息;所述终端设备还包括验证模块,其中,在所述下载模块下载完成所述修复文件之后,所述验证模块用于:
通过预设公钥对应所述签名信息进行解密,得到第一MD5信息,所述预设公钥与所述预设私钥为非对称密码;
对所述修复文件中的修复代码进行MD5加密,得到第二MD5信息;
若所述第一MD5信息和所述第二MD5信息相同,则确定所述修复文件中的修复代码正确。
CN201710295468.1A 2017-04-28 2017-04-28 应用程序修复方法及终端设备 Pending CN107168699A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710295468.1A CN107168699A (zh) 2017-04-28 2017-04-28 应用程序修复方法及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710295468.1A CN107168699A (zh) 2017-04-28 2017-04-28 应用程序修复方法及终端设备

Publications (1)

Publication Number Publication Date
CN107168699A true CN107168699A (zh) 2017-09-15

Family

ID=59812806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710295468.1A Pending CN107168699A (zh) 2017-04-28 2017-04-28 应用程序修复方法及终端设备

Country Status (1)

Country Link
CN (1) CN107168699A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678886A (zh) * 2017-10-09 2018-02-09 飞天诚信科技股份有限公司 一种保存、恢复应用程序数据的方法及终端设备
CN109343853A (zh) * 2018-08-17 2019-02-15 平安壹钱包电子商务有限公司 一种应用程序的异常识别方法及设备
CN109614257A (zh) * 2018-10-23 2019-04-12 平安科技(深圳)有限公司 程序异常的处理方法、装置、计算机存储介质及电子设备
CN112328422A (zh) * 2020-11-06 2021-02-05 深圳市锐尔觅移动通信有限公司 异常修复方法、装置、电子设备及存储介质
CN113326511A (zh) * 2021-06-25 2021-08-31 深信服科技股份有限公司 一种文件修复方法、系统、设备和介质
CN116701134A (zh) * 2022-10-14 2023-09-05 荣耀终端有限公司 一种数据处理方法和电子设备
CN117130825A (zh) * 2023-01-30 2023-11-28 荣耀终端有限公司 防止电子设备异常运行的方法及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045617A (zh) * 2015-07-03 2015-11-11 Tcl集团股份有限公司 一种Android系统的应用恢复方法及系统
CN105653454A (zh) * 2015-12-30 2016-06-08 浙江德景电子科技有限公司 一种基于android系统的应用程序异常的处理方法和处理装置
CN106155742A (zh) * 2016-06-30 2016-11-23 百度在线网络技术(北京)有限公司 组件更新处理方法及装置
CN106502665A (zh) * 2016-10-18 2017-03-15 广州视睿电子科技有限公司 一种应用程序的修复方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105045617A (zh) * 2015-07-03 2015-11-11 Tcl集团股份有限公司 一种Android系统的应用恢复方法及系统
CN105653454A (zh) * 2015-12-30 2016-06-08 浙江德景电子科技有限公司 一种基于android系统的应用程序异常的处理方法和处理装置
CN106155742A (zh) * 2016-06-30 2016-11-23 百度在线网络技术(北京)有限公司 组件更新处理方法及装置
CN106502665A (zh) * 2016-10-18 2017-03-15 广州视睿电子科技有限公司 一种应用程序的修复方法及装置

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107678886A (zh) * 2017-10-09 2018-02-09 飞天诚信科技股份有限公司 一种保存、恢复应用程序数据的方法及终端设备
CN107678886B (zh) * 2017-10-09 2020-02-21 飞天诚信科技股份有限公司 一种保存、恢复应用程序数据的方法及终端设备
CN109343853A (zh) * 2018-08-17 2019-02-15 平安壹钱包电子商务有限公司 一种应用程序的异常识别方法及设备
CN109614257A (zh) * 2018-10-23 2019-04-12 平安科技(深圳)有限公司 程序异常的处理方法、装置、计算机存储介质及电子设备
CN112328422A (zh) * 2020-11-06 2021-02-05 深圳市锐尔觅移动通信有限公司 异常修复方法、装置、电子设备及存储介质
CN113326511A (zh) * 2021-06-25 2021-08-31 深信服科技股份有限公司 一种文件修复方法、系统、设备和介质
CN113326511B (zh) * 2021-06-25 2024-04-09 深信服科技股份有限公司 一种文件修复方法、系统、设备和介质
CN116701134A (zh) * 2022-10-14 2023-09-05 荣耀终端有限公司 一种数据处理方法和电子设备
CN116701134B (zh) * 2022-10-14 2024-05-17 荣耀终端有限公司 一种数据处理方法和电子设备
CN117130825A (zh) * 2023-01-30 2023-11-28 荣耀终端有限公司 防止电子设备异常运行的方法及电子设备

Similar Documents

Publication Publication Date Title
CN107168699A (zh) 应用程序修复方法及终端设备
CN110116408B (zh) 机器人安全控制方法、机器人及计算机可读存储介质
CN105468393B (zh) 模块版本升级方法及终端装置
CN104052818A (zh) 一种移动终端的版本升级方法及装置
CN108234257B (zh) 家电设备的配对方法、家电设备及移动终端
CN105101169A (zh) 可信执行环境处理信息的方法、装置、终端及sim卡
CN110995825B (zh) 一种智能合约的发布方法、智能节点设备及存储介质
CN104156252A (zh) 一种应用软件安装方法及装置
CN114945021A (zh) 无人车远程调试方法、装置、系统及存储介质
CN105678192A (zh) 一种基于智能卡的密钥应用方法及应用装置
CN105871864A (zh) 移动终端身份认证方法及装置
CN112351471A (zh) 设备接入网关的方法、网关设备及计算机可读存储介质
CN111177709A (zh) 一种终端可信组件的执行方法、装置及计算机设备
CN112416391A (zh) 系统升级方法、装置、计算机设备和存储介质
CN105786636A (zh) 一种系统修复方法及装置
CN105678115A (zh) 一种软件认证方法及相关设备与系统
CN107798255B (zh) 一种刷机系统镜像的签名方法和装置
CN105471920A (zh) 一种验证码处理方法及装置
CN111882079A (zh) 一种调试方法、装置及系统
CN104917763B (zh) 一种pin码缓存方法
CN111523124A (zh) 一种云音箱固件保护方法及系统
CN107479923A (zh) 应用程序升级方法、装置及显示终端
CN110298166A (zh) 操作系统调试权限的控制方法、终端设备及调试设备
CN105915686A (zh) 一种移动终端的器件检测方法和装置
CN109167834A (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170915