CN113127242A - 一种应用程序崩溃处理方法及处理装置 - Google Patents

一种应用程序崩溃处理方法及处理装置 Download PDF

Info

Publication number
CN113127242A
CN113127242A CN202010026935.2A CN202010026935A CN113127242A CN 113127242 A CN113127242 A CN 113127242A CN 202010026935 A CN202010026935 A CN 202010026935A CN 113127242 A CN113127242 A CN 113127242A
Authority
CN
China
Prior art keywords
information
page
user
browsing
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
CN202010026935.2A
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.)
Soyoung Technology Beijing Co Ltd
Original Assignee
Soyoung Technology Beijing 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 Soyoung Technology Beijing Co Ltd filed Critical Soyoung Technology Beijing Co Ltd
Priority to CN202010026935.2A priority Critical patent/CN113127242A/zh
Publication of CN113127242A publication Critical patent/CN113127242A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0763Error or fault detection not based on redundancy by bit configuration check, e.g. of formats or tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing

Abstract

本公开是关于一种应用程序崩溃处理方法。该方法包括:获取应用程序的页面的生命周期信息,所述生命周期信息用于指示所述页面当前所处的生命周期阶段;当所述生命周期信息满足预设条件时,确定用户浏览信息,其中,所述用户浏览信息包括:用户浏览页面信息,所述用户浏览页面信息用于指示用户最近浏览的页面;当所述应用程序崩溃时,获取对应的崩溃信息;向服务器上传所述崩溃信息以及所述用户浏览信息。本公开提供的方案,能让开发人员快速定位出应用程序的缺陷,节约开发成本。

Description

一种应用程序崩溃处理方法及处理装置
技术领域
本公开涉及计算机技术领域,尤其涉及一种应用程序崩溃处理方法及处理装置。
背景技术
智能手机日益普遍的当下,手机上的应用程序也层出不穷,很多用户在使用智能手机时,会遇到应用程序被强行终止的情况,这就是通常说的应用程序崩溃。对应用程序崩溃的相关信息进行收集,可以方便定位出现问题的位置,提高应用程序的稳定性。
相关技术中,对于安卓(Android)系统的手机,可以通过重写安卓系统里面的全局崩溃文件来处理应用程序的崩溃,实现应用程序自定义全局崩溃的捕抓并上传,获取应用崩溃的堆栈信息,然后根据堆栈信息定位出崩溃的具体页面和崩溃的具体信息。
但是,在内存不足,崩溃信息缺失的情况下,堆栈信息中并不会记录有崩溃发生时的页面信息,此时根据堆栈信息并不能定位出崩溃的具体页面,无法定位崩溃的原因和具体页面,开发人员就不能快速定位出应用程序的缺陷,需要耗费更多的人力和时间才能解决应用程序的缺陷为题。
发明内容
为克服相关技术中存在的问题,本公开提供一种应用程序崩溃处理方法,能让开发人员快速定位出应用程序的缺陷,节约开发成本。
根据本公开实施例的第一方面,提供一种应用程序崩溃处理方法,包括:
获取应用程序的页面的生命周期信息,所述生命周期信息用于指示所述页面当前所处的生命周期阶段;
当所述生命周期信息满足预设条件时,确定用户浏览信息,其中,所述用户浏览信息包括:用户浏览页面信息,所述用户浏览页面信息用于指示用户最近浏览的页面;
当所述应用程序崩溃时,获取对应的崩溃信息;
向服务器上传所述崩溃信息以及所述用户浏览信息。
根据本公开实施例的第二方面,提供一种处理装置,包括:
第一获取单元,用于获取应用程序的页面的生命周期信息,所述生命周期信息用于指示所述页面当前所处的生命周期阶段;
确定单元,用于当生命周期信息满足预设条件时,确定用户浏览信息,其中,所述用户浏览信息包括:用户浏览页面信息,所述用户浏览页面信息用于指示用户最近浏览的页面;
第二获取单元,用于当所述应用程序崩溃时,获取对应的崩溃信息;
上传单元,用于向服务器上传所述崩溃信息以及所述用户浏览页面信息。
根据本公开实施例的第三方面,提供一种终端设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
根据本公开实施例的第四方面,提供一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
本实施例中,终端设备可以根据应用程序的页面的生命周期信息确定用户浏览信息,并在应用程序崩溃时,将该用户浏览信息上传至服务器,该用户浏览信息用于指示用户最近浏览的页面,即应用程序崩溃时,服务器可以获取到用户最近一次浏览的页面时哪个页面,因此即使在内存不足,崩溃信息缺失的情况下,服务器也可以确定出崩溃发生时的用户所浏览页面的页面信息,从而可以让开发人员快速定位出应用程序的缺陷,节约开发成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1是根据本公开一示例性实施例示出的一种应用程序崩溃处理系统结构示意图;
图2是根据本公开一示例性实施例示出的一种应用程序崩溃处理方法的流程示意图;
图3是根据本公开一示例性实施例示出的一种应用程序崩溃处理方法的流程另一示意图;
图4是根据本公开一示例性实施例示出的一种处理装置的结构示意图;
图5是根据本公开一示例性实施例示出的一种处理装置的结构另一示意图;
图6是根据本公开一示例性实施例示出的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本公开的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
为了便于理解本公开实施例,下面对本公开实施例所涉及的一些词汇进行介绍。
页面的生命周期:在使用Android系统的移动终端中,其内部安装的每个应用均由多个页面组成,页面组件activity则是页面的单位,或称为页面的容器,每一个页面都是由activity实现组成的。对于每一个页面组件activity,其生命周期的基本固定,主要包括以下状态:
onCreate:表示当前页面Activity正在被创建;
onRestart:表示当前页面Activity正在重新启动;
onStart:表示当前页面Activity正在被启动,并即将可见;
onResume,表示当前页面Activity已经创建完成,并且可以与用户进行交互;
onPause:表示当前页面Activity正在暂停;
onStop:表示当前页面Activity即将停止;
onDestroy:表示当前页面Activity即将被销毁。
应用程序崩溃:应用程序无法正常运行,被强制终止的情况成为应用程序崩溃,导致应用程序崩溃的原因有很多,例如系统内存不足,服务器超载,应用程序本身漏洞等。
崩溃信息:在应用程序发生崩溃时所捕获的与该崩溃事件相关的信息,具体可以是崩溃日志的堆栈信息。
为了便于理解本公开实施例,下面对本公开实施例所适用的场景进行简单介绍,请参见图1,其示出了本公开实施例提供的应用程序崩溃处理方法所适用的一种系统组成结构示意图。
如图1所示,该系统可以包括由至少一台服务器101组成的服务系统,以及至少一台终端设备102。其中,终端设备102上至少安装有一个应用程序,终端设备102用于运行应用程序,对应用程序所触发的一些事件进行处理,以及将事件的相关信息上报至对应的服务器101。服务器101用于获取终端设备102上报的信息,对相关信息进行汇总和/或响应。
示例性地,用户可以在终端设备102上运行某应用程序,由于某些原因导致闪退,即出发崩溃事件,终端设备102对该崩溃事件进行处理,并向该应用程序对应的服务器101上报相关信息,服务器101获取该信息,对所获取的信息进行汇总,为开发人员对应用程序缺陷的修复提供参考。
应理解,本公开实施例中,终端设备102不限于图1所示的手机,还可以是个人计算机、平板电脑等能够运行应用程序的设备。终端设备102可以是基于IOS系统的设备,可以是基于安卓系统的设备,还可以是基于其他系统的设备,具体此处不作限定。
基于上述背景,本公开提供了一种应用程序崩溃处理方法,可以让开发人员快速定位出应用程序的缺陷,节约开发成本。
应理解,本公开实施例中,处理装置可以是上述图1场景中的终端设备102,也可以是终端设备102中的处理器,还可以是其他装置,具体此处不作限定,下将以终端设备102为例对本公开实施例中的应用程序崩溃处理方法进行说明。
以下结合附图详细描述本公开实施例的技术方案。
图2是根据本公开一示例性实施例示出的一种应用程序崩溃处理方法的流程示意图。
参见图2,本公开实施例中的应用程序崩溃处理方法包括:
201、获取应用程序的页面的生命周期信息;
终端设备上运行应用程序,对于任意一个应用程序,在该应用程序运行过程中,终端设备可以获取该应用程序的页面的生命周期信息,即可以在不同的时候,确定应用程序的页面处于当前生命周期的哪个阶段。作为一种可选的方式,终端设备可以获取终端设备上所有应用程序的页面的生命周期信息。
202、当生命周期信息满足预设条件时,确定用户浏览信息;
终端设备获取生命周期信息后,当生命周期信息满足预设条件时,确定用户浏览信息,该用户浏览信息至少包括用户浏览页面信息,用户浏览页面信息用于指示用户最近浏览的页面。用户最近浏览的页面具体可以是用户最近浏览的一个页面,也可以是最近浏览的多个页面,具体此处不作限定。作为一种可选的方式,用户浏览页面信息除了用于指示用户最近浏览的页面,还用于指示该页面当前所处的生命周期阶段。
作为一种可选的方式,用户浏览信息还可以包括用户浏览位置信息,该用户浏览位置信息用于指示用户在当前页面对应的浏览位置。
应理解,本实施例中,页面在不同的时间会处于生命周期的不同阶段,即页面的生命周期信息是实时变化的,而用户浏览信息是根据生命周期信息实时更新的,即用户浏览信息也是实时变化的,即用户最近浏览的页面是随着时间以及用户的操作不断变化的。
203、当应用程序崩溃时,获取对应的崩溃信息;
终端设备在运行应用程序的过程中,由于某种原因导致应用程序发生了崩溃,即应用程序被强制停止运行了,此时,终端设备获取与该崩溃事件相关的崩溃信息。
作为一种可选的方式,该崩溃信息可以包括如下至少一项:应用程序崩溃的相关信息,应用程序的相关信息,应用程序所在设备的相关信息。其中,应用程序崩溃的相关信息可以包括如下至少一项:崩溃发生时间、错误类型、崩溃线程调用栈信息,调用栈信息指的是应用程序在执行时在一确定的时间点上某一具体线程上的函数调用顺序;错误类型可以包括数据溢出错误,线程切换错误等;应用程序的相关信息可以包括应用程序版本号,版本构建序号,应用程序启动时间等;应用程序所在设备的相关信息可以包括操作系统版本号、设备类型等信息。
作为一种可选的方式,终端设备可以通过监控接口收集崩溃信息,具体地,在应用程序启动时启动该监控接口,在应用程序运行时终端设备会实时记录堆栈信息并存于本地,在该监控接口监控到应用程序异常关闭时,获取崩溃信息,即应用程序关闭时的堆栈信息。本实施例中,该监控接口可以为UncaughtExceptionHandler接口,该接口用于处理未捕抓异常,如果程序出现了未捕获异常,系统会强制关闭应用,终端设备就可以通过此监控接口来捕抓异常信息。
204、向服务器上传崩溃信息以及用户浏览信息。
当应用程序崩溃时,终端设备获取了崩溃信息后,就向服务器上传该崩溃信息以及用户浏览信息。应理解,本实施例中用户浏览信息的内容是动态变化的,此时上传的用户浏览信息是最近一次更新得到的用户浏览信息。服务器接收到崩溃信息以及用户浏览信息后,开发人员就可以结合崩溃信息以及用户浏览对应用程序的崩溃原因进行分析和定位。
作为一种可选的方式,服务器在接收到终端设备上传的崩溃信息和用户浏览信息后,服务器可以向终端设备发送确认消息,确认信息已收到。
若终端设备接收到服务器返回的确认消息,则可以清除崩溃信息以及用户浏览信息中的内容,以节约系统内存空间。
若终端设备没有接收到服务器返回的确认消息,则可以保留崩溃信息和用户浏览信息,当终端设备重新启动应用程序时,再向服务器上报这些信息,以避免信息漏发的情况。
在一些实施例中,终端设备在向服务器上传崩溃信息以及用户浏览信息之前,即执行步骤204之前,可以先对要上传的崩溃信息和/或用户浏览信息进行加密压缩,然后再将加密压缩后的崩溃信息和/或用户浏览信息上传到服务器,以提高信息的安全性。
本实施例中,终端设备可以根据应用程序的页面的生命周期信息确定用户浏览信息,并在应用程序崩溃时,将该用户浏览信息上传至服务器,该用户浏览信息用于指示用户最近浏览的页面,即应用程序崩溃时,服务器可以获取到用户最近一次浏览的页面是哪个页面,因此即使在内存不足,崩溃信息缺失的情况下,服务器也可以确定出崩溃发生时的用户所浏览页面的页面信息,从而可以让开发人员快速定位出应用程序的缺陷,节约开发成本。
图3是根据本公开一示例性实施例示出的一种应用程序崩溃处理方法的流程示意图。请参阅图3,本公开实施例中的应用程序崩溃处理方法包括:
301、对应用程序的页面的生命周期进行监听以获取页面的生命周期信息;
终端设备可以预先在应用程序注册页面生命周期的监听,通过监听应用程序的页面的生命周期,实时获取应用程序的页面当前的状态,即页面的生命周期信息,该生命周期信息用于指示页面处于当前生命周期的哪个阶段。
作为一种可选的方式,终端设备可以对终端设备上所有应用程序的页面都进行监听以获取所有页面的生命周期信息。
具体地,终端设备可以通过系统内的生命周期监听接口进行监听,或者通过其他方式进行监听,具体此处不作限定。
应理解,终端设备可以在应用程序的每一个页面都注册生命周期的监听,以获取每个页面的生命周期信息;终端设备也可以预先对应用程序的页面进行分析,确定出容易发生崩溃的关键页面,然后在应用程序的关键页面注册生命周期的监听,以获取这些关键页面的生命周期信息。
还应理解,本实施例中的应用程序可以是终端设备上任意一个的应用程序,也可以是终端设备上的某类应用程序,如容易出现崩溃的应用程序,具体此处不作限定。本实施例中应用程序的页面可以是应用程序对应的任意一个页面,也可以是应用程序对应的某类页面,如容易出现崩溃的关键页面,具体此处不作限定。
302、当应用程序的页面的生命周期处于创建阶段或者重新可见阶段时,获取页面的页面信息,并在每一次执行完获取页面信息的操作后,根据当次获取的页面信息更新用户浏览页面信息;
具体地,对于任意一个页面,当监听到该页面的生命周期处于oncreate状态时,终端设备确定该页面的生命周期处于创建阶段,终端设备获取该页面的页面信息;当监听到页面的生命周期处于onResume状态时,终端设备确定该页面的生命周期处于重新可见阶段,终端设备获取该页面的页面信息。
更具体地,终端设备在每次执行完获取页面信息的操作后,可以通过如下方式更新用户浏览页面信息:终端设备将当次获取的页面信息作为最新的用户浏览页面信息,即将本次获取的页面信息覆盖上一次记录在用户浏览页面信息中的页面信息。
应理解,本实施例中用户浏览页面信息用于指示用户最近浏览的页面;页面信息至少包括页面标识,该页面标识具体可以是页面名称,或者页面地址,或页面识别码,或页面截图,或其他信息,具体此处不作限定。作为一种可选的方式,用户浏览页面信息除了用于指示用户最近浏览的页面,还用于指示该页面当前所处的生命周期阶段,则对应地,页面信息还可以包括生命周期阶段指示信息。
示例性的,用户在主页面上点击应用程序A,终端设备创建应用程序A的首页面A1,即此时A1处于创建阶段,终端设备获取页面A1的页面标识“A1”,并根据该页面标识更新用户浏览页面信息,即将“A1”存储为用户浏览页面信息,表示用户当前浏览的页面是页面A1。
页面A1创建完成后,终端设备在屏幕上显示页面A1,此时,用户点击HOME键,终端设备在屏幕上显示主页面,页面A1在屏幕上不可见,应用程序A在后台运行,此时,页面A1处于停止阶段。
用户点击主页面上点击应用程序B,终端设备创建应用程序B的首页面B1,即此时B1处于创建阶段,终端设备获取页面B1的页面标识“B1”,并根据该页面标识更新用户浏览页面信息,即将用户浏览页面信息“A1”更新为“B1”,表示用户当前浏览的页面是页面B1。
页面B1创建完成后,终端设备在屏幕上显示页面B1,此时,用户在点击查看后台运行程序的控件,终端设备显示处于后台的各个页面,其中,包括页面A1和B1,用户点击选择页面A1的控件,终端设备重新启动页面A1,此时,页面A1处于重新可见阶段,终端设备获取页面A1的页面标识“A1”,并根据该页面标识更新用户浏览页面信息,即用户浏览页面信息“B1”更新为“A1”,表示用户当前浏览的页面是页面A1。
本实现方式中,终端设备获取页面信息后可以通过覆盖的方式更新用户浏览页面信息,即用户浏览页面信息中只保留最近一次获取的页面信息,上一次记录的页面信息会被删除,从而可以节约了终端设备的内存。
除了上述方式,终端设备也可以通过如下方式更新用户浏览页面信息:终端设备将当次获取的页面标识按照顺序存储至用户浏览页面信息得到页面浏览序列,即终端设备会将每次获取的页面标识存储至用户浏览页面信息中,按照先后获取的顺序依次排列得到页面浏览序列,即将用户所浏览过的页面按照先后顺序进行排列。按照这种方式,上述示例中,最终得到的用户浏览页面信息为页面浏览序列“A1-B1-A1”,具体更新过程此处不赘述。
本实现方式中,终端设备可以根据每次获取的页面信息生产页面浏览序列,并将该序列上报至服务器,则开发人员除了可以知道发生崩溃时用户浏览的是哪一个页面,还可以知道用户的整个浏览历程,从而可以全面的对应用程序崩溃的原因进行分析。
应理解,除了上述几种更新方式,终端设备还可以通过其他方式更新用户浏览页面信息,具体本公开实施例不作限定。
303、当应用程序的页面的生命周期处于可交互阶段时,按照预设时间规则获取用户在页面对应的浏览位置信息,并在每一次执行完获取浏览位置信息的操作后,根据当次获取的浏览位置信息更新用户浏览位置信息;
具体地,当监听到页面的生命周期处于onResume状态时,终端设备确定该页面的生命周期处于可交互阶段,终端设备在可交互阶段内定期获取用户在页面对应的浏览位置信息。其中,浏览位置信息用于指示用户在当前页面对应的浏览位置。
更具体地,可以预先设置一个定时器,该定时器用户在页面的生命周期处于可交互阶段时,按照预定的时间间隔触发终端设备获取当前页面的浏览位置信息,当该页面的生命周期不处于可交互阶段时,计时器停止出发终端设备获取当前页面的浏览位置信息。也就是说,当页面处于可交互阶段时,终端设备每隔一段时间就会记录一次浏览位置信息。应理解,预定的时间间隔可以根据研发需求以及应用程序性能进行自定义,例如可以预定每隔1秒扫描一次。
终端设备在每次执行完获取浏览位置信息的操作之后,可以通过如下方式更新用户浏览位置信息:终端设备将本次获取的浏览位置信息记录在用户浏览位置信息中,并用本次获取的浏览位置信息覆盖上一次记录在用户浏览位置信息中的浏览位置信息,从而确保用户浏览位置信息中记录的浏览位置信息是用户对应的最新的页面浏览位置。
作为一种可选的方式,本实施例中的页面为滚动页面,具体地,该滚动页面可以为网页(web)页面;浏览位置信息为用户浏览位置对应的偏移坐标信息,具体地,偏移坐标信息可以只包括垂直方向的偏移坐标信息,即获取的偏移坐标信息可以是(0,y)的格式;偏移坐标信息也可以包括垂直方向的偏移坐标信息和水平方向的偏移坐标信息。即获取的偏移坐标信息可以是(x,y)的格式。
具体地,用户在页面的生命周期处于可交互阶段时,定时器按照预定的时间间隔触发终端设备扫描当前显示的页面是否为网页页面,如果定时器扫描到该页面时网页页面,则立即获取该网页页面的网络视图(webview)的滚动视图(scrollview)属性,然后获取该滚动视图的contentOffset属性,通过该contentOffset属性可以获取滚动视图的滚动位置,即偏移坐标信息。其中,网络视图是系统中用来展示网页页面的一个控件;滚动视图属性是系统中用于显示可滑动视图的一个控件,contentOffset属性是滚动视图控件中一个提供当前页面相对原始坐标偏移量的属性。
304、当应用程序崩溃时,获取对应的崩溃信息;
终端设备在运行应用程序的过程中,由于某种原因导致应用程序发生了崩溃,即应用程序被强制停止运行了,此时,终端设备获取与该崩溃事件相关的崩溃信息。
作为一种可选的方式,该崩溃信息可以包括如下至少一项:应用程序崩溃的相关信息,应用程序的相关信息,应用程序所在设备的相关信息。其中,应用程序崩溃的相关信息可以包括如下至少一项:崩溃发生时间、错误类型、崩溃线程调用栈信息,调用栈信息指的是应用程序在执行时在一确定的时间点上某一具体线程上的函数调用顺序;错误类型可以包括数据溢出错误,线程切换错误等;应用程序的相关信息可以包括应用程序版本号,版本构建序号,应用程序启动时间等;应用程序所在设备的相关信息可以包括操作系统版本号、设备类型等信息。
作为一种可选的方式,终端设备可以通过监控接口收集崩溃信息,具体地,在应用程序启动的时启动该监控接口,在应用程序运行时终端设备回实时记录堆栈信息并存于本地,在该监控接口监控到应用程序异常关闭时,获取崩溃信息,即应用程序关闭时的堆栈信息。本实施例中,该监控接口可以为UncaughtExceptionHandler接口,该接口用于处理未捕抓异常,如果程序出现了未捕获异常,系统会强制关闭应用,终端设备就可以通过此监控接口来捕抓异常信息。
305、向服务器上传崩溃信息、用户浏览页面信息以及用户浏览位置信息。
当应用程序崩溃时,终端设备获取了崩溃信息后,就向服务器上传该崩溃信息,用户浏览页面信息以及用户浏览位置信息。应理解,本实施例中用户浏览页面信息和用户浏览位置信息的内容是动态变化的,此时上传的用户浏览页面信息和用户浏览位置信息是终端设备最近一次更新得到的用户浏览页面信息和用户浏览位置信息。
作为一种可选的方式,服务器在接收到终端设备上传的崩溃信息,用户浏览页面信息和用户浏览位置信息后,服务器可以终端设备发送确认消息,确认信息已收到。
若终端设备接收到服务器返回的确认消息,则可以清除如下至少一项信息:崩溃信息,用户浏览页面信息和用户浏览位置信息,以节约系统内存空间。
若终端设备没有接收到服务器返回的确认消息,则可以保留崩溃信息,用户浏览页面信息和用户浏览位置信息,当终端设备重新启动应用程序时,再向服务器上报这些信息,以避免信息漏发的情况。
作为一种可选的方式,终端设备在向服务器上传信息之前,即执行步骤305之前,可以先对要上传的信息进行加密压缩,然后再将加密压缩后的信息上传到服务器,以提高信息的安全性。具体地,终端设备可以只对其中一项信息进行加密压缩,也可以对多项信息进行加密压缩,具体此处不作限定,对多项信息进行加密压缩时,可以时分开进行加密压缩,也可以将多项信息合并进行加密压缩。
需要说明的是,上述实施例中,终端设备也可以不执行步骤303,即终端设备中不存储有用户浏览位置信息,应用程序运行过程中,终端设备也不会获取用户在当前页面对应的浏览位置。则对应地,在步骤305中终端设备就只会向服务器上传崩溃信息和用户浏览页面信息,而不会向服务器上传用户浏览位置信息。
本实施例中,终端设备可以根据应用程序的页面的生命周期信息确定用户浏览信息,并在应用程序崩溃时,将该用户浏览信息上传至服务器,该用户浏览信息用于指示用户最近浏览的页面,即应用程序崩溃时,服务器可以获取到用户最近一次浏览的页面时哪个页面,因此即使在内存不足,崩溃信息缺失的情况下,服务器也可以确定出崩溃发生时的用户所浏览页面的页面信息,从而可以让开发人员快速定位出应用程序的缺陷,节约开发成本。
其次,本实施例中,页面处于创建阶段或重新可见阶段时,终端设备都会获取该页面的页面信息,并根据该页面信息更新用户浏览页面信息,即不管是创建新页面还是返回老页面的时候,终端设备都可以记录到用户当前正在使用的页面,提高了方案的准确性。
再次,本实施例中,终端设备除了会向服务器上传用户浏览页面信息还会上传用户浏览位置信息,用于指示用户在当前页面对应的浏览位置,也就是说开发人员除了可以知道应用崩溃时用户浏览的是哪一个页面,还可以知道用户浏览到了该页面的哪一个位置,从而可以更全面的分析出崩溃的原因,也可以更快的完成应用程序缺陷的修复。
进一步地,本实施例中,终端设备可以通过对页面生命周期的监控以实时获知页面处于生命周期的哪一个阶段,提高了方案的时效性。
与前述应用功能实现方法实施例相对应,本公开还提供了一种处理装置、终端设备及相应的实施例。
图4是根据本公开一示例性实施例示出的一种处理装置的结构示意图。
参见图4,该处理装置400包括:
第一获取单元401,用于获取应用程序的页面的生命周期信息,该生命周期信息用于指示所述页面当前所处的生命周期阶段;
确定单元402,用于当生命周期信息满足预设条件时,确定用户浏览信息,其中,用户浏览信息包括:用户浏览页面信息,该用户浏览页面信息用于指示用户最近浏览的页面;
第二获取单元403,用于当应用程序崩溃时,获取对应的崩溃信息;
上传单元404,用于向服务器上传获取的崩溃信息以及用户浏览页面信息。
本实施例中,确定单元402可以根据应用程序的页面的生命周期信息确定用户浏览信息,在应用程序崩溃时,上传单元404将该用户浏览信息上传至服务器,该用户浏览信息用于指示用户最近浏览的页面,即应用程序崩溃时,服务器可以获取到用户最近一次浏览的页面时哪个页面,因此即使在内存不足,崩溃信息缺失的情况下,服务器也可以确定出崩溃发生时的用户所浏览页面的页面信息,从而可以让开发人员快速定位出应用程序的缺陷,节约开发成本。
图5是根据本公开一示例性实施例示出的一种处理装置的结构示意图。
参见图5,该处理装置500包括:
第一获取单元501,用于获取应用程序的页面的生命周期信息,该生命周期信息用于指示所述页面当前所处的生命周期阶段;
确定单元502,用于当生命周期信息满足预设条件时,确定用户浏览信息,其中,用户浏览信息包括:用户浏览页面信息,该用户浏览页面信息用于指示用户最近浏览的页面;
第二获取单元503,用于当应用程序崩溃时,获取对应的崩溃信息;
上传单元504,用于向服务器上传获取的崩溃信息以及用户浏览页面信息;
其中,第一获取单元501包括:
监听模块5011,用于对应用程序的页面的生命周期进行监听以获取页面的生命周期信息;
确定单元502包括:
第一获取模块5021,用于当应用程序的页面的生命周期处于创建阶段或者重新可见阶段时,获取页面的页面信息;
第一更新模块5022,用于在第一获取模块5021每一次执行完获取页面信息的操作后,根据第一获取模块5021当次获取的页面信息更新用户浏览页面信息;
和/或,
第二获取模块5023,用于当应用程序的页面的生命周期处于可交互阶段时,按照预设时间规则获取用户在该页面对应的浏览位置信息;
第二更新模块5024,用于在第二获取模块5023每一次执行完获取浏览位置信息的操作后,根据第二获取模块5023当次获取的浏览位置信息更新用户浏览位置信息。
本实施例中,确定单元501可以根据应用程序的页面的生命周期信息确定用户浏览信息,在应用程序崩溃时,上传单元504将该用户浏览信息上传至服务器,该用户浏览信息用于指示用户最近浏览的页面,即应用程序崩溃时,服务器可以获取到用户最近一次浏览的页面是哪个页面,因此即使在内存不足,崩溃信息缺失的情况下,服务器也可以确定出崩溃发生时的用户所浏览页面的页面信息,从而可以让开发人员快速定位出应用程序的缺陷,节约开发成本。
其次,本实施例中,页面处于创建阶段或重新可见阶段时,第一获取模块5021都会获取该页面的页面信息,第一更新模块5022会根据该页面信息更新用户浏览页面信息,即不管是创建新页面还是返回老页面的时候,终端设备都可以记录到用户当前正在使用的页面,提高了方案的准确性。
再次,本实施例中,上传单元504除了会向服务器上传用户浏览页面信息还会上传用户浏览位置信息,用于指示用户在当前页面对应的浏览位置,也就是说开发人员除了可以知道应用崩溃时用户浏览的是哪一个页面,还可以知道用户浏览到了该页面的哪一个位置,从而可以更全面的分析出崩溃的原因,也可以更快的完成应用程序缺陷的修复。
进一步地,本实施例中,监听单元5011可以通过对页面生命周期的监控以实时获知页面处于生命周期的哪一个阶段,提高了方案的时效性。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不再做详细阐述说明。
图6是根据本公开一示例性实施例示出的一种计算设备的结构示意图。
参见图6,计算设备600包括存储器610和处理器620。
处理器620可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器610可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM),和永久存储装置。其中,ROM可以存储处理器620或者计算机的其他模块需要的静态数据或者指令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的指令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的指令和数据。此外,存储器610可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器610可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等等)、磁性软盘等等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器610上存储有可执行代码,当可执行代码被处理器620处理时,可以使处理器620执行上文述及的方法中的部分或全部。
上文中已经参考附图详细描述了本公开的方案。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本领域技术人员也应该知悉,说明书中所涉及的动作和模块并不一定是本公开所必须的。另外,可以理解,本公开实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减,本公开实施例装置中的模块可以根据实际需要进行合并、划分和删减。
此外,根据本公开的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本公开的上述方法中部分或全部步骤的计算机程序代码指令。
或者,本公开还可以实施为一种非暂时性机器可读存储介质(或计算机可读存储介质、或机器可读存储介质),其上存储有可执行代码(或计算机程序、或计算机指令代码),当所述可执行代码(或计算机程序、或计算机指令代码)被电子设备(或计算设备、服务器等)的处理器执行时,使所述处理器执行根据本公开的上述方法的各个步骤的部分或全部。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。
附图中的流程图和框图显示了根据本公开的多个实施例的系统和方法的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标记的功能也可以以不同于附图中所标记的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (10)

1.一种应用程序崩溃处理方法,其特征在于,包括:
获取应用程序的页面的生命周期信息,所述生命周期信息用于指示所述页面当前所处的生命周期阶段;
当所述生命周期信息满足预设条件时,确定用户浏览信息,其中,所述用户浏览信息包括:用户浏览页面信息,所述用户浏览页面信息用于指示用户最近浏览的页面;
当所述应用程序崩溃时,获取对应的崩溃信息;
向服务器上传所述崩溃信息以及所述用户浏览信息。
2.根据权利要求1所述的应用程序崩溃处理方法,其特征在于,所述确定用户浏览信息包括:
当应用程序的页面的生命周期处于创建阶段或者重新可见阶段时,获取所述页面的页面信息,并在每一次执行完获取页面信息的操作后,根据当次获取的页面信息更新用户浏览页面信息。
3.根据权利要求1所述的应用程序崩溃处理方法,其特征在于,所述用户浏览信息还包括:用户浏览位置信息,所述用户浏览位置信息用于指示用户在最近浏览页面对应的浏览位置;
所述确定用户浏览信息息包括:
当应用程序的页面的生命周期处于可交互阶段时,按照预设时间规则获取用户在所述页面对应的浏览位置信息,并在每一次执行完获取浏览位置信息的操作后,根据当次获取的浏览位置信息更新用户浏览位置信息。
4.根据权利要求1至3任一项所述的应用程序崩溃处理方法,其特征在于,所述获取应用程序的页面的生命周期信息包括:
对所述应用程序的页面的生命周期进行监听以获取所述页面的生命周期信息。
5.一种处理装置,其特征在于,包括:
第一获取单元,用于获取应用程序的页面的生命周期信息,所述生命周期信息用于指示所述页面当前所处的生命周期阶段;
确定单元,用于当生命周期信息满足预设条件时,确定用户浏览信息,其中,所述用户浏览信息包括:用户浏览页面信息,所述用户浏览页面信息用于指示用户最近浏览的页面;
第二获取单元,用于当所述应用程序崩溃时,获取对应的崩溃信息;
上传单元,用于向服务器上传所述崩溃信息以及所述用户浏览页面信息。
6.根据权利要求5所述的处理装置,其特征在于,所述确定单元包括:
第一获取模块,用于当应用程序的页面的生命周期处于创建阶段或者重新可见阶段时,获取所述页面的页面信息;
第一更新模块,用于在所述第一获取模块每一次执行完获取页面信息的操作后,根据所述第一获取模块当次获取的页面信息更新用户浏览页面信息。
7.根据权利要求5所述的处理装置,其特征在于,所述用户浏览信息还包括:用户浏览位置信息,所述用户浏览位置信息用于指示用户在最近浏览页面对应的浏览位置;
所述确定单元包括:
第二获取模块,用于当应用程序的页面的生命周期处于可交互阶段时,按照预设时间规则获取用户在所述页面对应的浏览位置信息;
第二更新模块,用于在所述第二获取模块每一次执行完获取浏览位置信息的操作后,根据所述第二获取模块当次获取的浏览位置信息更新用户浏览位置信息。
8.根据权利要求5至7任一项所述的处理装置,其特征在于,所述第一获取单元包括:
监听模块,用于对所述应用程序的页面的生命周期进行监听以获取所述页面的生命周期信息。
9.一种终端设备,其特征在于,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1-4中任一项所述的方法。
10.一种非暂时性机器可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1-4中任一项所述的方法。
CN202010026935.2A 2020-01-10 2020-01-10 一种应用程序崩溃处理方法及处理装置 Pending CN113127242A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010026935.2A CN113127242A (zh) 2020-01-10 2020-01-10 一种应用程序崩溃处理方法及处理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010026935.2A CN113127242A (zh) 2020-01-10 2020-01-10 一种应用程序崩溃处理方法及处理装置

Publications (1)

Publication Number Publication Date
CN113127242A true CN113127242A (zh) 2021-07-16

Family

ID=76771526

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010026935.2A Pending CN113127242A (zh) 2020-01-10 2020-01-10 一种应用程序崩溃处理方法及处理装置

Country Status (1)

Country Link
CN (1) CN113127242A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626245A (zh) * 2021-08-27 2021-11-09 四川虹美智能科技有限公司 防止ios应用程序崩溃的方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100257255A1 (en) * 2009-04-03 2010-10-07 Phillips Derek J Tracking remote browser crashes via cookies
US20120151323A1 (en) * 2010-12-10 2012-06-14 International Business Machines Corporation System, method, and computer program product for management of web page links
WO2014106489A1 (zh) * 2013-01-07 2014-07-10 北京奇虎科技有限公司 浏览器崩溃信息的处理方法及系统
CN104572327A (zh) * 2014-12-24 2015-04-29 北京奇虎科技有限公司 一种浏览器崩溃的处理方法、装置和系统
CN106326025A (zh) * 2016-08-23 2017-01-11 乐视控股(北京)有限公司 浏览器异常处理方法及装置
CN107436777A (zh) * 2016-05-27 2017-12-05 北京京东尚科信息技术有限公司 移动终端、应用程序崩溃处理方法及装置
CN107622000A (zh) * 2017-09-19 2018-01-23 北京京东尚科信息技术有限公司 一种应用程序崩溃信息的收集和上报方法、装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100257255A1 (en) * 2009-04-03 2010-10-07 Phillips Derek J Tracking remote browser crashes via cookies
US20120151323A1 (en) * 2010-12-10 2012-06-14 International Business Machines Corporation System, method, and computer program product for management of web page links
WO2014106489A1 (zh) * 2013-01-07 2014-07-10 北京奇虎科技有限公司 浏览器崩溃信息的处理方法及系统
CN104572327A (zh) * 2014-12-24 2015-04-29 北京奇虎科技有限公司 一种浏览器崩溃的处理方法、装置和系统
CN107436777A (zh) * 2016-05-27 2017-12-05 北京京东尚科信息技术有限公司 移动终端、应用程序崩溃处理方法及装置
CN106326025A (zh) * 2016-08-23 2017-01-11 乐视控股(北京)有限公司 浏览器异常处理方法及装置
CN107622000A (zh) * 2017-09-19 2018-01-23 北京京东尚科信息技术有限公司 一种应用程序崩溃信息的收集和上报方法、装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113626245A (zh) * 2021-08-27 2021-11-09 四川虹美智能科技有限公司 防止ios应用程序崩溃的方法
CN113626245B (zh) * 2021-08-27 2023-04-07 四川虹美智能科技有限公司 防止ios应用程序崩溃的方法

Similar Documents

Publication Publication Date Title
WO2017124808A1 (zh) 一种故障信息的重现方法和重现装置
US9449042B1 (en) Recommending improvements to and detecting defects within applications
US10210190B1 (en) Roll back of scaled-out data
WO2021072880A1 (zh) 虚拟机内部快照异步创建方法、装置、系统及存储介质
US20150236799A1 (en) Method and system for quick testing and detecting mobile devices
CN109783335B (zh) 用户操作录制还原方法、装置、设备及可读存储介质
CN110955598A (zh) 一种内核态程序的断点处理方法及装置
CN111309743A (zh) 报表推送方法及装置
CN111158945A (zh) 内核故障处理方法、装置、网络安全设备和可读存储介质
CN113127242A (zh) 一种应用程序崩溃处理方法及处理装置
CN105453518B (zh) 计量网络的同步
CN110941549B (zh) 一种内存泄漏的检测方法、装置、介质和电子设备
US20170131857A1 (en) Wallpaper processing method and electronic device
CN108520063B (zh) 事件日志的处理方法、装置及终端设备
CN115878358A (zh) 异常日志分析方法、装置、电子设备及存储介质
CN112749130B (zh) 一种清除信息的方法及装置
CN117241276B (zh) 一种面向移动应用的检测工具及检测方法、系统及设备
CN110633087B (zh) 客户端安装方法、装置和存储介质
CN112905433B (zh) 轨迹追踪方法、装置、电子设备和可读存储介质
CN115827080B (zh) 基于串口通讯的嵌入式设备适配方法、装置和计算机设备
CN113742299B (zh) 文件压缩和解压缩方法以及文件压缩和解压缩装置
CN113626245B (zh) 防止ios应用程序崩溃的方法
CN112783886B (zh) 缓存清理方法、装置、计算机设备及存储介质
CN116860525A (zh) Io数据的容灾方法、装置、计算机设备及存储介质
CN116166463A (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