CN107729128B - 应用程序数据恢复方法、装置、计算机设备和存储介质 - Google Patents

应用程序数据恢复方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN107729128B
CN107729128B CN201710608521.9A CN201710608521A CN107729128B CN 107729128 B CN107729128 B CN 107729128B CN 201710608521 A CN201710608521 A CN 201710608521A CN 107729128 B CN107729128 B CN 107729128B
Authority
CN
China
Prior art keywords
application
host process
memory
memory address
assisted
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.)
Active
Application number
CN201710608521.9A
Other languages
English (en)
Other versions
CN107729128A (zh
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.)
OneConnect Smart Technology Co Ltd
Original Assignee
OneConnect Smart 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 OneConnect Smart Technology Co Ltd filed Critical OneConnect Smart Technology Co Ltd
Priority to CN201710608521.9A priority Critical patent/CN107729128B/zh
Publication of CN107729128A publication Critical patent/CN107729128A/zh
Priority to PCT/CN2018/080051 priority patent/WO2019019672A1/zh
Application granted granted Critical
Publication of CN107729128B publication Critical patent/CN107729128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

本发明涉及一种应用程序数据恢复方法、装置、计算机设备和存储介质,所述方法包括:获取应用程序开启指令;根据所述应用程序开启指令开启应用主进程和应用辅助进程,所述应用主进程和所述应用辅助进程共享内存;检测所述应用主进程是否异常关闭;在检测到异常关闭时,保持所述应用辅助进程处于运行状态;当所述应用主进程再次开启时,从所述应用辅助进程中获取内存地址;将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复。避免了由于应用程序异常关闭导致应用程序数据丢失的情况,提高了应用程序数据的安全性。

Description

应用程序数据恢复方法、装置、计算机设备和存储介质
技术领域
本发明涉及数据处理技术领域,特别是涉及一种应用程序数据恢复方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的发展,各种各样的应用程序层出不穷。各种各样的应用程序的可以为用户提供多种多样的服务,为用户带来了极大的便利。
但是在应用程序的运行过程中,应用程序的部分数据需要在计算机的内存中存储或处理,当应用程序运行发生异常关闭时,内存中应用程序的相关数据也随之丢失,出现了在应用程序异常关闭时丢失数据的情况。
发明内容
基于此,有必要针对在应用程序异常关闭时容易丢失数据的问题,提供一种应用程序数据恢复方法、装置、计算机设备和存储介质。
一种应用程序数据恢复方法,所述方法包括:
获取应用程序开启指令;
根据所述应用程序开启指令开启应用主进程和应用辅助进程,所述应用主进程和所述应用辅助进程共享内存;
检测所述应用主进程是否异常关闭;
在检测到异常关闭时,保持所述应用辅助进程处于运行状态;
当所述应用主进程再次开启时,从所述应用辅助进程中获取内存地址;
将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复。
一种应用程序数据恢复装置,所述装置包括:
指令获取模块,用于获取应用程序开启指令;
进程开启模块,用于根据所述应用程序开启指令开启应用主进程和应用辅助进程,所述应用主进程和所述应用辅助进程共享内存;
异常检测模块,用于检测所述应用主进程是否异常关闭;
运行保持模块,用于在检测到异常关闭时,保持所述应用辅助进程处于运行状态;
地址获取模块,用于当所述应用主进程再次开启时,从所述应用辅助进程中获取内存地址;
地址写入模块,用于将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复。
一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取应用程序开启指令;
根据所述应用程序开启指令开启应用主进程和应用辅助进程,所述应用主进程和所述应用辅助进程共享内存;
检测所述应用主进程是否异常关闭;
在检测到异常关闭时,保持所述应用辅助进程处于运行状态;
当所述应用主进程再次开启时,从所述应用辅助进程中获取内存地址;
将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复。
一个或多个存储有计算机可执行指令的存储介质,所述计算机可执行指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:
获取应用程序开启指令;
根据所述应用程序开启指令开启应用主进程和应用辅助进程,所述应用主进程和所述应用辅助进程共享内存;
检测所述应用主进程是否异常关闭;
在检测到异常关闭时,保持所述应用辅助进程处于运行状态;
当所述应用主进程再次开启时,从所述应用辅助进程中获取内存地址;
将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复。
上述应用程序数据恢复方法、装置、计算机设备和存储介质,根据应用程序开启指令开启应用主进程和应用辅助进程后,在检测到应用主进程异常关闭时,保持应用辅助进程处于运行状态。其中,应用主进程和应用辅助进程共享内存,应用主进程和应用辅助进程的内存地址相同,在保持应用辅助进程处于运行状态时,保证了内存地址对应的内存空间中的应用程序数据不会丢失。当应用主进程再次开启时,将应用辅助进程中的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址获取异常关闭前的应用程序数据进行数据恢复,避免了由于应用程序异常关闭导致应用程序数据丢失的情况,提高了应用程序数据的安全性。
附图说明
图1为一个实施例中应用程序数据恢复方法的应用环境图;
图2为一个实施例中应用程序数据恢复系统中的终端的结构框图;
图3为一个实施例中应用程序数据恢复方法的流程示意图;
图4为一个实施例中开启共享内存的应用进程的步骤的流程示意图;
图5为一个实施例中再次开启应用主进程的步骤的流程示意图;
图6为一个实施例中比较内存地址的步骤的流程示意图;
图7为一个实施例中应用程序数据恢复装置的结构框图;
图8为一个实施例中进程开启模块的结构框图;
图9为另一个实施例中应用程序数据恢复装置的结构框图;
图10为再一个实施例中应用程序数据恢复装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为一个实施例中应用程序数据恢复方法的应用环境图。参照图1,该应用程序数据恢复方法应用于应用程序数据恢复系统。应用程序数据恢复系统包括终端110和服务器120,其中终端110通过网络与服务器120连接。终端110可以是固定终端或移动终端,固定终端具体可以是打印机、扫描仪和监控器中的至少一种,移动终端具体可以是平板电脑、智能手机、个人数据助理和数码相机中的至少一种。
图2为一个实施例中图1应用程序数据恢复系统中的终端110的内部结构示意图。如图2所示,该终端110包括通过系统总线连接的处理器、非易失性存储介质、内存储器和网络接口。终端110的处理器用于提供计算和控制能力,支撑整个终端110的运行,存储器用于存储数据、代码指令等,网络接口用于与服务器120进行网络通信。存储器上存储有至少一个计算机可执行指令,该计算机可执行指令可被处理器执行,以实现本申请实施例中提供的适用于终端110的应用程序数据恢复方法。存储器可包括磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random AccessMemory,RAM)等。例如,在一个实施例中,存储器包括非易失性存储介质及内存储器;非易失性存储介质存储有操作系统和计算机可执行指令,该计算机可执行指令可被处理器执行以实现上述的业务编号分配方法;内存储器为非易失性存储介质中的操作系统及计算机可执行指令提供高速缓存的运行环境。
如图3所示,在一个实施例中,提供一种应用程序数据恢复方法,本实施例以该方法应用在终端110来举例说明,该方法具体包括以下步骤:
S302,获取应用程序开启指令。
具体地,终端110中安装有应用程序,终端110的显示屏中显示应用程序的应用图标,用户通过应用图标开启终端110中安装的应用程序。服务器120为终端110安装的应用程序对应的服务器。终端110检测应用图标的点击操作,终端110在检测到应用图标的点击操作时,触发应用图标对应的应用程序开启指令。
S304,根据应用程序开启指令开启应用主进程和应用辅助进程,应用主进程和应用辅助进程共享内存。
具体地,终端110获取应用程序开启指令后,提取应用程序开启指令中的应用标识,开启应用标识对应的应用主进程和应用辅助进程。应用主进程和应用辅助进程的地址空间中的内存地址相同,应用主进程和应用辅助进程通过相同的内存地址共享内存地址对应的内存空间。其中,应用主进程对共享的内存中的应用程序数据进行数据处理,而应用辅助程序不对共享的内存中的应用程序数据进行任何数据处理。
S306,检测应用主进程是否异常关闭。
具体地,终端110在开启应用主进程和应用辅助进程后,终端110在检测到应用主进程关闭时,获取应用主进程对应的进程参数,将获取到的进程参数与应用主进程对应的处于正常范围的进程参数进行参数比较,通过参数比较确定应用主程序是否为异常关闭。
在一个实施例中,终端110在检测到应用主进程关闭时,可以获取应用主进程中的线程数量,将获取到的线程数量与预设线程数量相比较。当应用主进程的线程数量超过预设线程数量时,则终端110检测到的应用主程序关闭为应用主程序的异常关闭。
在一个实施例中,终端110在检测到应用主进程关闭时,还可以获取应用主进程对应的处理器占用率,将获取到的处理器占用率与预设占用率相比较。当检测到应用主进程对应的处理器占用率超过预设占用率,则终端110检测到的应用主程序关闭为应用主程序的异常关闭。
S308,在检测到异常关闭时,保持应用辅助进程处于运行状态。
具体地,终端110在检测到应用主进程异常关闭时,不对应用辅助进程做任何处理,保持应用辅助进程仍然处于运行状态。在应用辅助进程处于运行状态时,应用主进程和应用辅助进程所共享的内存中的应用程序数据不会丢失,仍然会被存储在共享的内存中。
在一个实施例中,S308之后还包括关闭应用辅助进程的步骤,该步骤具体包括以下步骤:监测在预设时间段内应用主进程是否再次开启;当监测到应用主进程再次开启时,从应用辅助进程中获取内存地址;当监测到应用主进程未再次开启,关闭应用主进程对应的应用辅助进程。
具体地,终端110在检测到应用主进程异常关闭后,开始计时,并监测应用主进程是否再次开启。当所计时间达到预设时间段时,终端110仍未监测到应用主进程再次开启时,终端110查询与该应用主进程对应的应用辅助进程,并关闭查询到的应用辅助进程。当监测到应用主进程再次开启时,从应用辅助进程中获取内存地址。
S310,当应用主进程再次开启时,从应用辅助进程中获取内存地址。
具体地,在应用主进程异常关闭后,终端110在检测到应用主进程再次开启时,确定应用辅助进程的地址空间,从应用辅助进程的地址空间获取内存地址。内存地址为存储应用程序数据的内存空间所对应的唯一标识。
在一个实施例中,在应用主进程和应用辅助程序中设置有相同的地址空间标识。终端110在根据应用程序开启指令开启应用主进程和应用辅助进程时,分别应用主进程和应用辅助进程中的地址空间标识对应的地址空间写入相同的内存地址。在应用主进程异常关闭后,终端110在检测到应用主进程再次开启时,获取再次开启的应用主进程中的地址空间标识。终端110根据获取的地址空间标识确定应用辅助进程中的地址空间,从确定的地址空间中获取内存地址。
S312,将获取到的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址进行应用程序数据恢复。
具体地,终端110在从处于运行状态的应用辅助进程中的地址空间获取到内存地址后,将获取到的内存地址写入再次开启的应用主进程中,使应用主进程根据写入的内存地址访问内存空间,从访问的内存空间中获取应用主进程异常关闭前的应用程序数据。终端110通过应用主进程获取应用主进程异常关闭前的应用程序数据,根据获取到的应用程序关闭数据恢复应用主进程异常关闭前应用程序页面。
本实施例中,根据应用程序开启指令开启应用主进程和应用辅助进程后,在检测到应用主进程异常关闭时,保持应用辅助进程处于运行状态。其中,应用主进程和应用辅助进程共享内存,应用主进程和应用辅助进程的内存地址相同,在保持应用辅助进程处于运行状态时,保证了内存地址对应的内存空间中的应用程序数据不会丢失。当应用主进程再次开启时,将应用辅助进程中的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址获取异常关闭前的应用程序数据进行数据恢复,避免了由于应用程序异常关闭导致应用程序数据丢失的情况,提高了应用程序数据的安全性。
如图4所示,在一个实施例中,S304具体包括开启共享内存的应用进程的步骤,该步骤具体包括以下内容:
S402,获取应用程序开启指令中的应用所需内存容量。
具体地,应用程序开启指令中包括应用程序对应的应用所需内存容量。终端110对应用程序开启指令进行解析,通过解析获取应用程序开启指令中的应用所需内存容量。
S404,根据应用所需内存容量确定内存空间,并获取确定的内存空间的内存地址。
具体地,终端110提取到应用所需内存容量后,根据应用所需内存容量确定空余的内存空间,并获取确定的内存空间的内存地址。
S406,开启应用主进程和应用辅助进程。
具体地,终端110提取应用程序开启指令中的应用标识,根据应用标识获取进程参数,根据进程参数开启与应用标识对应的应用主进程和应用辅助进程。
S408,将获取的内存地址分别写入应用主进程和应用辅助进程的地址空间。
具体地,终端110分别查询开启的应用主进程和应用辅助进程中的地址空间,将获取到的内存地址分别写入应用主进程和应用辅助进程的地址空间,以将获取到的内存地址对应的内存空间分配至应用主进程和应用辅助进程,使应用主进程和应用辅助进程共享获取到的内存地址对应的内存空间。
本实施例中,根据应用程序开启指令中的应用所需内存容量确定空闲的内存空间,将确定的内存空间对应的内存地址写入应用主进程和应用辅助进程的地址空间,保证应用主进程和应用辅助进程可以共享写入的内存地址对应的内存空间。
如图5所示,在一个实施例中,S308之后具体还包括再次开启应用主进程的步骤,该步骤具体包括以下内容:
S502,展示是否开启应用程序的确认窗口。
具体地,终端110在应用主进程异常关闭后,获取应用主进程对应的应用标识,根据应用标识生成是否再次开启应用程序的提示信息,将生成的提示信息展示在是否开启应用程序的确认窗口中。
S504,获取根据确认窗口中触发的应用主进程开启指令。
具体地,确认窗口中展示有是否开启应用程序的提示信息,确认窗口中设置有“是”和“否”两个按钮,用户通过终端110的输入设备点击确认窗口中的按钮触发与点击的按钮相应的指令。终端110检测到“是”按钮被点击,触发应用程序开启指令;终端110检测到“否”按钮被点击,取消展示确认窗口。
S506,根据应用程序开启指令再次开启应用主进程。
具体地,终端110在获取到触发的应用程序开启指令,根据触发的应用程序开启指令再次开启应用主进程,使应用程序开启指令中应用标识对应的应用程序处于正常运行状态。
本实施例中,在应用程序的应用主进程异常关闭后,展示是否开启应用程序的确认窗口,保证用户可根据需要来确定相应的是否开启应用程序的指令,简化了开启应用程序的操作。
如图6所示,在一个实施例中,S312之前具体包括比较内存地址的步骤,该步骤具体包括以下内容:
S602,提取再次开启的应用主进程中的内存地址。
具体地,终端110在再次开启应用主进程后,获取再次开启的应用主进程的地址空间标识,提取地址空间标识对应的地址空间中的内存地址。
S604,将提取到的内存地址与获取到的内存地址进行比较。
具体地,终端110根据与应用主进程中相同的地址空间标识从处于运行状态的应用辅助进程的地址空间中获取内存地址,将提取到的内存地址与获取到的内存地址进行比较,若提取到的内存地址与获取到的内存地址相同,则无需对应用主进程的地址空间中的内存地址进行替换。
S606,若提取到的内存地址与所述获取到的内存地址不相同,将获取到的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址进行应用程序数据恢复。
具体地,若提取到的内存地址与获取到的内存地址不相同,终端110将再次开启的应用主进程中的内存地址替换为从应用辅助进程中获取到的内存地址,应用主进程根据替换的内存地址访问对应的内存空间,读取内存空间中的应用程序数据。终端110根据应用主进程读取到的应用程序数据恢复应用主进程异常关闭之前应用程序的页面。
本实施例中,通过将再次开启的应用主进程和应用辅助进程中的内存地址进行比较,通过比较确定再次开启的应用主进程和应用辅助进程中的内存地址不相同时,将再次开启的应用主进程中的内存地址替换为应用辅助进程中的内存地址,保证再次开启的应用主进程中的内存地址的正确性,确保再次开启的应用主进程可以根据正确的内存地址进行应用程序数据恢复。
如图7所示,在一个实施例中,提供一种应用程序数据恢复装置700,该装置具体包括以下内容:指令获取模块702、进程开启模块704、异常检测模块706、运行保持模块708、地址获取模块710和地址写入模块712。
指令获取模块702,用于获取应用程序开启指令。
进程开启模块704,用于根据应用程序开启指令开启应用主进程和应用辅助进程,应用主进程和应用辅助进程共享内存。
异常检测模块706,用于检测应用主进程是否异常关闭。
运行保持模块708,用于在检测到异常关闭时,保持应用辅助进程处于运行状态。
地址获取模块710,用于当应用主进程再次开启时,从应用辅助进程中获取内存地址。
地址写入模块712,用于将获取到的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址进行应用程序数据恢复。
本实施例中,根据应用程序开启指令开启应用主进程和应用辅助进程后,在检测到应用主进程异常关闭时,保持应用辅助进程处于运行状态。其中,应用主进程和应用辅助进程共享内存,应用主进程和应用辅助进程的内存地址相同,在保持应用辅助进程处于运行状态时,保证了内存地址对应的内存空间中的应用程序数据不会丢失。当应用主进程再次开启时,将应用辅助进程中的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址获取异常关闭前的应用程序数据进行数据恢复,避免了由于应用程序异常关闭导致应用程序数据丢失的情况,提高了应用程序数据的安全性。
如图8所示,在一个实施例中,进程开启模块704具体包括以下内容:内存容量获取模块704a、内存空间确定模块704b、应用进程开启模块704c和内存地址写入模块704d。
内存容量获取模块704a,用于获取应用程序开启指令中的应用所需内存容量。
内存空间确定模块704b,用于根据应用所需内存容量确定内存空间,并获取确定的内存空间的内存地址。
应用进程开启模块704c,用于开启应用主进程和应用辅助进程。
内存地址写入模块704d,用于将获取的内存地址分别写入应用主进程和应用辅助进程的地址空间。
本实施例中,根据应用程序开启指令中的应用所需内存容量确定空闲的内存空间,将确定的内存空间对应的内存地址写入应用主进程和应用辅助进程的地址空间,保证应用主进程和应用辅助进程可以共享写入的内存地址对应的内存空间。
如图9所示,在一个实施例中,应用程序数据恢复装置700具体还包括:开启监测模块714、进程关闭模块716、窗口确认模块718和再次开启模块720。
开启监测模块714,用于监测在预设时间段内所述应用主进程是否再次开启。
进程关闭模块716,用于当监测到应用主进程未再次开启,关闭所述应用主进程对应的所述应用辅助进程。
窗口确认模块718,用于展示是否开启应用程序的确认窗口。
再次开启模块720,用于获取根据所述确认窗口中触发的应用程序开启指令;根据所述应用程序开启指令再次开启所述应用主进程。
地址获取模块710还用于当监测到应用主进程再次开启时,从应用辅助进程中获取内存地址。
本实施例中,在预设时间段内位检测到应用主进程的再次开启,关闭相应的应用辅助进程,避免应用辅助进程占用过多运算资源,降低运算资源的利用率。在应用程序的应用主进程异常关闭后,展示是否开启应用程序的确认窗口,保证用户可根据需要来确定相应的是否开启应用程序的指令,简化了开启应用程序的操作。
如图10所示,在一个实施例中,应用程序数据恢复装置700具体还包括以下内容:地址提取模块722和地址比较模块724。
地址提取模块722,用于提取再次开启的应用主进程中的内存地址。
地址比较模块724,用于将提取到的内存地址与获取到的内存地址进行比较。
地址写入模块712还用于若提取到的内存地址与获取到的内存地址不相同,将获取到的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址进行应用程序数据恢复。
本实施例中,通过将再次开启的应用主进程和应用辅助进程中的内存地址进行比较,通过比较确定再次开启的应用主进程和应用辅助进程中的内存地址不相同时,将再次开启的应用主进程中的内存地址替换为应用辅助进程中的内存地址,保证再次开启的应用主进程中的内存地址的正确性,确保再次开启的应用主进程可以根据正确的内存地址进行应用程序数据恢复。
一种计算机设备,计算机设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取应用程序开启指令;根据应用程序开启指令开启应用主进程和应用辅助进程,应用主进程和应用辅助进程共享内存;检测应用主进程是否异常关闭;在检测到异常关闭时,保持应用辅助进程处于运行状态;当应用主进程再次开启时,从应用辅助进程中获取内存地址;将获取到的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址进行应用程序数据恢复。
在一个实施例中,根据应用程序开启指令开启应用主进程和应用辅助进程,应用主进程和应用辅助进程共享内存,包括:获取应用程序开启指令中的应用所需内存容量;根据应用所需内存容量确定内存空间,并获取确定的内存空间的内存地址;开启应用主进程和应用辅助进程;将获取的内存地址分别写入应用主进程和应用辅助进程的地址空间。
在一个实施例中,在检测到异常关闭时,保持应用辅助进程处于运行状态之后,处理器执行计算机程序时还实现以下步骤:监测在预设时间段内应用主进程是否再次开启;当监测到应用主进程再次开启时,执行从应用辅助进程中获取内存地址的步骤;当监测到应用主进程未再次开启,关闭应用主进程对应的应用辅助进程。
在一个实施例中,在检测到异常关闭时,保持应用辅助进程处于运行状态之后,处理器执行计算机程序时还实现以下步骤:展示是否开启应用程序的确认窗口;获取根据确认窗口中触发的应用程序开启指令;根据应用程序开启指令再次开启应用主进程。
在一个实施例中,将获取到的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址进行应用程序数据恢复之前,处理器执行计算机程序时还实现以下步骤:提取再次开启的应用主进程中的内存地址;将提取到的内存地址与获取到的内存地址进行比较;若所述提取到的内存地址与所述获取到的内存地址不相同,将获取到的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址进行应用程序数据恢复。
本实施例中,根据应用程序开启指令开启应用主进程和应用辅助进程后,在检测到应用主进程异常关闭时,保持应用辅助进程处于运行状态。其中,应用主进程和应用辅助进程共享内存,应用主进程和应用辅助进程的内存地址相同,在保持应用辅助进程处于运行状态时,保证了内存地址对应的内存空间中的应用程序数据不会丢失。当应用主进程再次开启时,将应用辅助进程中的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址获取异常关闭前的应用程序数据进行数据恢复,避免了由于应用程序异常关闭导致应用程序数据丢失的情况,提高了应用程序数据的安全性。
一个或多个存储有计算机可执行指令的存储介质,计算机可执行指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:获取应用程序开启指令;根据应用程序开启指令开启应用主进程和应用辅助进程,应用主进程和应用辅助进程共享内存;检测应用主进程是否异常关闭;在检测到异常关闭时,保持应用辅助进程处于运行状态;当应用主进程再次开启时,从应用辅助进程中获取内存地址;将获取到的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址进行应用程序数据恢复。
在一个实施例中,根据应用程序开启指令开启应用主进程和应用辅助进程,应用主进程和应用辅助进程共享内存,包括:获取应用程序开启指令中的应用所需内存容量;根据应用所需内存容量确定内存空间,并获取确定的内存空间的内存地址;开启应用主进程和应用辅助进程;将获取的内存地址分别写入应用主进程和应用辅助进程的地址空间。
在一个实施例中,在检测到异常关闭时,保持应用辅助进程处于运行状态之后,处理器还执行以下步骤:监测在预设时间段内应用主进程是否再次开启;当监测到应用主进程再次开启时,从应用辅助进程中获取内存地址;当监测到应用主进程未再次开启,关闭应用主进程对应的应用辅助进程。
在一个实施例中,在检测到异常关闭时,保持应用辅助进程处于运行状态之后,处理器还执行以下步骤:展示是否开启应用程序的确认窗口;获取根据确认窗口中触发的应用程序开启指令;根据应用程序开启指令再次开启应用主进程。
在一个实施例中,将获取到的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址进行应用程序数据恢复之前,处理器还执行以下步骤:提取再次开启的应用主进程中的内存地址;将提取到的内存地址与获取到的内存地址进行比较;若提取到的内存地址与获取到的内存地址不相同,将获取到的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址进行应用程序数据恢复。
本实施例中,根据应用程序开启指令开启应用主进程和应用辅助进程后,在检测到应用主进程异常关闭时,保持应用辅助进程处于运行状态。其中,应用主进程和应用辅助进程共享内存,应用主进程和应用辅助进程的内存地址相同,在保持应用辅助进程处于运行状态时,保证了内存地址对应的内存空间中的应用程序数据不会丢失。当应用主进程再次开启时,将应用辅助进程中的内存地址写入再次开启的应用主进程,使应用主进程根据写入的内存地址获取异常关闭前的应用程序数据进行数据恢复,避免了由于应用程序异常关闭导致应用程序数据丢失的情况,提高了应用程序数据的安全性。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种应用程序数据恢复方法,所述方法包括:
获取应用程序开启指令;
根据所述应用程序开启指令开启应用主进程和应用辅助进程,所述应用主进程和所述应用辅助进程共享内存,所述应用主进程对共享的内存中的应用程序数据进行数据处理,所述应用辅助进程不对共享的内存中的应用程序数据进行任何数据处理;
检测所述应用主进程是否异常关闭;
在检测到异常关闭时,保持所述应用辅助进程处于运行状态;
当所述应用主进程再次开启时,从所述应用辅助进程中获取内存地址;
将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复。
2.根据权利要求1所述的方法,其特征在于,所述根据所述应用程序开启指令开启应用主进程和应用辅助进程,所述应用主进程和所述应用辅助进程共享内存,包括:
获取所述应用程序开启指令中的应用所需内存容量;
根据所述应用所需内存容量确定内存空间,并获取确定的内存空间的内存地址;
开启应用主进程和应用辅助进程;
将获取的内存地址分别写入所述应用主进程和所述应用辅助进程的地址空间。
3.根据权利要求2所述的方法,其特征在于,所述在检测到异常关闭时,保持所述应用辅助进程处于运行状态之后,还包括:
监测在预设时间段内所述应用主进程是否再次开启;
当监测到所述应用主进程再次开启时,执行所述从所述应用辅助进程中获取内存地址的步骤;
当监测到所述应用主进程未再次开启,关闭所述应用主进程对应的所述应用辅助进程。
4.根据权利要求2所述的方法,其特征在于,所述在检测到异常关闭时,保持所述应用辅助进程处于运行状态之后,还包括:
展示是否开启应用程序的确认窗口;
获取根据所述确认窗口中触发的应用程序开启指令;
根据所述应用程序开启指令再次开启所述应用主进程。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复之前,包括:
提取再次开启的应用主进程中的内存地址;
将提取到的内存地址与所述获取到的内存地址进行比较;
若所述提取到的内存地址与所述获取到的内存地址不相同,执行所述将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复的步骤。
6.一种应用程序数据恢复装置,其特征在于,所述装置包括:
指令获取模块,用于获取应用程序开启指令;
进程开启模块,用于根据所述应用程序开启指令开启应用主进程和应用辅助进程,所述应用主进程和所述应用辅助进程共享内存,所述应用主进程对共享的内存中的应用程序数据进行数据处理,所述应用辅助进程不对共享的内存中的应用程序数据进行任何数据处理;
异常检测模块,用于检测所述应用主进程是否异常关闭;
运行保持模块,用于在检测到异常关闭时,保持所述应用辅助进程处于运行状态;
地址获取模块,用于当所述应用主进程再次开启时,从所述应用辅助进程中获取内存地址;
地址写入模块,用于将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复。
7.根据权利要求6所述的装置,其特征在于,所述进程开启模块包括:
内存容量获取模块,用于获取所述应用程序开启指令中的应用所需内存容量;
内存空间确定模块,用于根据所述应用所需内存容量确定内存空间,并获取确定的内存空间的内存地址;
应用进程开启模块,用于开启应用主进程和应用辅助进程;
内存地址写入模块,用于将获取的内存地址分别写入所述应用主进程和所述应用辅助进程的地址空间。
8.根据权利要求6或7所述的装置,其特征在于,所述装置还包括:
地址提取模块,用于提取再次开启的应用主进程中的内存地址;
地址比较模块,用于将提取到的内存地址与所述获取到的内存地址进行比较;
所述地址写入模块还用于若所述提取到的内存地址与所述获取到的内存地址不相同,执行所述将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复的步骤。
9.一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取应用程序开启指令;
根据所述应用程序开启指令开启应用主进程和应用辅助进程,所述应用主进程和所述应用辅助进程共享内存,所述应用主进程对共享的内存中的应用程序数据进行数据处理,所述应用辅助进程不对共享的内存中的应用程序数据进行任何数据处理;
检测所述应用主进程是否异常关闭;
在检测到异常关闭时,保持所述应用辅助进程处于运行状态;
当所述应用主进程再次开启时,从所述应用辅助进程中获取内存地址;
将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复。
10.一个或多个存储有计算机可执行指令的存储介质,所述计算机可执行指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:
获取应用程序开启指令;
根据所述应用程序开启指令开启应用主进程和应用辅助进程,所述应用主进程和所述应用辅助进程共享内存,所述应用主进程对共享的内存中的应用程序数据进行数据处理,所述应用辅助进程不对共享的内存中的应用程序数据进行任何数据处理;
检测所述应用主进程是否异常关闭;
在检测到异常关闭时,保持所述应用辅助进程处于运行状态;
当所述应用主进程再次开启时,从所述应用辅助进程中获取内存地址;
将获取到的内存地址写入再次开启的应用主进程,使所述应用主进程根据写入的内存地址进行应用程序数据恢复。
CN201710608521.9A 2017-07-24 2017-07-24 应用程序数据恢复方法、装置、计算机设备和存储介质 Active CN107729128B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710608521.9A CN107729128B (zh) 2017-07-24 2017-07-24 应用程序数据恢复方法、装置、计算机设备和存储介质
PCT/CN2018/080051 WO2019019672A1 (zh) 2017-07-24 2018-03-22 应用程序数据恢复方法和装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710608521.9A CN107729128B (zh) 2017-07-24 2017-07-24 应用程序数据恢复方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN107729128A CN107729128A (zh) 2018-02-23
CN107729128B true CN107729128B (zh) 2019-09-24

Family

ID=61201121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710608521.9A Active CN107729128B (zh) 2017-07-24 2017-07-24 应用程序数据恢复方法、装置、计算机设备和存储介质

Country Status (2)

Country Link
CN (1) CN107729128B (zh)
WO (1) WO2019019672A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729128B (zh) * 2017-07-24 2019-09-24 深圳壹账通智能科技有限公司 应用程序数据恢复方法、装置、计算机设备和存储介质
CN111198812B (zh) * 2018-11-20 2024-02-09 深圳市优必选科技有限公司 一种应用故障检测方法、应用故障检测装置及终端设备
CN113568748B (zh) * 2021-07-27 2024-06-18 Oppo广东移动通信有限公司 一种应用进程处理方法、装置、存储介质及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955817A (zh) * 2011-08-30 2013-03-06 腾讯数码(深圳)有限公司 一种基于共享内存的对象管理与恢复方法及系统
CN104216771A (zh) * 2013-05-30 2014-12-17 华为技术有限公司 软件程序的重启方法及装置
CN104714861A (zh) * 2013-12-16 2015-06-17 阿里巴巴集团控股有限公司 场景恢复数据保存方法、应用运行方法、装置及系统
CN105335171A (zh) * 2014-06-24 2016-02-17 北京奇虎科技有限公司 应用程序常驻操作系统后台的方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102308285B (zh) * 2011-07-26 2013-08-28 华为技术有限公司 一种应用程序的内存错误修复方法
CN105204977A (zh) * 2014-06-30 2015-12-30 中兴通讯股份有限公司 一种系统异常的捕获方法、主系统、影子系统及智能设备
CN107729128B (zh) * 2017-07-24 2019-09-24 深圳壹账通智能科技有限公司 应用程序数据恢复方法、装置、计算机设备和存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102955817A (zh) * 2011-08-30 2013-03-06 腾讯数码(深圳)有限公司 一种基于共享内存的对象管理与恢复方法及系统
CN104216771A (zh) * 2013-05-30 2014-12-17 华为技术有限公司 软件程序的重启方法及装置
CN104714861A (zh) * 2013-12-16 2015-06-17 阿里巴巴集团控股有限公司 场景恢复数据保存方法、应用运行方法、装置及系统
CN105335171A (zh) * 2014-06-24 2016-02-17 北京奇虎科技有限公司 应用程序常驻操作系统后台的方法及装置

Also Published As

Publication number Publication date
CN107729128A (zh) 2018-02-23
WO2019019672A1 (zh) 2019-01-31

Similar Documents

Publication Publication Date Title
CN104461858B (zh) 软件兼容性预先测试方法与其系统
CN103984579B (zh) 多设备间分享当前应用程序实时运行状态的方法
CN107729128B (zh) 应用程序数据恢复方法、装置、计算机设备和存储介质
CN105511911B (zh) 系统固件升级包的生成方法及装置
US20100229022A1 (en) Common troubleshooting framework
CN107783795A (zh) 应用程序启动方法、装置、计算机设备和存储介质
CN109766205A (zh) 异常处理方法、装置、计算机设备和存储介质
CN102541620B (zh) 无缝应用集成设备和方法
CN108510287A (zh) 客户回访的判断方法、电子装置及计算机可读存储介质
CN110502345A (zh) 一种过载保护方法、装置、计算机设备及存储介质
CN108874441A (zh) 一种板卡配置方法、装置、服务器和存储介质
CN110262838A (zh) 一种程序崩溃的处理方法、装置、终端及存储介质
CN109240928A (zh) 一种测试方法、装置、设备及存储介质
CN112134707B (zh) 一种针对多个kerberos集群的并发访问方法和装置
CN104598214A (zh) 油气管道系统应用业务的定时任务管理方法及装置
CN104346165A (zh) 信息处理设备、信息处理方法、存储介质和信息处理系统
CN106685744A (zh) 一种故障排除方法、装置及系统
CN107688479A (zh) Android系统网络集群及其搭建的方法、Android系统网络集群数据处理的方法和系统
CN113495764B (zh) 自动化数据提取方法、装置、计算机设备和存储介质
CN109783261A (zh) 终端应用的崩溃处理方法及装置、电子设备、存储介质
CN115981979A (zh) 日志数据处理方法、装置、设备、介质和计算机程序产品
CN108959879A (zh) 应用程序的数据获取方法、装置、电子设备及服务器
CN111786991B (zh) 基于区块链的平台认证登录方法及相关装置
CN107977284A (zh) 一种数据处理方法、装置、服务器和介质
CN105279063B (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

Effective date of registration: 20180531

Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant after: Shenzhen one ledger Intelligent Technology Co., Ltd.

Address before: 200000 Xuhui District, Shanghai Kai Bin Road 166, 9, 10 level.

Applicant before: Shanghai Financial Technologies Ltd

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: 518000 Room 201, building A, 1 front Bay Road, Shenzhen Qianhai cooperation zone, Shenzhen, Guangdong

Applicant after: Shenzhen one ledger Intelligent Technology Co., Ltd.

Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Applicant before: Shenzhen one ledger Intelligent Technology Co., Ltd.

CB02 Change of applicant information
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1251059

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant