CN115687820A - 页面恢复方法、装置及存储介质 - Google Patents
页面恢复方法、装置及存储介质 Download PDFInfo
- Publication number
- CN115687820A CN115687820A CN202211236060.4A CN202211236060A CN115687820A CN 115687820 A CN115687820 A CN 115687820A CN 202211236060 A CN202211236060 A CN 202211236060A CN 115687820 A CN115687820 A CN 115687820A
- Authority
- CN
- China
- Prior art keywords
- page
- information
- callback
- service data
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000011084 recovery Methods 0.000 title claims abstract description 43
- 238000012546 transfer Methods 0.000 claims abstract description 46
- 230000009191 jumping Effects 0.000 claims abstract description 16
- 230000001960 triggered effect Effects 0.000 claims abstract description 14
- 238000013507 mapping Methods 0.000 claims description 49
- 230000004044 response Effects 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 9
- 230000006378 damage Effects 0.000 claims description 9
- 238000009877 rendering Methods 0.000 claims description 8
- 238000001514 detection method Methods 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 238000010276 construction Methods 0.000 abstract description 4
- 230000008569 process Effects 0.000 description 12
- 239000000284 extract Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011022 operating instruction Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
- Electrically Operated Instructional Devices (AREA)
- Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种页面恢复方法、装置及存储介质,方法包括:响应获取的用户操作指令,创建出至少一个页面;在至少一个页面的分别对应的创建周期内,通过回调实时提取至少一个页面对应的相关数据并存储在本地;若检测到程序崩溃,则从至少一个页面跳转到中转页面;响应用户在中转页面触发的恢复指令,利用相关数据恢复得到至少一个页面。由于本方案在当前的至少一个页面的构建周期内,实时的提取保存了其对应的相关数据,进而在程序崩溃后,通过页面跳转及时的恢复了当前的至少一个页面,所以本方案可以在软件崩溃后及时的保存当前页面的全部数据,无需重新加载,提高了使用效率。
Description
技术领域
本发明实施例涉及前端技术领域,尤其涉及一种页面恢复方法、装置及存储介质。
背景技术
当前Android设备上软件在正常运行期间发生意外的程序错误导致软件崩溃中断时,软件会向用户弹出崩溃弹框提示程序出现了错误,软件即重新启动。相关的应用程序崩溃重启的技术中,应用程序崩溃重启会导致用户浏览的页面以及页面上的内存数据随之丢失,重启之后应用程序从第一个启动页面重新加载,之前在页面上的用户数据也随之丢失,用户需要重新加载页面并且在页面上添加数据。所以,技术问题是软件在崩溃后,造成软件的当前页面数据全部丢失,使得用户需要重新加载数据,降低使用效率。
发明内容
本发明实施例提供的一种页面恢复方法、装置及存储介质,可以在软件崩溃后及时的保存当前页面的全部数据,无需重新加载,提高了使用效率。
本发明的技术方案是这样实现的:
本发明实施例提供了一种页面恢复方法,包括:
响应获取的用户操作指令,创建出至少一个页面;
在所述至少一个页面的分别对应的创建周期内,通过回调实时提取所述至少一个页面对应的相关数据并存储在本地;
若检测到程序崩溃,则从所述至少一个页面跳转到中转页面;
响应用户在所述中转页面触发的恢复指令,利用所述相关数据恢复得到所述至少一个页面。
上述方案中,所述相关数据包括:所述至少一个页面对应的堆栈信息和至少一个业务数据;
所述在所述至少一个页面的分别对应的创建周期内,通过回调实时提取所述至少一个页面对应的相关数据并存储在本地,包括:
在所述至少一个页面的分别对应的创建周期内,通过回调实时提取得到所述至少一个页面对应的所述堆栈信息及所述至少一个业务数据,并将所述堆栈信息及所述至少一个业务数据存储在本地;所述至少一个业务数据是服务器发送的。
上述方案中,所述通过回调实时提取得到所述至少一个页面对应的所述堆栈信息及所述至少一个业务数据,并将所述堆栈信息及所述至少一个业务数据存储在本地,包括:
按照所述至少一个页面的创建次序实时提取所述至少一个页面对应的至少一个页面标识信息,及所述至少一个业务数据;
建立所述至少一个业务数据分别与对应的页面标识信息之间的至少一个映射信息;
基于一定次序的所述至少一个页面标识信息构建所述堆栈信息;
将所述堆栈信息和所述至少一个映射信息存储在本地。
上述方案中,所述若检测到程序崩溃,则从所述至少一个页面跳转到中转页面,包括:
若检测到第一类程序崩溃,则形成回调消息输送给本地的预设独立子进程;
通过所述预设独立子进程响应所述回调消息,基于所述堆栈信息和所述至少一个映射信息形成所述中转页面完成所述至少一个页面的跳转。
上述方案中,所述若检测到程序崩溃,则从所述至少一个页面跳转到中转页面,包括:
若检测到第二类程序崩溃,则通过预设独立子进程基于所述堆栈信息和所述至少一个映射信息形成所述中转页面完成所述至少一个页面的跳转。
上述方案中,所述利用所述相关数据恢复得到所述至少一个页面,包括:
按照所述堆栈信息中所述至少一个页面标识信息的顺序,在所述至少一个映射信息中依次调取所述至少一个业务数据进行渲染,得到所述至少一个页面。
上述方案中,所述响应获取的用户操作指令,创建出至少一个页面,包括:
响应获取的所述用户操作指令,向服务器发送请求信息;
接收所述服务器响应所述请求信息,反馈的所述至少一个页面对应的至少一个业务数据;
利用所述至少一个业务数据进行渲染,创建得到所述至少一个页面。
上述方案中,所述在所述至少一个页面的分别对应的创建周期内,通过回调实时提取所述至少一个页面对应的相关数据并存储在本地之后,所述方法还包括:
响应获取的用户关闭指令,将所述至少一个页面中的第N个页面销毁;N为大于等于1的整数;
在所述第N个页面的销毁周期内,根据所述第N个页面对应的第N个页面标识信息,在本地删除所述至少一个映射信息中所述第N个页面对应的第N个映射信息;
在本地删除所述堆栈信息中所述第N个页面对应的所述第N个页面标识信息,以形成新的堆栈信息进行存储。
本发明实施例还提供了一种页面恢复装置,包括:
响应创建单元,用于响应获取的用户操作指令,创建出至少一个页面;
回调存储单元,用于在所述至少一个页面的分别对应的创建周期内,通过回调实时提取所述至少一个页面对应的相关数据并存储在本地;
检测单元,用于若检测到程序崩溃,则从所述至少一个页面跳转到中转页面;
恢复单元,用于响应用户在所述中转页面触发的恢复指令,利用所述相关数据恢复得到所述至少一个页面。
本发明实施例还提供了一种页面恢复装置,包括存储器和处理器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时实现上述方法中的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
本发明实施例中,响应获取的用户操作指令,创建出至少一个页面;在至少一个页面的分别对应的创建周期内,通过回调实时提取至少一个页面对应的相关数据并存储在本地;若检测到程序崩溃,则从至少一个页面跳转到中转页面;响应用户在中转页面触发的恢复指令,利用相关数据恢复得到至少一个页面。由于本方案在当前的至少一个页面的构建周期内,实时的提取保存了其对应的相关数据,进而在程序崩溃后,通过页面跳转及时的恢复了当前的至少一个页面,所以本方案可以在软件崩溃后及时的保存当前页面的全部数据,无需重新加载,提高了使用效率。
附图说明
图1为本发明实施例提供的页面恢复方法的一个可选的流程示意图;
图2为本发明实施例提供的页面恢复方法的一个可选的效果示意图;
图3为本发明实施例提供的页面恢复方法的一个可选的效果示意图;
图4为本发明实施例提供的页面恢复方法的一个可选的流程示意图;
图5为本发明实施例提供的页面恢复方法的一个可选的流程示意图;
图6为本发明实施例提供的页面恢复方法的一个可选的流程示意图;
图7为本发明实施例提供的页面恢复方法的一个可选的流程示意图;
图8为本发明实施例提供的页面恢复方法的一个可选的流程示意图;
图9为本发明实施例提供的页面恢复方法的一个可选的流程示意图;
图10为本发明实施例提供的页面恢复装置的结构示意图;
图11为本发明实施例提供的页面恢复装置的一种硬件实体示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和实施例对本发明的技术方案进一步详细阐述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
如果发明文件中出现“第一/第二”的类似描述则增加以下的说明,在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
本发明实施例提供了一种页面恢复方法,请参阅图1,为本发明实施例提供的页面恢复方法的一个可选的流程示意图,将结合图1示出的步骤进行说明。
S101、响应获取的用户操作指令,创建出至少一个页面。
本发明实施例中,客户端响应获取的用户操作指令,创建出至少一个页面。
本发明实施例中,用户在终端开启客户端之后,向客户端发送操作指令,客户端响应该操作指令,从服务器获取至少一个页面的相关数据,利用该相关数据进行渲染,创建出至少一个页面。
本发明实施例中,用户在终端开启客户端之后,依次向客户端发送至少一个页面对应的至少一个操作指令,客户端依次响应至少一个操作指令,向服务器依次发送至少一个请求指令,服务器响应至少一个请求指令向客户端反馈至少一个业务数据。客户端利用该至少一个业务数据进行渲染,创建出至少一个页面。
示例性的,结合图2,用户可以通过客户端创建两个页面,一个页面是需求信息页面,另一个是物品列表页面。其中,用户可以在需求信息页面中编辑对尺寸、重量和功能的需求限制。本发明实施例中,需求信息页面和物品列表页面的创建先后顺序不做限制。
S102、在至少一个页面的分别对应的创建周期内,通过回调实时提取至少一个页面对应的相关数据并存储在本地。
本发明实施例中,客户端在至少一个页面的分别对应的创建周期内,通过回调实时提取至少一个页面对应的相关数据并存储在本地。
本发明实施例中,客户端在至少一个页面分别对应的创建周期内,通过回调实时提取得到至少一个页面对应的至少一个业务数据,及至少一个页面的堆栈信息。客户端将该至少一个业务数据和堆栈信息存储在本地。
本发明实施例中,当客户端将至少一个页面的至少一个业务数据存储在本地之后。客户端接收到用户的关闭指令,将至少一个页面中的第N个页面销毁。则客户端会在本地将第N个页面对应的第N个业务数据删除。其中,N为大于等于1的整数。
本发明实施例中,用户在终端点击客户端图标开始启动客户端。在此阶段客户端开始调用插件进行初始化操作,为接下来的流程做准备工作。首先通过Application#registerActivityLifecycleCallbacks方法注册整个应用程序页面生命周期回调方法,感知应用程序每个页面的创建以及销毁。接下来会通过Thread#setDefaultUncaughtExceptionHandler方法注册Java层应用程序崩溃发生的回调方法,通过该接口可以感知应用程序Java层代码出现了崩溃。同时通过NativeCrash.cpp本地接口初始化BreakPad工具并且添加崩溃回调方法,BreakPad可以实现应用程序Native层代码异常出现的崩溃问题。其中BreakPad:即开源的一款抓取应用程序崩溃报告的工具。Java:是一种计算机开发语言,在Android应用程序开发中会使用到。Native:Android应用程序中使用C++语言开发的系统模块。
在客户端正常使用时,用户会打开或关闭一个或多个的浏览页面,透过注册的ActivityLifecycleCallbacks回调方法可以感知到每个页面的打开和关闭,在每个页面onCreate生命周期内会将当前页面的Intent数据存储到本地的RecoveryStore(页面数据存储),在onDestroy生命周期内会从RecoveryStore里面移除当前页面的Intent数据。通过添加和移除保持RecoveryStore里面存储的数据是用户正确打开页面的数据,以便用户恢复用户页面数据。OnCreate:它是在Android应用程序中页面被创建的一种标识,出现onCreate即表示一个页面被创建打开了。OnDestroy:它是在Android应用程序中页面被关闭的一种标识,出现onDestroy即表示一个页面被关闭销毁了。
S103、若检测到程序崩溃,则从至少一个页面跳转到中转页面。
本发明实施例中,若客户端检测到程序崩溃,则从至少一个页面跳转到中转页面。
本发明实施例中,客户端可以利用程序崩溃抓取工具或Android自带的UnCaughtExceptionHandler插件检测程序崩溃。
本发明实施例中,若程序发生崩溃,客户端从本地提取相关数据,构建出中转页面,利用中转页面持有该相关数据,完成至少一个页面的跳转。
其中,程序崩溃可以包括:Native层程序崩溃和Java层程序崩溃。
本发明实施例中,若程序发生崩溃,客户端的预设独立子进程从本地提取堆栈信息,及至少一个业务数据构建出中转页面。利用中转页面持有堆栈信息及至少一个业务数据,完成至少一个页面的跳转。
S104、响应用户在中转页面触发的恢复指令,利用相关数据恢复得到至少一个页面。
本发明实施例中,客户端响应用户在中转页面触发的恢复指令,利用相关数据恢复得到至少一个页面。
本发明实施例中,客户端响应用户在终端页面触发的恢复指令,利用堆栈信息按照顺序调取中转页面中的至少一个业务数据进行渲染,得到至少一个页面。
示例性的,结合图3,中转页面中可以包括:“重启软件”控件和“恢复页面”控件。用户可以在中转页面中点击“恢复页面”控件,以触发恢复指令,利用相关数据恢复得到至少一个页面。
本发明实施例中,响应获取的用户操作指令,创建出至少一个页面;在至少一个页面的分别对应的创建周期内,通过回调实时提取至少一个页面对应的相关数据并存储在本地;若检测到程序崩溃,则从至少一个页面跳转到中转页面;响应用户在中转页面触发的恢复指令,利用相关数据恢复得到至少一个页面。由于本方案在当前的至少一个页面的构建周期内,实时的提取保存了其对应的相关数据,进而在程序崩溃后,通过页面跳转及时的恢复了当前的至少一个页面,所以本方案可以在软件崩溃后及时的保存当前页面的全部数据,无需重新加载,提高了使用效率。
在一些实施例中,参见图4,图4为本发明实施例提供的页面恢复方法的一个可选的流程示意图,图1示出的S101至S102还可以通过S105至S108实现,将结合各步骤进行说明。
S105、响应获取的用户操作指令,向服务器发送请求信息。
本发明实施例中,客户端响应获取的用户操作指令,向服务器发送请求信息。
本发明实施例中,客户端依次获取用户的至少一个操作指令,响应该至少一个操作指令,按照次序向服务器发送请求信息。
其中,用户操作指令可以为打开页面的操作指令。
S106、接收服务器响应请求信息,反馈的至少一个页面对应的至少一个业务数据。
本发明实施例中,客户端接收服务器响应请求信息,反馈的至少一个页面对应的至少一个业务数据。
本发明实施例中,客户端接收服务器响应至少一个请求信息,反馈的至少一个页面对应的至少一个业务数据。
其中,业务数据可以包括:文本信息、图像信息、和视频信息。及页面中各个元素的位置信息。在一些实施例中,业务数据还可以包括:用户在对应页面的开启期间内在该页面编辑的任意类型的信息。示例性的,任意类型的信息可以包括:用户在对应页面填写的表单信息。
S107、利用至少一个业务数据进行渲染,创建得到至少一个页面。
本发明实施例中,客户端利用至少一个业务数据进行渲染,创建得到至少一个页面。
本发明实施例中,业务数据可以包括:对应页面的长、宽信息,中心点的位置信息,及对应页面内的元素信息,以及各个元素的位置信息。客户端利用各个元素的位置信息,将各个元素信息渲染在对应的位置,得到对应的页面。其中,各个元素信息可以包括:文本信息、图像信息及视频信息。
S108、在至少一个页面的分别对应的创建周期内,通过回调实时提取得到至少一个页面对应的堆栈信息及至少一个业务数据,并将堆栈信息及至少一个业务数据存储在本地。
本发明实施例中,客户端在至少一个页面的分别对应的创建周期内,通过回调实时提取得到至少一个页面对应的堆栈信息及至少一个业务数据,并将堆栈信息及至少一个业务数据存储在本地。
至少一个业务数据是服务器发送的。
本发明实施例中,客户端通过在至少一个页面的分别对应的创建周期内,通过回调实时提取得到至少一个页面对应的堆栈信息及至少一个业务数据,并将堆栈信息及至少一个业务数据存储在本地,当程序崩溃时,可以利用在本地调取的堆栈信息和业务数据进行页面恢复,无需用户重新加载数据,提高了使用效率。
在一些实施例中,参见图5,图5为本发明实施例提供的页面恢复方法的一个可选的流程示意图,图4示出的S108还可以通过S109至S112实现,将结合各步骤进行说明。
S109、在至少一个页面的分别对应的创建周期内,按照至少一个页面的创建次序实时提取至少一个页面对应的至少一个页面标识信息,及至少一个业务数据。
本发明实施例中,客户端在至少一个页面的分别对应的创建周期内,按照至少一个页面的创建次序实时提取至少一个页面对应的至少一个页面标识信息,及至少一个业务数据。
本发明实施例中,服务器在发送页面对应的业务数据时,将页面标识信息一同下发给客户端。客户端也可以在创建的页面中获取对应的页面标识信息。
示例性的,结合图2,页面标识信息可以为:“需求信息页面”和“物品列表页面”。在其他实施例中,页面标识信息也可以为数字或者字母组成的字符串。
S110、建立至少一个业务数据分别与对应的页面标识信息之间的至少一个映射信息。
本发明实施例中,客户端建立至少一个业务数据分别与对应的页面标识信息之间的至少一个映射信息。
示例性的,客户端可以提取得到需求信息业务数据,及物品列表业务数据。以及需求信息业务数据对应的“需求信息页面”的标识信息,物品列表业务数据对应的“物品列表页面”的标识信息。客户端建立需求信息业务数据与“需求信息页面”的第一映射信息,客户端建立物品列表业务数据与物品列表页面”的第二映射信息,进而得到两个映射信息。
S111、基于一定次序的至少一个页面标识信息构建堆栈信息。
本发明实施例中,客户端基于一定次序的至少一个页面标识信息构建堆栈信息。
本发明实施例中,堆栈信息是一种数据结构,而且是一种数据项按序排列的数据结构,只能在一端(称为栈顶(top))对数据项进行插入页面标识信息和删除页面标识信息。堆栈属于随机存取存储器(Random Access Memory,RAM)的一部分,主要功能是暂时存放数据和地址,通常用来保护断点和现场。
S112、将堆栈信息和至少一个映射信息存储在本地。
本发明实施例中,客户端将堆栈信息和至少一个映射信息存储在本地。
本发明实施例中,客户端可以将堆栈信息和至少一个映射信息存储到RecoveryStore。
本发明实施例中,客户端将堆栈信息和至少一个映射信息进行本地存储,当程序崩溃时,可以利用堆栈信息中的页面标识信息快速的调取映射信息中对应的业务数据进行页面恢复,提高了使用效率。
在一些实施例中,参见图6,图6为本发明实施例提供的页面恢复方法的一个可选的流程示意图,图4示出的S103至S104还可以通过S113至S115实现,将结合各步骤进行说明。
S113、若检测到第一类程序崩溃,则形成回调消息输送给本地的预设独立子进程。
本发明实施例中,若客户端检测到第一类程序崩溃,则形成回调消息输送给本地的预设独立子进程。
其中,第一类程序崩溃可以为Native层程序崩溃。
本发明实施例中,在客户端出现Native崩溃问题时,崩溃抓取引擎BreakPad则会感知到应用程序出现了崩溃。此时NativeCrash.cpp接口会接收到崩溃发生的回调信息,通过Socket通信的方式将消息发送到CrashService里面,CrashService是独立于应用程序进程外,是一个单独子进程。CrashService接收到崩溃消息之后,会发起跳转崩溃中转页面行为。
S114、通过预设独立子进程响应回调消息,基于堆栈信息和至少一个业务数据形成中转页面完成至少一个页面的跳转。
本发明实施例中,客户端通过预设独立子进程响应回调消息,基于堆栈信息和至少一个业务数据形成中转页面完成至少一个页面的跳转。
本发明实施例中,预设独立子进程首先会从RecoveryStore内获取客户端在崩溃之前保存的堆栈信息以及至少一个映射信息。中转页面会携带堆栈信息以及至少一个映射信息,通过startActivity方式进行跳转,此时中转页面会持有堆栈信息以及至少一个映射信息。中转页面是运行在独立子进程中的一个页面,所以,当客户端主进程发生崩溃后,中转页面可以正常显示。
S115、响应用户在中转页面触发的恢复指令,按照堆栈信息中至少一个页面标识信息的顺序,在至少一个映射信息中依次调取至少一个业务数据进行渲染,得到至少一个页面。
本发明实施例中,客户端响应用户在中转页面触发的恢复指令,按照堆栈信息中至少一个页面标识信息的顺序,在至少一个映射信息中依次调取至少一个业务数据进行渲染,得到至少一个页面。
本发明实施例中,当客户端出现Native崩溃问题时,崩溃抓取引擎BreakPad则会感知到应用程序出现了崩溃。此时NativeCrash.cpp接口会接收到崩溃发生的回调信息,通过Socket通信的方式将消息发送到CrashService里面,CrashService是独立于应用程序进程外,是一个单独子进程,不会受到程序崩溃影响进而可以进行页面跳转和页面恢复,提高了页面恢复的成功率。
在一些实施例中,参见图7,图7为本发明实施例提供的页面恢复方法的一个可选的流程示意图,图6示出的S113至S114还可以通过S116实现,将结合各步骤进行说明。
S116、若检测到第二类程序崩溃,则通过预设独立子进程基于所述堆栈信息和所述至少一个映射信息形成所述中转页面完成所述至少一个页面的跳转。
本发明实施例中,若客户端检测到第二类程序崩溃,则通过预设独立子进程基于所述堆栈信息和所述至少一个映射信息形成所述中转页面完成所述至少一个页面的跳转。
其中,第二类程序崩溃可以为Java层程序崩溃。
本发明实施例中,客户端出现Java层程序崩溃问题时,UnCaughtExceptionHandler系统类会触发其uncaughtExceotion回调方法,在此回调方法内即发起跳转崩溃中转页面的行为。通过预设独立子进行持有堆栈信息和至少一个映射信息形成中转页面,完成至少一个页面的跳转。
同样的,Java层程序崩溃时也是通过预设独立子进行持有堆栈信息和至少一个映射信息形成中转页面,完成至少一个页面的跳转,提高了页面恢复的成功率。
在一些实施例中,参见图8,图8为本发明实施例提供的页面恢复方法的一个可选的流程示意图,图1示出的S102之后还可以包括S117至S119实现,将结合各步骤进行说明。
S117、响应获取的用户关闭指令,将至少一个页面中的第N个页面销毁。
本发明实施例中,客户端响应获取的用户关闭指令,将至少一个页面中的第N个页面销毁。其中,N为大于等于1的整数。
本发明实施例中,客户端打开了至少一个页面之后,用户可以在至少一个页面中关闭其中的某个页面。使该页面进入OnDestroy周期。
S118、在第N个页面的销毁周期内,根据第N个页面对应的第N个页面标识信息,在本地删除至少一个映射信息中第N个页面对应的第N个映射信息。
本发明实施例中,客户端在第N个页面的销毁周期内,根据第N个页面对应的第N个页面标识信息,在本地删除至少一个映射信息中第N个页面对应的第N个映射信息。
本发明实施例中,由于本地存储的至少一个映射信息包括了至少一个页面标识信息,客户端可以通过第N个页面标识信息找到对应的第N个映射信息进行删除。
S119、在本地删除堆栈信息中第N个页面对应的第N个页面标识信息,以形成新的堆栈信息进行存储。
本发明实施例中,客户端在第N个页面的销毁周期内,在本地删除堆栈信息中第N个页面对应的第N个页面标识信息,以形成新的堆栈信息进行存储。
本发明实施例中,当页面销毁时,客户端实时的将该页面对应的映射信息及页面标识信息进行删除,以得到其余页面对应的相关数据,保证了恢复页面的准确性。
参见图9,图9为本发明实施例提供的页面恢复方法的一个可选的流程示意图,将结合各步骤进行说明。
S201、注册客户端生命周期回调。
本发明实施例中,用户在终端点击客户端图标开始启动客户端。在此阶段客户端开始调用插件进行初始化操作,为接下来的流程做准备工作。首先通过Application#registerActivityLifecycleCallbacks方法注册整个应用程序页面生命周期回调方法,感知应用程序每个页面的创建以及销毁。
S202、初始化及注册Java层和原生方法层崩溃抓取模块。
本发明实施例中,客户端通过Thread#setDefaultUncaughtExceptionHandler方法注册Java层应用程序崩溃发生的回调方法,通过该接口可以感知应用程序Java层代码出现了崩溃。同时通过NativeCrash.cpp本地接口初始化BreakPad工具并且添加崩溃回调方法,BreakPad可以实现应用程序Native层代码异常出现的崩溃问题。
S203、创建页面时添加数据。
S204、销毁页面时删除数据。
本发明实施例中,客户端实时感知应用程序每个页面的打开和关闭,在创建生命周期将存储页面数据,在销毁生命周期移除页面数据。
S205、原生方法层崩溃时发送套接字消息。
本发明实施例中,在客户端出现Native崩溃问题时,崩溃抓取引擎BreakPad则会感知到应用程序出现了崩溃。此时NativeCrash.cpp接口会接收到崩溃发生的回调信息,通过Socket通信的方式将消息发送到CrashService里面。
S206、Java层崩溃时触发线程异常。
本发明实施例中,客户端出现Java层程序崩溃问题时,UnCaughtExceptionHandler系统类会触发其uncaughtExceotion回调方法,在此回调方法内即发起跳转崩溃中转页面的行为。通过预设独立子进行持有堆栈信息和至少一个映射信息形成中转页面,完成至少一个页面的跳转。
S207、原生方法层崩溃时独立子进程接收崩溃套接字信息。
S208、Java层崩溃回调方法线程异常。
S209、获取本地保存的页面数据然后跳转到中专页面。
本发明实施例中,独立子进程CrashService获取本地保存的页面数据然后跳转到崩溃中专页面。
S210、独立子进程携带页面数据显示崩溃中转页面。
S211、根据保存的数据,通过界面跳转方法启动恢复页面以及数据恢复崩溃发生时的页面,并且恢复页面上的数据。
本发明实施例中,客户端根据堆栈信息及业务数据,通过startActivities方法启动恢复页面以及数据恢复崩溃发生时的页面,并且恢复页面上的数据。
本发明在Android应用程序发生崩溃后重启恢复崩溃发生之前的浏览页面以及页面数据这种技术。该技术包括应用程序在浏览页面时通过ActivityLifecycleCallbacks回调方法实时保存用户在浏览页面记录以及每个页面对应的业务数据,当应用程序出现崩溃时,通过独立于主应用进程的崩溃中转页面恢复到崩溃发生之前到页面数据。
参见图10,图10为本发明实施例提供的页面恢复装置的结构示意图
本发明实施例还提供了一种页面恢复装置800,包括:响应创建单元803、回调存储单元804、检测单元805和恢复单元806。
响应创建单元803,用于响应获取的用户操作指令,创建出至少一个页面;
回调存储单元804,用于在所述至少一个页面的分别对应的创建周期内,通过回调实时提取所述至少一个页面对应的相关数据并存储在本地;
检测单元805,用于若检测到程序崩溃,则从所述至少一个页面跳转到中转页面;
恢复单元806,用于响应用户在所述中转页面触发的恢复指令,利用所述相关数据恢复得到所述至少一个页面。
本发明实施例中,页面恢复装置800中的回调存储单元804用于在所述至少一个页面的分别对应的创建周期内,通过回调实时提取得到所述至少一个页面对应的所述堆栈信息及所述至少一个业务数据,并将所述堆栈信息及所述至少一个业务数据存储在本地;所述至少一个业务数据是服务器发送的。
本发明实施例中,页面恢复装置800中的回调存储单元804用于按照所述至少一个页面的创建次序实时提取所述至少一个页面对应的至少一个页面标识信息,及所述至少一个业务数据;建立所述至少一个业务数据分别与对应的页面标识信息之间的至少一个映射信息;基于一定次序的所述至少一个页面标识信息构建所述堆栈信息;将所述堆栈信息和所述至少一个映射信息存储在本地。
本发明实施例中,页面恢复装置800中的检测单元805用于若检测到第一类程序崩溃,则形成回调消息输送给本地的预设独立子进程;通过所述预设独立子进程响应所述回调消息,基于所述堆栈信息和所述至少一个映射信息形成所述中转页面完成所述至少一个页面的跳转。
本发明实施例中,页面恢复装置800中的检测单元805用于若检测到第二类程序崩溃,则通过预设独立子进程基于所述堆栈信息和所述至少一个映射信息形成所述中转页面完成所述至少一个页面的跳转。
本发明实施例中,页面恢复装置800中的恢复单元806用于按照所述堆栈信息中所述至少一个页面标识信息的顺序,在所述至少一个映射信息中依次调取所述至少一个业务数据进行渲染,得到所述至少一个页面。
本发明实施例中,页面恢复装置800中的响应创建单元803用于响应获取的所述用户操作指令,向服务器发送请求信息;接收所述服务器响应所述请求信息,反馈的所述至少一个页面对应的至少一个业务数据;利用所述至少一个业务数据进行渲染,创建得到所述至少一个页面。
本发明实施例中,页面恢复装置800用于响应获取的用户关闭指令,将所述至少一个页面中的第N个页面销毁;N为大于等于1的整数;在第N个页面的销毁周期内,根据所述第N个页面对应的第N个页面标识信息,在本地删除所述至少一个映射信息中所述第N个页面对应的第N个映射信息;在本地删除所述堆栈信息中所述第N个页面对应的所述第N个页面标识信息,以形成新的堆栈信息进行存储。
本发明实施例中,通过响应创建单元803响应获取的用户操作指令,创建出至少一个页面;通过回调存储单元804在至少一个页面的分别对应的创建周期内,通过回调实时提取至少一个页面对应的相关数据并存储在本地;通过检测单元805若检测到程序崩溃,则从至少一个页面跳转到中转页面;通过恢复单元8006响应用户在中转页面触发的恢复指令,利用相关数据恢复得到至少一个页面。由于本方案在当前的至少一个页面的构建周期内,实时的提取保存了其对应的相关数据,进而在程序崩溃后,通过页面跳转及时的恢复了当前的至少一个页面,所以本方案可以在软件崩溃后及时的保存当前页面的全部数据,无需重新加载,提高了使用效率。
需要说明的是,本发明实施例中,如果以软件功能模块的形式实现上述的页面恢复方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台页面恢复装置(可以是个人计算机等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
对应地,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的步骤。
对应地,本发明实施例提供一种页面恢复装置,包括存储器802和处理器801,所述存储器802存储有可在处理器801上运行的计算机程序,所述处理器801执行所述程序时实现上述方法中的步骤。
这里需要指出的是:以上存储介质和装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本发明存储介质和装置实施例中未披露的技术细节,请参照本发明方法实施例的描述而理解。
需要说明的是,图11为本发明实施例提供的页面恢复装置的一种硬件实体示意图,如图11所示,该页面恢复装置800的硬件实体包括:处理器801和存储器802,其中;
处理器801通常控制页面恢复装置800的总体操作。
存储器802配置为存储由处理器801可执行的指令和应用,还可以缓存待处理器801以及页面恢复装置800中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储装置、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机、服务器、或者网络装置等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储装置、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (11)
1.一种页面恢复方法,其特征在于,包括:
响应获取的用户操作指令,创建出至少一个页面;
在所述至少一个页面的分别对应的创建周期内,通过回调实时提取所述至少一个页面对应的相关数据并存储在本地;
若检测到程序崩溃,则从所述至少一个页面跳转到中转页面;
响应用户在所述中转页面触发的恢复指令,利用所述相关数据恢复得到所述至少一个页面。
2.根据权利要求1所述的页面恢复方法,其特征在于,所述相关数据包括:所述至少一个页面对应的堆栈信息和至少一个业务数据;
所述在所述至少一个页面的分别对应的创建周期内,通过回调实时提取所述至少一个页面对应的相关数据并存储在本地,包括:
在所述至少一个页面的分别对应的创建周期内,通过回调实时提取得到所述至少一个页面对应的所述堆栈信息及所述至少一个业务数据,并将所述堆栈信息及所述至少一个业务数据存储在本地;所述至少一个业务数据是服务器发送的。
3.根据权利要求2所述的页面恢复方法,其特征在于,所述通过回调实时提取得到所述至少一个页面对应的所述堆栈信息及所述至少一个业务数据,并将所述堆栈信息及所述至少一个业务数据存储在本地,包括:
按照所述至少一个页面的创建次序实时提取所述至少一个页面对应的至少一个页面标识信息,及所述至少一个业务数据;
建立所述至少一个业务数据分别与对应的页面标识信息之间的至少一个映射信息;
基于一定次序的所述至少一个页面标识信息构建所述堆栈信息;
将所述堆栈信息和所述至少一个映射信息存储在本地。
4.根据权利要求3所述的页面恢复方法,其特征在于,所述若检测到程序崩溃,则从所述至少一个页面跳转到中转页面,包括:
若检测到第一类程序崩溃,则形成回调消息输送给本地的预设独立子进程;
通过所述预设独立子进程响应所述回调消息,基于所述堆栈信息和所述至少一个映射信息形成所述中转页面完成所述至少一个页面的跳转。
5.根据权利要求3所述的页面恢复方法,其特征在于,所述若检测到程序崩溃,则从所述至少一个页面跳转到中转页面,包括:
若检测到第二类程序崩溃,则通过预设独立子进程基于所述堆栈信息和所述至少一个映射信息形成所述中转页面完成所述至少一个页面的跳转。
6.根据权利要求4或5所述的页面恢复方法,其特征在于,所述利用所述相关数据恢复得到所述至少一个页面,包括:
按照所述堆栈信息中所述至少一个页面标识信息的顺序,在所述至少一个映射信息中依次调取所述至少一个业务数据进行渲染,得到所述至少一个页面。
7.根据权利要求1所述的页面恢复方法,其特征在于,所述响应获取的用户操作指令,创建出至少一个页面,包括:
响应获取的所述用户操作指令,向服务器发送请求信息;
接收所述服务器响应所述请求信息,反馈的所述至少一个页面对应的至少一个业务数据;
利用所述至少一个业务数据进行渲染,创建得到所述至少一个页面。
8.根据权利要求3所述的页面恢复方法,其特征在于,所述在所述至少一个页面的分别对应的创建周期内,通过回调实时提取所述至少一个页面对应的相关数据并存储在本地之后,所述方法还包括:
响应获取的用户关闭指令,将所述至少一个页面中的第N个页面销毁;N为大于等于1的整数;
在所述第N个页面的销毁周期内,根据所述第N个页面对应的第N个页面标识信息,在本地删除所述至少一个映射信息中所述第N个页面对应的第N个映射信息;
在本地删除所述堆栈信息中所述第N个页面对应的所述第N个页面标识信息,以形成新的堆栈信息进行存储。
9.一种页面恢复装置,其特征在于,包括:
响应创建单元,用于响应获取的用户操作指令,创建出至少一个页面;
回调存储单元,用于在所述至少一个页面的分别对应的创建周期内,通过回调实时提取所述至少一个页面对应的相关数据并存储在本地;
检测单元,用于若检测到程序崩溃,则从所述至少一个页面跳转到中转页面;
恢复单元,用于响应用户在所述中转页面触发的恢复指令,利用所述相关数据恢复得到所述至少一个页面。
10.一种页面恢复装置,其特征在于,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现权利要求1至8任一项所述方法中的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至8任一项所述方法中的步骤。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211236060.4A CN115687820A (zh) | 2022-10-10 | 2022-10-10 | 页面恢复方法、装置及存储介质 |
PCT/CN2023/091170 WO2024077932A1 (zh) | 2022-10-10 | 2023-04-27 | 页面恢复方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211236060.4A CN115687820A (zh) | 2022-10-10 | 2022-10-10 | 页面恢复方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115687820A true CN115687820A (zh) | 2023-02-03 |
Family
ID=85065533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211236060.4A Pending CN115687820A (zh) | 2022-10-10 | 2022-10-10 | 页面恢复方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115687820A (zh) |
WO (1) | WO2024077932A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024077932A1 (zh) * | 2022-10-10 | 2024-04-18 | 京东科技信息技术有限公司 | 页面恢复方法、装置及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103634337B (zh) * | 2012-08-22 | 2018-09-18 | 腾讯科技(深圳)有限公司 | 页面恢复方法、装置及移动终端 |
CN106371946A (zh) * | 2016-09-13 | 2017-02-01 | 乐视控股(北京)有限公司 | 浏览器异常恢复处理方法及装置 |
CN111459715A (zh) * | 2019-01-20 | 2020-07-28 | 华为技术有限公司 | 应用异常恢复 |
CN111008044A (zh) * | 2019-11-29 | 2020-04-14 | 支付宝实验室(新加坡)有限公司 | 一种应用程序的恢复方法、系统以及电子设备 |
CN111274503B (zh) * | 2020-01-20 | 2024-02-20 | 北京有竹居网络技术有限公司 | 数据处理的方法、装置、电子设备及计算机可读介质 |
CN114064338A (zh) * | 2021-11-16 | 2022-02-18 | 平安付科技服务有限公司 | 异常页面的恢复方法、装置、计算机设备及存储介质 |
CN114356434B (zh) * | 2021-11-26 | 2024-03-26 | 北京达佳互联信息技术有限公司 | 页面加载方法、设备、装置、存储介质及程序产品 |
CN115687820A (zh) * | 2022-10-10 | 2023-02-03 | 京东科技信息技术有限公司 | 页面恢复方法、装置及存储介质 |
-
2022
- 2022-10-10 CN CN202211236060.4A patent/CN115687820A/zh active Pending
-
2023
- 2023-04-27 WO PCT/CN2023/091170 patent/WO2024077932A1/zh unknown
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024077932A1 (zh) * | 2022-10-10 | 2024-04-18 | 京东科技信息技术有限公司 | 页面恢复方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2024077932A1 (zh) | 2024-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060200702A1 (en) | Method and system for recovering data from a hung application | |
CN107733662B (zh) | 群组恢复方法和装置 | |
CN104049986A (zh) | 插件加载方法及装置 | |
CN102314561A (zh) | 基于api hook的恶意代码自动分析方法和系统 | |
WO2019140739A1 (zh) | 客户回访的判断方法、电子装置及计算机可读存储介质 | |
CN106354884B (zh) | 一种基于分布式文件系统的数据对象删除方法及装置 | |
CN104461786A (zh) | Android系统的恢复方法及Android系统的恢复系统 | |
CN115687820A (zh) | 页面恢复方法、装置及存储介质 | |
CN110413368B (zh) | 页面切换方法、装置、电子设备及机器可读存储介质 | |
WO2014131306A1 (en) | Method and system for detecting network link | |
CN108228308B (zh) | 虚拟机的监控方法以及装置 | |
CN105354498A (zh) | 一种注册表的操作方法和相关装置及设备 | |
KR101974989B1 (ko) | 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치 | |
CN101427221A (zh) | 医学成像中在另一个独立系统/应用程序中激活应用程序的方法 | |
KR102460078B1 (ko) | 무해화(disarming) 동작에서 차이점(delta) 추출 방식을 이용한 원본 파일 백업 공간을 효율화하는 방법 및 이를 위한 장치 | |
CN111597553A (zh) | 病毒查杀中的进程处理方法、装置、设备及存储介质 | |
CN113467981A (zh) | 异常处理的方法和装置 | |
CN111639316B (zh) | 一种web页面的信息处理方法和装置 | |
CN112416527A (zh) | 一种数据恢复方法、装置、设备及存储介质 | |
CN112579361A (zh) | 备份数据重建方法、装置、设备及存储介质 | |
CN113051095B (zh) | 客户端运行错误的复现方法、装置、电子设备及存储介质 | |
CN112291317B (zh) | 数据下载方法、装置、计算机设备和存储介质 | |
CN110471793B (zh) | 数据备份方法、数据恢复方法、第一终端及第二终端 | |
US20080018651A1 (en) | Method and system for capturing image frame | |
CN110837433A (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 |