崩溃信息的处理方法、装置及系统与流程

文档序号:11216146阅读:824来源:国知局
崩溃信息的处理方法、装置及系统与流程

本发明涉及一种信息处理技术领域,特别是涉及一种崩溃信息的处理方法、装置及系统。



背景技术:

随着互联网技术的不断发展,互联网客户端应用越来越丰富。客户端应用在运行过程中,如果遇到程序执行错误、违规操作等原因出现异常而无法正常执行或退出时,将会导致客户端崩溃并产生相应的崩溃信息,使得用户无法正常使用该客户端应用。而崩溃发生的原因之一是客户端应用依赖的当前用户计算机上的插件出现问题或客户端程序自身的某个插件出现错误或损坏。

目前,在客户端应用发生崩溃的情况下,经过用户确认后,客户端会收集相应的崩溃信息,并将该崩溃信息上传至服务器,研发人员需要主动查看服务器侧保存的这些崩溃信息,从中分析得到解决客户端崩溃的处理方案,例如,研发一个升级的客户端版本或者补丁文件,以便在以后的客户端版本中修复该问题。

然而,由于客户端应用会不定时的发生崩溃,通过上述人工主动查看的方式,研发人员有时无法及时获取得到客户端相关的崩溃信息,进而不能及时分析得到解决客户端崩溃的处理方案,从而导致客户端崩溃问题的解决效率低下。



技术实现要素:

有鉴于此,本发明提供了一种崩溃信息的处理方法、装置及系统,主要目的在于可以及时分析得到解决客户端崩溃的处理方案,从而可以提高客户端崩溃问题的解决效率。

依据本发明一个方面,提供了一种崩溃信息的处理方法,应用于服务器,该方法包括:

接收客户端发送的崩溃信息;

从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;

确定与所述插件标识信息对应的插件子模块的通信方式信息;

根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

依据本发明另一个方面,提供了一种崩溃信息的处理方法,应用于客户端,该方法包括:

当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;

根据所述插件标识信息,记录相应的崩溃信息;

将所述崩溃信息发送给服务器,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

依据本发明又一个方面,提供了一种服务器,该服务器包括:

接收单元,用于接收客户端发送的崩溃信息;

获取单元,用于从所述接收单元接收的崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;

确定单元,用于确定与所述获取单元获取的插件标识信息对应的插件子模块的通信方式信息;

发送单元,用于根据所述确定单元确定的通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

依据本发明再一个方面,提供了一种客户端,该客户端包括:

标记单元,用于当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;

记录单元,用于根据所述标记单元标记的插件标识信息,记录相应的崩溃信息;

发送单元,用于将所述记录单元记录的崩溃信息发送给服务器,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

依据本发明再一个方面,提供了一种崩溃信息的处理系统,该系统包括:服务器和客户端;

所述客户端,用于当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;根据所述插件标识信息,记录相应的崩溃信息;将所述崩溃信息发送给服务器;

所述服务器,用于接收所述客户端发送的崩溃信息;从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;确定与所述插件标识信息对应的插件子模块的通信方式信息;根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

依据本发明再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

接收客户端发送的崩溃信息;

从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;

确定与所述插件标识信息对应的插件子模块的通信方式信息;

根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

依据本发明再一个方面,提供了一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

接收客户端发送的崩溃信息;

从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;

确定与所述插件标识信息对应的插件子模块的通信方式信息;

根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

依据本发明再一个方面,提供了另一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;

根据所述插件标识信息,记录相应的崩溃信息;

将所述崩溃信息发送给服务器,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

依据本发明再一个方面,提供了一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;

根据所述插件标识信息,记录相应的崩溃信息;

将所述崩溃信息发送给服务器,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

借由上述技术方案,本发明提供的一种崩溃信息的处理方法、装置及系统,与目前需要研发人员主动查看服务器侧保存的客户端崩溃信息的方式相比,本发明可以从客户端发送的崩溃信息中自动获取客户端发生崩溃的插件对应的插件标识信息,并进一步通过该插件标识信息查找到相应的插件子模块的通信方式信息,最后可以根据查找到的通信方式信息,将崩溃信息发送给相关的插件子模块进行分析,通过这种自动化崩溃信息分析的方式,无需研发人员再主动查看服务器侧保存的客户端崩溃信息,可以及时分析得到解决客户端崩溃的处理方案,进而可以提高客户端崩溃问题的解决效率。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了本发明实施例提供的一种崩溃信息的处理方法流程示意图;

图2示出了本发明实施例提供的另一种崩溃信息的处理方法流程示意图;

图3示出了本发明实施例提供的一种崩溃信息的处理实例整体流程示意图;

图4示出了本发明实施例提供的一种崩溃信息的处理实例部分流程示意图;

图5示出了本发明实施例提供的又一种崩溃信息的处理方法的流程示意图;

图6示出了本发明实施例提供的一种服务器的结构示意图;

图7示出了本发明实施例提供的另一种服务器的结构示意图;

图8示出了本发明实施例提供的一种服务器的实体装置结构示意图。

图9示出了本发明实施例提供的一种客户端的结构示意图;

图10示出了本发明实施例提供的一种终端设备的实体装置结构示意图;

图11示出了本发明实施例提供的一种崩溃信息的处理系统的结构示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

插件是指附属程序,如手机卫士软件中的“防盗”插件、“开机加速”插件、“日历”插件,等等。进一步,插件的、与主程序适配的插件版本可以写在主程序代码中,也可以写在主程序的文件中,如以列表的形式记录在主程序的文件中,通常可以存在一个轻量级的数据交换语言(javascriptobjectnotation,json)或可扩展标记语言(extensiblemarkuplanguage,xml)文件中。此外,插件存储目录一般放在应用程序在内置存储中的目录下,例如在手机终端的/data/data/xxx/files下,其中xxx表示主程序的包名,如果客户端应用依赖的当前用户计算机上的插件出现问题或客户端程序自身的某个插件出现错误或损坏时,会导致客户端崩溃。

为了及时解决客户端崩溃问题,本发明实施例提供了一种崩溃信息的处理方法,可以应用于服务器侧,可以及时分析得到解决客户端崩溃的处理方案,如图1所示,该方法包括:

101、服务器接收客户端发送的崩溃信息。

其中,崩溃信息中包含客户端标识、崩溃类型、崩溃插件标识、崩溃时间等,崩溃类型包括oom(outofmemoryerror)、anr(applicationnotresponding)等类型。

在本发明实施例中,当客户端对应的插件发生崩溃时,会相应的标记该插件的插件标识,并记录在相应的崩溃信息中,经过用户确认后,客户端将该崩溃信息上传给服务器,服务器接收该崩溃信息,而对于本发明实施例的执行主体可以为服务器,也可以为服务器中配置的用于崩溃信息处理的装置,在服务器接收到客户端发送的崩溃信息之后,对该崩溃信息进行处理,以便将崩溃信息自动分发给相应的插件子模块进行分析,具体可以执行步骤102至步骤104所述的过程。

102、从崩溃信息中获取客户端发生崩溃的插件对应的插件标识信息。

其中,插件标识信息可以为插件名称、身份标识号码(identity,id)等。

103、确定与获取的插件标识信息对应的插件子模块的通信方式信息。

其中,通信方式信息可以包含插件子模块的电子邮箱(electronicmail,e-mail)地址、网络之间互连的协议(internetprotocol,ip)地址、电话号码、即时通信工具的账号等。

在本发明实施例中,可以预先创建不同插件标识信息与相关插件子模块的通信方式信息之间的映射关系,然后通过这个映射关系,查找到与获取的插件标识信息对应的插件子模块的通信方式信息。

104、根据确定的通信方式信息,将崩溃信息发送给插件子模块进行分析。

其中,插件子模块可以为根据崩溃信息进行分析,得到解决客户端崩溃处理方案的单元模块,具体处理过程可以参见现有技术中的处理方式,在此不再赘述。

例如,根据崩溃插件的名称,查找到研发该插件模块相关插件子模块的电子邮箱地址,按照这个电子邮箱地址,将接收到的崩溃信息自动发送给这个插件子模块的电子邮箱当中,该插件子模块通过电子邮箱接收到该崩溃信息之后,可以从中获取得到客户端崩溃的相关信息,如崩溃的客户端名称、以何种类型崩溃、崩溃率、崩溃的时间、崩溃的插件名称及崩溃插件的相关代码等信息,还可以包括客户端所在终端设备的型号、客户端应用软件的软件版本号、异常栈、正在运行的进程、国际移动设备身份码(internationalmobileequipmentidentity,imei)号加密的消息摘要算法第5版(messagedigestalgorithm5,md5)值、客户端所在终端设备的生厂商、终端设备使用的中央处理器(centralprocessingunit,cpu)型号、终端设备使用的网络类型和终端设备使用的系统的版本号等,结合这些信息分析得到解决客户端崩溃的处理方案,如研发出相应的补丁文件,对客户端进行更新,进而可以做到及时解决客户端崩溃的问题。

本发明实施例提供的一种崩溃信息的处理方法,与目前需要研发人员主动查看服务器侧保存的客户端崩溃信息的方式相比,本发明实施例可以通过这种自动化崩溃信息分析的方式,无需研发人员再主动查看服务器侧保存的客户端崩溃信息,可以及时分析得到解决客户端崩溃的处理方案,进而可以提高客户端崩溃问题的解决效率。

进一步的,作为对上述实施例的细化和扩展,本发明实施例提供了另一种崩溃信息的处理方法,可以应用于服务器,如图2所示,该方法包括:

201、服务器接收不同客户端发送的崩溃信息。

在本发明实施例中,考虑到会接收到大量客户端发送的崩溃信息,可以采用分布式系统架构接收不同客户端发送的崩溃信息,例如,可以采用hadoop分布式系统架构,通过多个服务器接收不同客户端发送的崩溃信息,以便减轻单个服务器的负载压力,并且可以提高崩溃信息的处理效率。

服务器还可以预先收集了各种可能出现的操作系统特征信息以及对应的插件版本,以便于通过将操作系统平台信息与这些预先收集的特征信息进行匹配比较,找到与客户端操作系统平台信息匹配的特征信息,与该特征信息对应的插件即为适合当前操作系统的插件。可以实施为客户端向服务器发送插件获取请求,接着接收服务器根据插件列表返回的、与主程序适配的插件版本。进一步,在客户端获得操作系统适配的插件之后,服务器可以将插件下载地址返回给插件加载系统。例如,服务器可以返回插件的配置结构,其中包括了统一资源定位符(uniformresourcelocator,url)节点,该url节点即为该插件的下载地址。此外,服务器还将插件名、插件的各插件版本所能使用的最低接口版本和最高接口版本返回给插件加载系统,以便用于客户端后续的加载工作。

202、将不同客户端发送的崩溃信息保存在预置存储位置中。

其中,预置存储位置可以根据实际需求预先进行设定,例如,预置存储位置可以为特定的数据库,还可以为后台用于崩溃信息处理的服务器。对于本发明实施例,将接收到的这些崩溃信息发送保存在预置存储位置中,然后可以采用实时流的方式对这些崩溃信息进行及时处理。

具体地,客户端的崩溃信息通过日志机发送到用于崩溃信息处理的服务器进行实时解析。通过实时进行解析之后,将崩溃信息解析的核心元数据存储在预置存储位置中,其中日志机用于收集客户端日志或者日志转发,核心元数据包括:崩溃的客户端名称、以何种类型崩溃、崩溃率、崩溃的时间、崩溃的插件名称及崩溃插件的相关代码、客户端所在终端设备的操作系统版本、该终端设备的型号、该终端设备使用的网络类型、该终端设备使用的cpu型号、该终端设备的生厂商、客户端应用软件的软件版本号等。

在本发明的一个可选实施例中,为了提高崩溃信息的处理效率,可以采用建立崩溃信息对应的索引,并依靠建立的索引进行查询的方式,相应的,步骤202具体可以包括:将接收到的不同客户端发送的崩溃信息根据崩溃堆栈,生成每个崩溃信息各自对应哈希值;然后依据生成的哈希值,建立每个崩溃信息各自对应的崩溃索引;最后将崩溃信息以及相应的崩溃索引保存在预置存储位置中。

203、按照预定时间间隔从预置存储位置中获取符合预定条件的崩溃信息。

其中,预定时间间隔可以根据实际需要预先进行设定,为了使得插件子模块能够及时获取得到客户端相关的崩溃信息,可以将预定时间间隔的时长设置的较短一些。

根据步骤202中可选实施例的描述,相应的,步骤203具体可以包括:根据建立的崩溃索引,按照预定时间间隔从预置存储位置中获取符合预定条件的崩溃信息,与通过查询崩溃信息的方式相比,通过定时查询崩溃信息对应的索引,获取得到符合预定条件的崩溃信息,可以提高崩溃信息的查询效率,进而可以提高崩溃信息的处理效率。

预定条件可以根据用户的实际需求预先进行设定。例如,预定条件可以为满足用户特定指标的,如唯一用户的指标等,相应的,为了进一步提高崩溃信息的查询效率,在本发明的另一个可选实施例中,上述过程具体可以包括:首先对预置存储位置中保存的崩溃索引进行聚合处理,多维度汇总,得到预定指标的崩溃索引,过滤掉无用指标的崩溃索引,得到关于数量的、能够体现唯一用户指标的崩溃索引;然后按照预定时间间隔对这些预定指标的崩溃索引进行查询;最后根据查询结果,确定符合预定条件的崩溃信息。通过这种查询方式,可以只查询用户所关心指标的崩溃索引,减少了查询量,进而进一步提高了崩溃信息的查询效率,从而进一步提高了崩溃信息的处理效率。

为了节省预置存储位置的存储空间,减轻装置侧相应的负载压力,在本发明的又一个可选实施例中,步骤203具体还可以包括:按照预定时间间隔对预置存储位置中过期的崩溃信息进行清除;从清除后的预置存储位置中获取符合预定条件的崩溃信息。例如,可以记录崩溃信息保存到预置存储位置时的存储时间,根据该存储时间和当前查询时刻,确定该崩溃信息是否已经过期,如该崩溃信息在预置存储位置中保存的时间是否大于一定时长阈值,如果该崩溃信息已经过期,可以将该崩溃信息标记为无效信息并进行清除,无需对该崩溃信息进行进一步处理,在对预置存储位置中所有过期的崩溃信息进行清除后,从清除后的预置存储位置中获取符合预定条件的崩溃信息。通过这种方式,不但可以节省预置存储位置的存储空间,减轻装置侧相应的负载压力,而且还可以提高崩溃信息的查询效率,进而可以提高崩溃信息的处理效率。

204、从符合预定条件的崩溃信息中获取客户端发生崩溃的插件对应的插件标识信息。

例如,从崩溃信息中获取得到客户端发生崩溃的插件对应的插件名称。

205、确定与获取到的插件标识信息对应的插件子模块的通信方式信息。

具体可以查询预先创建的不同插件标识信息与相关插件子模块的通信方式信息之间的映射关系,根据查询结果,确定与获取到的插件标识信息对应的插件子模块的通信方式信息。

206、统计预定时间段内与获取的插件标识信息对应崩溃插件的崩溃人数。

其中,预定时间段可以根据实际需求进行设定,例如,预定时间段可以为以当前查询崩溃信息的时刻算起,之前半个月内的这段时间,统计这段时间内由于该崩溃插件的客户端崩溃人数。

207、根据统计得到的崩溃人数确定崩溃插件的崩溃等级。

在本发明实施例中,可以按照崩溃人数的不同量级,预先划分不同的崩溃人数范围,每个崩溃人数范围各自对应崩溃等级,例如,可以预先划分三个崩溃等级,分别为危险、中等、轻微异常,每个崩溃等级各自对应不同的崩溃人数范围,当统计得到预定时间段内崩溃插件的崩溃人数处于危险等级的崩溃人数范围内时,确定该崩溃插件的崩溃等级为危险等级;当统计得到预定时间段内崩溃插件的崩溃人数处于中等等级的崩溃人数范围内时,确定该崩溃插件的崩溃等级为中等等级。

208、根据确定的通信方式信息和确定的崩溃等级,将崩溃信息发送给插件子模块进行分析。

为了实现及时将影响相对较重的客户端崩溃信息发送给插件子模块,在本发明的再一个可选实施例中,步骤207具体可以包括:当崩溃等级处于预设告警范围时,根据通信方式信息,将崩溃信息发送给插件子模块。其中,预设告警范围可以根据用户的需求预先进行设定,例如,预设告警范围包括危险等级和中等等级,当确定崩溃插件的崩溃等级为危险等级或中等等级时,根据插件子模块的通信方式信息,将相应的客户端崩溃信息发送给相应的插件子模块,进而可以及时分析得到解决较严重的客户端崩溃问题的处理方案。对于影响相对较小的客户端崩溃信息,如在量级比较大的用户当中只有1个用户的客户端由于该插件崩溃导致出现客户端崩溃情况,说明可能是该用户意外操作导致的该崩溃情况,可以暂时不将相应的该客户端崩溃信息发送给插件子模块进行分析。

为了实现结合实际影响情况,对崩溃信息进行处理,在本发明的再一个可选实施例中,步骤207具体还可以包括:根据通信方式信息,将崩溃信息和崩溃等级发送给插件子模块进行分析,进而插件子模块可以根据每个崩溃信息对应的崩溃等级,优先分析影响相对较重的客户端崩溃问题的处理方案,从而可以达到结合实际影响情况,对崩溃信息进行处理的目的。

在插件子模块接收到的崩溃信息时,为了方便插件子模块直接分析存在问题的程序代码,在本发明的再一个可选实施例中,上述将崩溃信息发送给插件子模块的过程,具体可以包括:对崩溃信息中需要反混淆的内容进行反混淆处理,得到反混淆处理后的程序代码;将包含程序代码的崩溃信息发送给插件子模块,进而插件子模块可以直接分析存在问题的程序代码,而不是存在混淆的程序代码,减少插件子模块二次查找相应程序代码的步骤,从而可以提高客户端崩溃问题的解决效率。

进一步地,为了实现对特定时间段内接收到的崩溃信息进行汇总分析,满足对不同插件质量的评定需求,在本发明的再一个可选实施例中,上述方法还可以包括:对预设时间段内接收到的不同客户端发送的崩溃信息进行归类分析。

具体地,可以对预设时间段内接收到的不同客户端发送的崩溃信息进行归类分析,得到不同崩溃类型分别对应的出现崩溃次数占比、和/或不同版本号的同一插件分别对应的出现崩溃次数占比、和/或不同插件分别对应的出现崩溃次数占比、和/或不同插件分别对应的出现崩溃人数占比。

例如,可以对特定月份内接收到的不同客户端发送的崩溃信息进行归类分析,基于客户端不同的崩溃类型、该月份单个插件各版本数据、崩溃人数、崩溃次数等信息进行统计,得到该月份内不同崩溃类型分别对应的客户端出现崩溃次数的柱状图、该月份单个插件各版本崩溃次数比例饼状图、该月份各插件之间质量比较图等,可以满足该月份内对不同插件质量的评定需求。

为了更好的说明本发明实施例提供方法的实施过程,给出如下具体的应用实例,但不限于此。

例如,当客户端对应的插件发生崩溃时,会相应的标记该插件的插件名称、版本号等,并记录在相应的崩溃信息中,经过用户确认后,客户端将该崩溃信息上传给服务器;服务器对该崩溃信息进行处理,将不同客户端上传的崩溃信息保存在崩溃后台,具体根据崩溃堆栈,生成每个崩溃信息各自对应哈希值,再依据生成的哈希值,建立每个崩溃信息各自对应的崩溃索引,然后将崩溃信息以及相应的崩溃索引保存在崩溃后台;接下来的处理流程如图3所示,首先通过自动定时查询模块,根据建立的崩溃索引,按照预定时间间隔从预置存储位置中获取符合预定条件的崩溃信息;再通过崩溃索引解析引擎解析出崩溃信息对应的崩溃堆栈、包含的崩溃插件名称、崩溃人数等信息;再通过解析出的插件名称,查找到研发该客户端模块的相关负责人的负责人邮箱;然后通过崩溃分级模块,根据插件崩溃人数确定崩溃的等级,连同崩溃信息一起通过邮箱分发给相关负责人,以便负责人从中分析得到解决客户端崩溃的处理方案。

为了实现对特定时间段内接收到的崩溃信息进行汇总分析,如图3所示,可以通过数据存储模块,崩溃信息按崩溃类型、所属插件等信息进行归类分析,具体如图4所示,可以对特定月份内接收到的不同客户端发送的崩溃信息进行归类分析,基于客户端不同的崩溃类型、该月份单个插件各版本数据、崩溃人数、崩溃次数等信息进行统计,得到该月份内不同崩溃类型分别对应的客户端出现崩溃次数的柱状图、该月份单个插件各版本崩溃次数比例饼状图、该月份各插件之间质量比较图等,进而可以分析得到该月份内哪个崩溃类型出现客户端崩溃次数比较多、哪个版本的插件出现的问题比较多、哪个插件的质量较差等,从而可以满足该月份内对不同插件质量的评定需求。

本发明实施例提供的另一种崩溃信息的处理方法,与目前需要研发人员主动查看服务器侧保存的客户端崩溃信息的方式相比,可以及时分析得到解决客户端崩溃的处理方案,从而可以提高客户端崩溃问题的解决效率;并且可以实现对特定时间段内接收到的崩溃信息进行汇总分析,满足对不同插件质量的评定需求。

上述实施例所描述的是服务器侧进行崩溃信息的处理过程,相应的,本发明实施例提供了又一种崩溃信息的处理方法,可以应用于客户端,如图5所示,该方法包括:

301、当客户端对应的插件发生崩溃时,标记插件对应的插件标识信息。

其中,插件标识信息可以插件名称、id号等。

302、根据标记的插件标识信息,记录相应的崩溃信息。

具体可以将标记的插件名称、以及该插件的版本号等信息,一同记录在相应的崩溃信息当中。

303、将记录的崩溃信息发送给服务器。

进一步地,以使得服务器确定与崩溃信息中插件标识信息对应的插件子模块的通信方式信息,并根据通信方式信息,将崩溃信息发送给插件子模块进行分析。需要说明的是,在服务器侧,对记录的崩溃信息进行处理的具体过程可以参考步骤101至104、以及步骤201至207中的相应描述,在此不再赘述。

本发明实施例提供的又一种崩溃信息的处理方法,与目前需要研发人员主动查看服务器侧保存的客户端崩溃信息的方式相比,可以及时分析得到解决客户端崩溃的处理方案,从而可以提高客户端崩溃问题的解决效率。

进一步地,作为图1和图2所述方法的具体实现,本发明实施例提供了一种服务器,如图6所示,所述服务器包括:接收单元41、获取单元42、确定单元43、发送单元44。

接收单元41,可以用于接收客户端发送的崩溃信息;接收单元41面向客户端,为本服务器中接收客户端发送的请求信息的主要功能模块。

获取单元42,可以用于从所述接收单元41接收的崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;获取单元42为本服务器中获取插件标识信息主要功能模块,在获取得到插件标识信息之后,可以触发确定模块43进行工作。

确定单元43,可以用于确定与所述获取单元42获取的插件标识信息对应的插件子模块的通信方式信息;确定单元43为本服务器中通过获取得到的插件标识信息,查询相应插件子模块的通信方式信息的主要功能模块。

发送单元44,可以用于根据所述确定单元43确定的通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。发送单元44同样面向客户端,在插件子模块收到该崩溃信息之后,可以从中分析得到解决客户端崩溃的处理方案,如研发出相应的客户端更新版本,进而可以做到及时解决客户端崩溃的问题。

进一步地,为了实现结合实际影响情况,对崩溃信息进行处理,如图7所示,所述服务器还包括:统计单元45。

所述统计单元45,可以用于统计预定时间段内与所述插件标识信息对应崩溃插件的崩溃人数。

所述确定单元43,还可以用于根据所述崩溃人数确定所述崩溃插件的崩溃等级。

所述发送单元44,具体可以用于根据所述通信方式信息和所述崩溃等级,将所述崩溃信息发送给所述插件子模块进行分析。

在具体的应用场景中,为了实现及时将影响相对较重的客户端崩溃信息发送给插件子模块,所述发送单元44,具体还可以用于当所述崩溃等级处于预设告警范围时,根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析;或根据所述通信方式信息,将所述崩溃信息和所述崩溃等级发送给所述插件子模块进行分析。

在具体的应用场景中,为了方便插件子模块直接分析存在问题的程序代码,如图7所示,所述发送单元44具体可以包括:处理模块441、发送模块442。

处理模块441,可以用于对所述崩溃信息中需要反混淆的内容进行反混淆处理,得到反混淆处理后的程序代码;

发送模块442,可以用于将包含所述程序代码的崩溃信息发送给所述插件子模块进行分析。

进一步地,为了实现对特定时间段内接收到的崩溃信息进行汇总分析,满足对不同插件质量的评定需求,如图7所示,所述服务器还包括:分析单元46。

分析单元46,可以用于对预设时间段内接收到的不同客户端发送的崩溃信息进行归类分析。

在具体的应用场景中,所述分析单元46,具体用于对预设时间段内接收到的不同客户端发送的崩溃信息进行归类分析,得到不同崩溃类型分别对应的出现崩溃次数占比、和/或不同版本号的同一插件分别对应的出现崩溃次数占比、和/或不同插件分别对应的出现崩溃次数占比、和/或不同插件分别对应的出现崩溃人数占比。

进一步地,如图7所示,所述服务器还包括:保存单元47。

所述保存单元47,可以用于将不同客户端发送的崩溃信息保存在预置存储位置中;

所述获取单元42,具体可以用于按照预定时间间隔从所述预置存储位置中获取符合预定条件的崩溃信息;从所述符合预定条件的崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息。

在具体的应用场景中,为了提高崩溃信息的处理效率,所述保存单元47,具体可以用于将不同客户端发送的崩溃信息根据崩溃堆栈,生成崩溃信息各自对应哈希值;依据所述哈希值,建立崩溃信息各自对应的崩溃索引;将崩溃信息以及相应的崩溃索引保存在预置存储位置中;

所述获取单元42,具体可以用于根据所述崩溃索引,按照预定时间间隔从所述预置存储位置中获取符合预定条件的崩溃信息。

在具体的应用场景中,为了进一步提高崩溃信息的处理效率,如图7所示,所述获取单元42包括:处理模块421、查询模块422、确定模块423。

处理模块421,可以用于对所述预置存储位置中保存的崩溃索引进行聚合处理,得到预定指标的崩溃索引;

查询模块422,可以用于按照预定时间间隔对所述处理模块421处理得到的预定指标的崩溃索引进行查询;

确定模块423,可以用于根据所述查询模块422的查询结果,确定符合预定条件的崩溃信息。

在具体的应用场景中,节省预置存储位置的存储空间,减轻装置侧相应的负载压力,所述获取单元42,具体还可以用于按照预定时间间隔对所述预置存储位置中过期的崩溃信息进行清除;从清除后的预置存储位置中获取符合预定条件的崩溃信息。

需要说明的是,本发明实施例提供的一种服务器所涉及各功能单元的其他相应描述,可以参考图1和图2中的对应描述,在此不再赘述。

基于上述如图1所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:接收客户端发送的崩溃信息;从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;确定与所述插件标识信息对应的插件子模块的通信方式信息;根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

基于上述如图1和图2所示方法和如图6和图7所示装置的实施例,本发明实施例还提供了一种服务器的实体装置,如图8所示,该装置包括:处理器51、存储器52、及存储在存储器52上并可在处理器上运行的计算机程序,所述处理器51执行所述程序时实现以下步骤:接收客户端发送的崩溃信息;从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;确定与所述插件标识信息对应的插件子模块的通信方式信息;根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析;该装置还包括:总线53,被配置为耦接处理器51及存储器52。

进一步地,作为图5所述方法的具体实现,本发明实施例提供了一种客户端,如图9所示,所述客户端包括:标记单元61、记录单元62、发送单元63。

标记单元61,可以用于当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;

记录单元62,可以用于根据所述标记单元61标记的插件标识信息,记录相应的崩溃信息;

发送单元63,可以用于将所述记录单元62记录的崩溃信息发送给服务器。

进一步地,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

需要说明的是,本发明实施例提供的一种客户端所涉及各功能单元的其他相应描述,可以参考图5中的对应描述,在此不再赘述。

基于上述如图5所示方法,相应的,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;根据所述插件标识信息,记录相应的崩溃信息;将所述崩溃信息发送给服务器,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块。

基于上述如图5所示方法和如图9所示装置的实施例,本发明实施例还提供了一种终端设备的实体装置,如图10所示,该终端设备包括:处理器71、存储器72、及存储在存储器72上并可在处理器上运行的计算机程序,所述处理器71执行所述程序时实现以下步骤:当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;根据所述插件标识信息,记录相应的崩溃信息;将所述崩溃信息发送给服务器,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析;该终端设备还包括:总线73,被配置为耦接处理器71及存储器72。

进一步地,本发明实施例提供了一种崩溃信息的处理系统,如图11所示,包括:服务器81和客户端82。

所述客户端82,可以用于当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;根据所述插件标识信息,记录相应的崩溃信息;将所述崩溃信息发送给服务器81;

所述服务器81,可以用于接收所述客户端82发送的崩溃信息;从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;确定与所述插件标识信息对应的插件子模块的通信方式信息;根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

通过应用本发明的技术方案,可以使得插件子模块及时获取得到客户端相关的崩溃信息,进而可以及时分析得到解决客户端崩溃的处理方案,从而可以提高客户端崩溃问题的解决效率。

本发明实施例公开了:

a1、一种崩溃信息的处理方法,应用于服务器,包括:

接收客户端发送的崩溃信息;

从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;

确定与所述插件标识信息对应的插件子模块的通信方式信息;

根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

a2、根据如a1所述的方法,所述根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析之前,所述方法还包括:

统计预定时间段内与所述插件标识信息对应崩溃插件的崩溃人数;

根据所述崩溃人数确定所述崩溃插件的崩溃等级;

所述根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析,具体包括:

根据所述通信方式信息和所述崩溃等级,将所述崩溃信息发送给所述插件子模块进行分析。

a3、根据如a2所述的方法,所述根据所述通信方式信息和所述崩溃等级,将所述崩溃信息发送给所述插件子模块进行分析,具体包括:

当所述崩溃等级处于预设告警范围时,根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析;或

根据所述通信方式信息,将所述崩溃信息和所述崩溃等级发送给所述插件子模块进行分析。

a4、根据如a1至a3任一项所述的方法,所述将所述崩溃信息发送给所述插件子模块进行分析,具体包括:

对所述崩溃信息中需要反混淆的内容进行反混淆处理,得到反混淆处理后的程序代码;

将包含所述程序代码的崩溃信息发送给所述插件子模块进行分析。

a5、根据如a1所述的方法,所述方法还包括:

对预设时间段内接收到的不同客户端发送的崩溃信息进行归类分析。

a6、根据如a5所述的方法,所述对预设时间段内接收到的不同客户端发送的崩溃信息进行归类分析,具体包括:

对预设时间段内接收到的不同客户端发送的崩溃信息进行归类分析,得到不同崩溃类型分别对应的出现崩溃次数占比、和/或不同版本号的同一插件分别对应的出现崩溃次数占比、和/或不同插件分别对应的出现崩溃次数占比、和/或不同插件分别对应的出现崩溃人数占比。

a7、根据如a1所述的方法,所述从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息之前,所述方法还包括:

将不同客户端发送的崩溃信息根据崩溃堆栈,生成崩溃信息各自对应哈希值;

依据所述哈希值,建立崩溃信息各自对应的崩溃索引;

将崩溃信息以及相应的崩溃索引保存在预置存储位置中;

所述从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息,具体包括:

根据所述崩溃索引,按照预定时间间隔从所述预置存储位置中获取符合预定条件的崩溃信息;

从所述符合预定条件的崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息。

a8、根据如a7所述的方法,所述根据所述崩溃索引,按照预定时间间隔从所述预置存储位置中获取符合预定条件的崩溃信息,具体包括:

对所述预置存储位置中保存的崩溃索引进行聚合处理,得到预定指标的崩溃索引;

按照预定时间间隔对预定指标的崩溃索引进行查询;

根据查询结果,确定符合预定条件的崩溃信息。

a9、根据如a7所述的方法,所述根据所述崩溃索引,按照预定时间间隔从所述预置存储位置中获取符合预定条件的崩溃信息,具体包括:

按照预定时间间隔对所述预置存储位置中过期的崩溃信息进行清除;

根据所述崩溃索引,从清除后的预置存储位置中获取符合预定条件的崩溃信息。

b10、一种崩溃信息的处理方法,应用于客户端,包括:

当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;

根据所述插件标识信息,记录相应的崩溃信息;

将所述崩溃信息发送给服务器,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

c11、一种服务器,包括:

接收单元,用于接收客户端发送的崩溃信息;

获取单元,用于从所述接收单元接收的崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;

确定单元,用于确定与所述获取单元获取的插件标识信息对应的插件子模块的通信方式信息;

发送单元,用于根据所述确定单元确定的通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

c12、根据如c11所述的服务器,所述服务器还包括:统计单元;

所述统计单元,用于统计预定时间段内与所述插件标识信息对应崩溃插件的崩溃人数;

所述确定单元,还用于根据所述崩溃人数确定所述崩溃插件的崩溃等级;

所述发送单元,具体用于根据所述通信方式信息和所述崩溃等级,将所述崩溃信息发送给所述插件子模块进行分析。

c13、根据如c12所述的服务器,

所述发送单元,具体还用于当所述崩溃等级处于预设告警范围时,根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析;或

根据所述通信方式信息,将所述崩溃信息和所述崩溃等级发送给所述插件子模块进行分析。

c14、根据如c11至c13任一项所述的服务器,所述发送单元具体包括:

处理模块,用于对所述崩溃信息中需要反混淆的内容进行反混淆处理,得到反混淆处理后的程序代码;

发送模块,用于将包含所述程序代码的崩溃信息发送给所述插件子模块进行分析。

c15、根据如c11所述的服务器,所述服务器还包括:

分析单元,用于对预设时间段内接收到的不同客户端发送的崩溃信息进行归类分析。

c16、根据如c15所述的服务器,

所述分析单元,具体用于对预设时间段内接收到的不同客户端发送的崩溃信息进行归类分析,得到不同崩溃类型分别对应的出现崩溃次数占比、和/或不同版本号的同一插件分别对应的出现崩溃次数占比、和/或不同插件分别对应的出现崩溃次数占比、和/或不同插件分别对应的出现崩溃人数占比。

c17、根据如c11所述的服务器,所述服务器还包括:保存单元;

所述保存单元,用于将不同客户端发送的崩溃信息根据崩溃堆栈,生成崩溃信息各自对应哈希值;

依据所述哈希值,建立崩溃信息各自对应的崩溃索引;

将崩溃信息以及相应的崩溃索引保存在预置存储位置中;

所述获取单元,具体用于根据所述崩溃索引,按照预定时间间隔从所述预置存储位置中获取符合预定条件的崩溃信息;

从所述符合预定条件的崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息。

c18、根据如c17所述的服务器,所述获取单元具体包括:

处理模块,用于对所述预置存储位置中保存的崩溃索引进行聚合处理,得到预定指标的崩溃索引;

查询模块,用于按照预定时间间隔对所述处理模块处理得到的预定指标的崩溃索引进行查询;

确定模块,用于根据所述查询模块的查询结果,确定符合预定条件的崩溃信息。

c19、根据如c17所述的服务器,

所述获取单元,具体还用于按照预定时间间隔对所述预置存储位置中过期的崩溃信息进行清除;

根据所述崩溃索引,从清除后的预置存储位置中获取符合预定条件的崩溃信息。

d20、一种客户端,包括:

标记单元,用于当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;

记录单元,用于根据所述标记单元标记的插件标识信息,记录相应的崩溃信息;

发送单元,用于将所述记录单元记录的崩溃信息发送给服务器,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

e21、一种崩溃信息的处理系统,包括:如c11至c19任一项所述的服务器和如d20所述的客户端。

f22、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

接收客户端发送的崩溃信息;

从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;

确定与所述插件标识信息对应的插件子模块的通信方式信息;

根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

g23、一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

接收客户端发送的崩溃信息;

从所述崩溃信息中获取所述客户端发生崩溃的插件对应的插件标识信息;

确定与所述插件标识信息对应的插件子模块的通信方式信息;

根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

h24、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现以下步骤:

当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;

根据所述插件标识信息,记录相应的崩溃信息;

将所述崩溃信息发送给服务器,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

i25、一种终端设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以下步骤:

当客户端对应的插件发生崩溃时,标记所述插件对应的插件标识信息;

根据所述插件标识信息,记录相应的崩溃信息;

将所述崩溃信息发送给服务器,以使得所述服务器确定与所述崩溃信息中所述插件标识信息对应的插件子模块的通信方式信息,并根据所述通信方式信息,将所述崩溃信息发送给所述插件子模块进行分析。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

可以理解的是,上述方法及装置中的相关特征可以相互参考。另外,上述实施例中的“第一”、“第二”等是用于区分各实施例,而并不代表各实施例的优劣。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的一种崩溃信息的处理方法、装置及系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1