故障日志处理方法和装置与流程

文档序号:20699959发布日期:2020-05-12 15:32阅读:442来源:国知局
故障日志处理方法和装置与流程

本申请实施例涉及一种通信技术领域,尤其涉及一种故障日志处理方法和装置。



背景技术:

为了便于用户正常使用终端设备,终端设备中一般运行有系统和应用程序供用户来操作来完成所需的任务。但是在运行过程中系统或应用程序有时会出现故障,在出现故障后,终端设备会采集该故障的故障日志,并将采集到的故障日志发送给相应的服务器,服务器接收到终端设备的故障日志后,根据该故障日志可以确定出现的故障的原因,以便解决终端设备中出现的故障。但是现有技术中,终端设备向服务器发送的故障日志的数据量大,消耗更多的网络带宽资源。



技术实现要素:

本申请实施例提供一种故障日志处理方法和装置,用于减少终端设备向服务器发送的有关故障日志的数据量,节省网络带宽资源。

第一方面,本申请实施例提供一种故障日志处理方法,包括:

终端设备在检测到故障发生后,获取故障日志信息,所述故障日志信息包括n份基础日志信息,所述n为大于等于2;

所述终端设备根据每份基础日志信息,获得每份基础日志信息的特征信息;

所述终端设备根据所述n份基础日志信息和每份基础日志信息的特征信息,获得m份子日志信息,m为大于等于2的整数,所述每份子日志信息由至少k份基础日志信息和所述至少k份基础日志信息的特征信息生成,所述k为小于n的整数;

所述终端设备向服务器发送所述m份子日志信息中的l份子日志信息以及所述n份基础日志信息中除用于生成所述l份子日志信息的基础日志信息之外的其它基础日志信息的特征信息,所述l为小于m的正整数。

在一种可能的实现方式中,所述终端设备向所述服务器发送所述m份子日志信息中的l份子日志信息之前,还包括:

所述终端设备根据所述终端设备的标识信息,从所述m份子日志信息中确定需要发送的所述l份子日志信息。

在一种可能的实现方式中,所述终端设备根据所述终端设备的标识信息,从所述m份子日志信息中确定需要发送的所述l份子日志信息,包括:

所述终端设备根据所述标识信息,对所述m求余运算,获得余数值;

所述终端设备根据所述余数值,从所述m份子日志信息中确定需要发送的所述l份子日志信息。

在一种可能的实现方式中,所述终端设备根据所述标识信息,对所述m求余运算,获得余数值,包括:

所述终端设备根据所述标识信息和预设值,对所述m求余运算,获得余数值;

其中,所述预设值是所述终端设备从所述服务器周期性接收的。

在一种可能的实现方式中,所述l份子日志信息在所述m份子日志信息中的序号与所述余数值有关。

在一种可能的实现方式中,所述终端设备向所述服务器发送所述m份子日志信息中的l份子日志信息之前,还包括:

所述终端设备获取所述故障日志信息的故障特征信息;

所述终端设备确定所述终端设备是否存储有所述故障特征信息;

所述终端设备向所述服务器发送所述m份子日志信息中的l份子日志信息,包括:

若所述终端设备未存储有所述故障特征信息,则所述终端设备向所述服务器发送所述l份子日志信息。

在一种可能的实现方式中,所述终端设备还存储所述故障特征信息。

在一种可能的实现方式中,所述终端设备还向所述服务器发送所述故障日志信息的故障特征信息。

在一种可能的实现方式中,所述终端设备获取所述故障日志信息的故障特征信息,包括:

所述终端设备根据所述故障的类型信息、所述故障对应发生时的运行环境信息、所述n份基础日志信息中最有可能确定出所述故障的前p份基础日志信息中的特征信息,获得所述故障日志信息的故障特征信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息和所述至少k份基础日志信息的特征信息。

在一种可能的实现方式中,所述终端设备根据每份基础日志信息,获得每份基础日志信息的特征信息,包括:

所述终端设备对每份基础日志信息做归一化处理,获得每份基础日志信息的归一化数据;

所述终端设备根据每份基础日志信息的归一化数据,获得每份基础日志信息的特征信息;

所述终端设备根据所述n份基础日志信息和每份基础日志信息的特征信息,获得m份子日志信息,包括:

所述终端设备根据所述n份基础日志信息的归一化数据和每份基础日志信息的特征信息,获得m份子日志信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息的归一化数据和所述至少k份基础日志信息的特征信息。

第二方面,本申请实施例提供一种故障日志处理方法,包括:

服务器接收终端设备发送的l份子日志信息以及n份基础日志信息中除用于生成所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,所述每份子日志信息由至少k份基础日志信息和所述至少k份基础日志信息的特征信息生成,m为大于等于2的整数,所述l为小于m的正整数,所述k为小于n的整数;

所述服务器根据n份基础日志信息中除所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,获取所述其它基础日志信息中的q份基础日志信息,所述q为整数;

所述服务器根据所述q份基础日志信息和用于生成所述l份子日志信息的基础日志信息,获得故障日志信息;

其中,所述q份基础日志信息是所述服务器从其它至少一个终端设备接收的。

在一种可能的实现方式中,所述方法还包括:

所述服务器还接收所述终端设备发送的所述故障日志信息的故障特征信息;

所述服务器根据n份基础日志信息中除所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,获取所述其它基础日志信息中的q份基础日志信息,包括:

所述服务器根据所述故障日志信息的故障特征信息,获取与所述故障特征信息对应的基础日志信息;

所述服务器根据所述其它基础日志信息的特征信息,从与所述故障特征信息对应的基础日志信息中获取所述q份基础日志信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息和所述至少k份基础日志信息的特征信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息的归一化数据和所述至少k份基础日志信息的特征信息。

在一种可能的实现方式中,所述服务器根据n份基础日志信息中除所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,获取所述其它基础日志信息中的q份基础日志信息,包括:

所述服务器根据所述其它基础日志信息的特征信息,获取所述其它基础日志信息中q份基础日志信息的归一化数据;

所述服务器根据所述q份基础日志信息和用于生成所述l份子日志信息的基础日志信息,获得故障日志信息,包括:

所述服务器根据所述q份基础日志信息的归一化数据和所述l份子日志信息中包括的基础日志信息的归一化数据,获得故障日志信息。

第三方面,本申请实施例提供一种通信装置,包括:

检测模块,用于检测终端设备是否发生故障;

处理模块,用于在所述检测模块检测到故障发生后,获取故障日志信息,所述故障日志信息包括n份基础日志信息,所述n为大于等于2;根据每份基础日志信息,获得每份基础日志信息的特征信息;根据所述n份基础日志信息和每份基础日志信息的特征信息,获得m份子日志信息,m为大于等于2的整数,所述每份子日志信息由至少k份基础日志信息和所述至少k份基础日志信息的特征信息生成,所述k为小于n的整数;

收发模块,用于向所述服务器发送所述m份子日志信息中的l份子日志信息以及所述n份基础日志信息中除用于生成所述l份子日志信息的基础日志信息之外的其它基础日志信息的特征信息,所述l为小于m的正整数。

在一种可能的实现方式中,所述处理模块,还用于在所述收发模块向所述服务器发送所述m份子日志信息中的l份子日志信息之前,根据所述终端设备的标识信息,从所述m份子日志信息中确定需要发送的所述l份子日志信息。

在一种可能的实现方式中,所述处理模块,具体用于:根据所述标识信息,对所述m求余运算,获得余数值;根据所述余数值,从所述m份子日志信息中确定需要发送的所述l份子日志信息。

在一种可能的实现方式中,所述处理模块,具体用于:根据所述标识信息和预设值,对所述m求余运算,获得余数值;

其中,所述预设值是所述收发模块从所述服务器周期性接收的。

在一种可能的实现方式中,所述l份子日志信息在所述m份子日志信息中的序号与所述余数值有关。

在一种可能的实现方式中,所述处理模块,还用于在所述收发模块向所述服务器发送所述m份子日志信息中的l份子日志信息之前,获取所述故障日志信息的故障特征信息,并确定所述终端设备是否存储有所述故障特征信息;

所述收发模块,具体用于:若所述终端设备未存储有所述故障特征信息,则向所述服务器发送所述l份子日志信息。

在一种可能的实现方式中,所述通信装置还包括:

存储模块,用于存储所述故障特征信息。

在一种可能的实现方式中,所述收发模块,还用于向所述服务器发送所述故障日志信息的故障特征信息。

在一种可能的实现方式中,所述处理模块,具体用于:

根据所述故障的类型信息、所述故障对应发生时的运行环境信息、所述n份基础日志信息中最有可能确定出所述故障的前p份基础日志信息中的特征信息,获得所述故障日志信息的故障特征信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息和所述至少k份基础日志信息的特征信息。

在一种可能的实现方式中,所述处理模块,在根据每份基础日志信息,获得每份基础日志信息的特征信息时,具体用于:

对每份基础日志信息做归一化处理,获得每份基础日志信息的归一化数据;

根据每份基础日志信息的归一化数据,获得每份基础日志信息的特征信息;

所述处理模块,在根据所述n份基础日志信息和每份基础日志信息的特征信息,获得m份子日志信息时,具体用于:根据所述n份基础日志信息的归一化数据和每份基础日志信息的特征信息,获得m份子日志信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息的归一化数据和所述至少k份基础日志信息的特征信息。

第三方面本申请实施例提供的通信装置可以为终端设备。

第四方面,本申请实施例提供一种通信装置,包括:

接收模块,用于接收终端设备发送的l份子日志信息以及n份基础日志信息中除用于生成所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,所述每份子日志信息由至少k份基础日志信息和所述至少k份基础日志信息的特征信息生成,m为大于等于2的整数,所述l为小于m的正整数,所述k为小于n的整数;

处理模块,用于根据n份基础日志信息中除所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,获取所述其它基础日志信息中的q份基础日志信息,所述q为整数;以及根据所述q份基础日志信息和用于生成所述l份子日志信息的基础日志信息,获得故障日志信息;

其中,所述q份基础日志信息是所述服务器从其它至少一个终端设备接收的。

在一种可能的实现方式中,所述接收模块,还用于接收所述终端设备发送的所述故障日志信息的故障特征信息;

所述处理模块,具体用于:根据所述故障日志信息的故障特征信息,获取与所述故障特征信息对应的基础日志信息;根据所述其它基础日志信息的特征信息,从与所述故障特征信息对应的基础日志信息中获取所述q份基础日志信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息和所述至少k份基础日志信息的特征信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息的归一化数据和所述至少k份基础日志信息的特征信息。

在一种可能的实现方式中,所述处理模块在根据n份基础日志信息中除所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,获取所述其它基础日志信息中的q份基础日志信息时,具体用于:

根据所述其它基础日志信息的特征信息,获取所述其它基础日志信息中q份基础日志信息的归一化数据;

所述处理模块在根据所述q份基础日志信息和用于生成所述l份子日志信息的基础日志信息,获得故障日志信息时,具体用于:根据所述q份基础日志信息的归一化数据和所述l份子日志信息中包括的基础日志信息的归一化数据,获得故障日志信息。

第四方面本申请实施例提供的通信装置可以为服务器。

第五方面,本申请实施例提供一种通信装置,包括:存储器和处理器,所述存储器与所述处理器耦合。所述存储器用于存储程序指令。所述处理器用于调用所述存储器中的程序指令执行如第一方面至第一方面的任一种可能的实现方式中任一项所描述的故障日志处理方法。在一种可能的实现方式中,所述处理器为一个或多个。

在一种可能的实现方式中,通信装置还可以包括收发器,该处理器用于控制收发器收发信号。

第六方面,本申请实施例提供一种通信装置,包括:存储器和处理器,所述存储器与所述处理器耦合。所述存储器用于存储程序指令。所述处理器用于调用所述存储器中的程序指令执行如第二方面至第二方面的任一种可能的实现方式中任一项所描述的故障日志处理方法。在一种可能的实现方式中,所述处理器为一个或多个。

在一种可能的实现方式中,通信装置还可以包括通信接口,该处理器用于控制通信接口收发信号。

第七方面,本申请实施例提供一种芯片或者芯片系统,该芯片或者芯片系统包括至少一个处理器和通信接口,通信接口和至少一个处理器通过线路互联,至少一个处理器用于运行计算机程序或指令,以进行第一方面至第一方面的任一种可能的实现方式中任一项所描述的故障日志处理方法,或者,以进行第二方面至第二方面的任一种可能的实现方式中任一项所描述的故障日志处理方法。

其中,芯片中的通信接口可以为输入/输出接口、管脚或电路等。

在一种可能的实现中,本申请中上述描述的芯片或者芯片系统还包括至少一个存储器,该至少一个存储器中存储有指令。该存储器可以为芯片内部的存储单元,例如,寄存器、缓存等,也可以是该芯片的存储单元(例如,只读存储器、随机存取存储器等)。

第八方面,本申请实施例提供一种通信装置,包括:

用于实现第一方面的故障日志处理方法的模块,部件或者电路;或者,

用于实现第二方面的故障日志处理方法的模块,部件或者电路。

第九方面,本申请实施例提供一种通信装置,包括一个或多个处理器和通信单元。所述一个或多个处理器被配置为支持所述装置执行上述方法中终端设备或服务器相应的功能。所述通信单元用于支持所述装置与其他设备通信,实现接收和/或发送功能。

在一种可能的实现方式中,所述装置还可以包括一个或多个存储器,所述存储器用于与处理器耦合,其保存相应通信装置必要的程序指令和/或数据。所述一个或多个存储器可以和处理器集成在一起,也可以与处理器分离设置。本申请并不限定。

所述通信单元可以是收发器,或收发电路。在一种可能的实现方式中,所述收发器也可以为输入/输出电路或者接口。

第十方面,本申请实施例提供一种系统,该系统包括上述终端设备和上述服务器。

第十一方面,本申请实施例提供一种计算机可读存储介质,用于存储计算机程序;

该计算机程序包括用于执行第一方面或第一方面中任一种可能实现方式中的方法的指令;或者,

该计算机程序包括用于执行第二方面或第二方面中任一种可能实现方式中的方法的指令。

第十二方面,本申请实施例提供一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述第一方面或第一方面中任一种可能实现方式中的方法,或者,

使得计算机执行上述第二方面或第二方面中任一种可能实现方式中的方法。

通过本申请实施例提供的故障日志处理方法和装置,终端设备向服务器发送l份子日志信息以及n份基础日志信息中除用于生成l份子日志信息之外的其它基础日志信息的特征信息,服务器也可获得故障日志信息,终端设备无需发送全部基础日志信息,节省网络带宽资源。

附图说明

图1为本申请一实施例提供的通信系统的示意图;

图2为本申请一实施例提供的故障日志处理方法的流程图;

图3为本申请另一实施例提供的故障日志处理方法的流程图;

图4为本申请一实施例提供的通信装置的结构示意图;

图5为本申请另一实施例提供的通信装置的结构示意图;

图6为本申请另一实施例提供的通信装置的结构示意图;

图7为本申请另一实施例提供的通信装置的结构示意图;

图8为本申请一实施例提供的一种终端设备的结构示意图;

图9为本申请一实施例提供的一种通信系统的结构示意图。

具体实施方式

图1为本申请一实施例提供的通信系统的示意图,如图1所示,通信系统包括服务器和终端设备。

终端设备:可以是无线终端设备也可以是有线终端设备,无线终端设备可以是指一种具有无线收发功能的设备,可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。所述终端设备可以是手机(mobilephone)、平板电脑(pad)、带无线收发功能的电脑、带有线收发功能的电脑、虚拟现实(virtualreality,vr)终端、增强现实(augmentedreality,ar)终端、工业控制(industrialcontrol)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程医疗(remotemedical)中的无线终端、智能电网(smartgrid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smartcity)中的无线终端、智慧家庭(smarthome)中的无线终端等等,在此不作限定。可以理解的是,本申请实施例中,终端设备也可以称为用户设备(userequipment,ue)。

服务器可以是终端设备上安装的应用程序所对应的应用程序服务器,例如:不同的应用程序对应的服务器可以不相同。

若终端设备上的应用程序出现故障,则可以通过下述本申请各实施例的方案来向相应的服务器上报故障日志。

图2为本申请一实施例提供的故障日志处理方法的流程图,如图2所示,本实施例的方法可以包括:

s201、终端设备在检测到故障发生后,获取故障日志信息。

本实施例中,终端设备在检测到故障发生后,获取该故障的故障日志信息,该故障例如可以是安装在终端设备上的应用程序出现的故障,该故障又例如是运行在该终端设备上的操作系统出现的故障,本实施例并不限于此。

其中,获取到的所述故障日志信息包括n份基础日志信息,所述n为大于等于2。

可选地,该n份基础日志信息例如可以包括如下至少两项:信号信息、寄存器信息、调用栈信息、寄存器附近内存信息、栈附近内存信息、maps映射信息、进程处理器使用信息、进程内存使用信息、进程输入输出使用信息、进程流程信息、进程内运行状态信息。

s202、所述终端设备根据每份基础日志信息,获得每份基础日志信息的特征信息。

本实施例中,终端设备根据获得的每份基础日志信息,获得每份基础日志信息的特征信息,例如终端设备根据基础日志信息a,获得基础日志信息a的特征信息;根据基础日志信息b,获得基础日志信息b的特征信息。

s203、所述终端设备根据所述n份基础日志信息和每份基础日志信息的特征信息,获得m份子日志信息。

本实施例中,终端设备根据n份基础日志信息和每份基础日志信息的特征信息,获得m份子日志信息,其中,m为大于等于2的整数。其中,每份子日志信息是由至少k份基础日志信息和该至少k份基础日志信息的特征信息生成,k为小于n的整数。

其中,m可以等于n,也可以小于n,也可以大于n。若m等于n,每份子日志信息分别由一份基础日志信息和该一份基础日志信息的特征信息生成。若m小于n,则有些子日志信息中的每份子日志信息可以由一份基础日志信息和该一份基础日志信息的特征信息生成,而有些子日志信息中的每份子日志信息可以由多份基础日志信息和该多份份基础日志信息的特征信息生成。若m大于n,则有些子日志信息中的每份子日志信息可以由一份基础日志信息和该一份基础日志信息的特征信息生成,而有些子日志信息中的每份子日志信息可以由多份基础日志信息和该多份基础日志信息的特征信息生成,还有一些子日志信息中的每份子日志信息可以为空。

s204、所述终端设备向所述服务器发送所述m份子日志信息中的l份子日志信息以及所述n份基础日志信息中除用于生成所述l份子日志信息的基础日志信息之外的其它基础日志信息的特征信息。相应地,服务器接收终端设备发送所述l份子日志信息以及所述其它基础日志信息的特征信息。

本实施例中,终端设备获得m份子日志信息之后,可以从m份子日志信息中确定l份子日志信息,然后将l份子日志信息发送给服务器。其中,l为小于m的正整数。由于终端设备可以向服务器发送l份子日志信息,所以终端设备向服务器发送了用于生成该l份子日志信息的基础日志信息,例如:每份子日志信息是由一份基础日志信息生成,则还存在n份基础日志信息中除该l份基础日志信息之外的其它基础日志信息未发送给服务器,所以终端设备可以将n份基础日志信息中除该l份基础日志信息之外的其它基础日志信息的特征信息发送给服务器,该其它基础日志信息例如为n-l份基础日志信息。

相应地,服务器接收终端设备发送的所述l份子日志信息以及所述其它基础日志信息的特征信息。

可选地,终端设备可以将所述l份子日志信息以及所述其它基础日志信息的特征信息通过同一消息发送给服务器。或者,终端设也可以将所述l份子日志信息以及所述其它基础日志信息的特征信息通过不同的消息发送给服务器,例如,终端设备将所述l份子日志信息通过同一消息发送给服务器,将其它基础日志信息的特征信息通过另一消息发送给服务器。

s205、所述服务器根据n份基础日志信息中除用于生成所述l份子日志信息的基础日志信息之外的其它基础日志信息的特征信息,获取所述其它基础日志信息中的q份基础日志信息。

本实施例中,服务器根据l份子日志信息可以获得用于生成l份子日志信息的基础日志信息,例如l份基础日志信息。服务器根据所述其它基础日志信息的特征信息,在本地查找是否保存有所述其它基础日志信息,若服务器当前保存有q份基础日志信息,则服务器可以获取到其它基础日志信息中的q份基础日志信息,所述q为整数;例如其它基础日志信息为n-l份基础日志信息,则q为小于等于n-l的整数。

其中,所述q份基础日志信息是所述服务器从其它至少一个终端设备接收的,其中该q份基础日志信息可以是服务器通过上述方式从其它至少一个终端设备接收的,具体实现过程类似,此处不再赘述。

需要说明的是,若服务器已从其它至少一个终端设备接收到其它基础日志信息中的q份基础日志信息,则服务器根据其它基础日志信息中的特征信息,可以获取到q份基础日志信息,还有n-l-q份基础日志信息暂时未获取到,服务器可以继续等待其它终端设备发送剩下的n-l-q份基础日志信息。若服务器已从其它至少一个终端设备接收到所有其它基础日志信息,则服务器根据其它基础日志信息中的特征信息,可以获取到所有其它基础日志信息(即q份基础日志信),该q份基础日志信息例如为n-l份基础日志信息。

s206、所述服务器根据所述q份基础日志信息和用于生成所述l份子日志信息的基础日志信息,获得故障日志信息。

本实施例中,服务器根据上述获得的q份基础日志信息以及从终端设备处获得的用于生成l份子日志信息的基础日志信息,获得故障日志信息。服务器根据获得的故障日志信息对故障进行定位。在一些实现方式中,服务器获得的故障日志信息可能缺少n份基础日志信息中的部分基础日志信息,服务器也有可能准确地定位出故障。

其中,服务器在接收到l份子日志信息后,还可以保存该l份子日志信息,以便其它终端设备无需向服务器发送该l份子日志信息,而发送该l份子日志信息中的特征信息,服务器可以获取用于生成该l份子日志信息的基础日志信息,也可以用于定位到其它终端设备的故障。

可选地,服务器可以根据用于生成l份子日志信息的基础日志信息的数量以及q的数值,决定是否保存上述获得的故障日志信息。例如若用于生成l份子日志信息的基础日志信息的数量以及q的数值之和大于预设数值,则保存上述获得的故障日志信息,若用于生成l份子日志信息的基础日志信息的数量以及q的数值之和小于或等于预设数值,则不保存上述获得的故障日志信息。

本实施例中,终端设备在检测到故障发生后,获取故障日志信息,所述故障日志信息包括n份基础日志信息,并根据每份基础日志信息,获得每份基础日志信息的特征信息,然后根据所述n份基础日志信息和每份基础日志信息的特征信息,获得m份子日志信息,并向所述服务器发送所述m份子日志信息中的l份子日志信息以及所述n份基础日志信息中除用于生成所述l份子日志信息的基础日志信息之外的其它基础日志信息的特征信息。相应地,所述服务器根据n份基础日志信息中除所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,获取所述其它基础日志信息中的q份基础日志信息,以及根据所述q份基础日志信息和用于生成所述l份子日志信息的基础日志信息,获得故障日志信息。因此,终端设备向服务器发送部分基础日志信息以及其它基础日志信息的特征信息,服务器即可获得故障日志信息,终端设备无需发送全部基础日志信息,节省网络带宽资源。

在一些实施例中,所述每份子日志信息包括至少k份基础日志信息和所述至少k份基础日志信息的特征信息。相应地,上述s203的一种可能的实现方式为:终端设备将所述n份基础日志信息和每份基础日志信息的特征信息进行切片处理,获得m份子日志信息,每份子日志信息包括至少k份基础日志信息和所述至少k份基础日志信息的特征信息。服务器接收到l份子日志信息后,可以获取l份子日志信息中每份子日志信息包括的基础日志信息和基础日志信息的特征信息。因此,本实施例中,终端设备可以直接向服务器发送n份基础日志信息中的部分基础日志信息和该部分基础日志信息的特征信息。以l份子日志信息中每份子日志信息包括一份基础日志信息为例,服务器还可以保存该l份子日志信息中的基础日志信息(即l份基础日志信息)以及相应地l份基础日志信息的特征信息,以便服务器接收其它终端设备发送的l份基础日志信息中至少一份基础日志信息的特征信息后,可以从保存的信息中获取到该至少一份基础日志信息。

在一些实施例中,图3为本申请另一实施例提供的故障日志处理方法的流程图,如图3所示,本实施例的方法可以包括:

s301、终端设备在检测到故障发生后,获取故障日志信息。

本实施例中,s301的具体实现过程可以参见图2所示实施例中的相关描述,此处不再赘述。

s302、所述终端设备对每份基础日志信息做归一化处理,获得每份基础日志信息的归一化数据。

本实施例中,终端设备对每份基础日志信息做归一化处理,获得每份基础日志信息的归一化数据,以滤除终端设备的用户个人隐私数据,避免用户隐私数据的泄漏。

s303、所述终端设备根据每份基础日志信息的归一化数据,获得每份基础日志信息的特征信息。

本实施例中,终端设备在获得基础日志信息的归一化数据后,根据基础日志信息的归一化数据,获得基础日志信息的特征信息,例如可以根据基础日志信息的归一化数据和md5算法,获得基础日志信息的特征信息。

下面以n份基础日志信息分别为信号信息、调用栈信息、寄存器信息、寄存器附近内存信息、栈附近内存信息、maps映射信息为例。

例如:信号信息如下所示:

exceptionreason:sigsegv(11)code:segv_accerr(2)addr:0x558f9cf0cc

pid:7682processname:crashtesttool

其中,对信号信息进行归一化处理,获得的归一化数据如下所示:

exceptionreason:sigsegv(11)code:segv_accerr(2)addr:0x130bc/system/bin/crashtesttool

processname:crashtesttool

其中,信号信息的归一化数据的特征信息如下所示(md5):

bd242eb910c4d46e592d1b85a0b1225f

例如:调用栈信息如下所示:

tid:7682threadname:crashtesttool

collecttime:2019-06-2709:29:53

stacktrace:

#00:0x00000000000130bc(0x000000558f9cf0bc)/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

#01:0x00000000000134c8(0x000000558f9cf4c8)/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

#02:0x000000000001365c(0x000000558f9cf65c)/system/bin/crashtesttool_znst3__113__vector_baseins_9sub_matchins_11__wrap_iteripkceeee(+0x70)

#03:0x00000000000aca50(0x0000007fa37afa50)/system/lib64/libc.so__libc_init(+0x5c)

#04:0x0000000000013050(0x000000558f9cf050)/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

其中,对调用栈信息进行归一化处理,获得的归一化数据如下所示:

threadname:crashtesttool

stacktrace:

#00:0x00000000000130bc/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

#01:0x00000000000134c8/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

#02:0x000000000001365c/system/bin/crashtesttool_znst3__113__vector_baseins_9sub_matchins_11__wrap_iteripkceeee(+0x70)

#03:0x00000000000aca50/system/lib64/libc.so__libc_init(+0x5c)

#04:0x0000000000013050/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

其中,调用栈信息的归一化数据的特征信息如下所示(md5):

520884c732d90caa44001f2df3b739e0

例如:寄存器信息如下所示:

tid:7682threadname:crashtesttool

collecttime:2019-06-2709:29:53

registers:

x00:0x0000000000000000x01:0x0000007fa323c000x02:0x0000000000000023x03:0x000000558f9ca4a0

x04:0x000000558f9ca4a2x05:0x0000007fa323c022x06:0x6972542074736574x07:0x6d67655372656767

x08:0x000000558f9cf0ccx09:0x000000000000000bx10:0x0000000000004001x11:0x0000000000000000

x12:0x7845746c75614674x13:0x206e6f6974706563x14:0x0000000000000400x15:0xaaaaaaaaaaaaaaab

x16:0x0000007fa37f21e0x17:0x0000007fa37858d4x18:0x0000000028b7002ex19:0x0000007ffe44ff1e

x20:0x0000000000000002x21:0x0000000000000002x22:0x0000007ffe44f700x23:0x0000000000000000

x24:0x0000000000000000x25:0x0000000000000000x26:0x0000000000000000x27:0x0000000000000000

x28:0x0000000000000000x29:0x0000007ffe44f5b0x30:0x000000558f9cf0b0

sp:0x0000007ffe44f5b0pc:0x000000558f9cf0bcpstate:0x0000000060000000

其中,对寄存器信息进行归一化处理,获得的归一化数据如下所示:

threadname:crashtesttool

registers:

x00:0x0000000000000000

x01:0x000000000001c000/system/lib64/libc.so

x02:0xffffffffffffffff

x03:0x000000000001a4a0/system/bin/crashtesttool

x04:0x000000000001a4a2/system/bin/crashtesttool

x05:0x000000000001c022/system/bin/crashtesttool

x06:0xffffffffffffffff

x07:0xffffffffffffffff

x08:0x00000000000cf0cc/system/lib64/libc.so

x09:0xffffffffffffffff

x10:0xffffffffffffffff

x11:0x0000000000000000

x12:0xffffffffffffffff

x13:0xffffffffffffffff

x14:0xffffffffffffffff

x15:0xffffffffffffffff

x16:0x00000000000a21e0/system/lib64/libc.so

x17:0x00000000000b58d4/system/lib64/libc.so

x18:0xffffffffffffffff

x19:0x00000000000aff1e/system/lib64/libc.so

x20:0xffffffffffffffff

x21:0xffffffffffffffff

x22:0x00000000000af700/system/lib64/libc.so

x23:0x0000000000000000

x24:0x0000000000000000

x25:0x0000000000000000

x26:0x0000000000000000

x27:0x0000000000000000

x28:0x0000000000000000

x29:0xffffffffffffffff[stack]

x30:0x00000000000130b0/system/bin/crashtesttool

sp:0xffffffffffffffff[stack]

pc:0x00000000000130bc/system/bin/crashtesttool

pstate:0x0000000060000000

其中,寄存器信息的归一化数据的特征信息如下所示(md5):

fc90ab47c98e9af1a4196d7fffafeeaf

例如:寄存器附近内存信息如下所示:

registermemoryinfo:

memorynearx01(0x0000007fa323c000,maps:/system/lib64/libc.so)

0000007fa323bff00000000000000000........

0000007fa323bff80000000000000000........

0000007fa323c0006972542074736574testtri

0000007fa323c0086d67655372656767ggersegm

0000007fa323c010746c756146746e65entfault

0000007fa323c0186f69747065637845exceptio

0000007fa323c020687420646d0a206en.mdth

0000007fa323c0284749532d64616572read-sig

0000007fa323c0306e7566200a455046fpe.fun

0000007fa323c0386977206e6f697463ctionwi

memorynearx03(0x000000558f9ca4a0,maps:/system/bin/crashtesttool)

000000558f9ca490746c756146746e65entfault

000000558f9ca4986f69747065637845exceptio

000000558f9ca4a0000000000000206en......

000000558f9ca4a80000000000000000........

000000558f9ca4b0696152206c6c6163callrai

000000558f9ca4b86e656d6765536573sesegmen

000000558f9ca4c07845746c75614674tfaultex

000000558f9ca4c8206e6f6974706563ception

000000558f9ca4d00000000000000000........

000000558f9ca4d80000000000000000........

memorynearx04(0x000000558f9ca4a2,maps:/system/bin/crashtesttool)

000000558f9ca4927845746c75614674tfaultex

000000558f9ca49a206e6f6974706563ception

000000558f9ca4a20000000000000000........

000000558f9ca4aa6163000000000000......ca

000000558f9ca4b26573696152206c6cllraise

000000558f9ca4ba46746e656d676553segmentf

000000558f9ca4c265637845746c7561aultexce

000000558f9ca4ca0000206e6f697470ption..

000000558f9ca4d20000000000000000........

000000558f9ca4da6163000000000000......ca

其中,对寄存器附近内存信息进行归一化处理,获得的归一化数据如下所示:

registermemoryinfo:

memorynearx01(0x000000000001c000,maps:/system/lib64/libc.so)

........

........

testtri

ggersegm

entfault

exceptio

n.mdth

read-sig

fpe.fun

ctionwimemorynearx03(0x000000000001a4a0,maps:/system/bin/crashtesttool)

entfault

exceptio

n......

........

callrai

sesegmen

tfaultex

ception

........

........

memorynearx04(0x000000000001c022,maps:/system/bin/crashtesttool)

tfaultex

ception

........

......ca

llraise

segmentf

aultexce

ption..

........

......ca

其中,寄存器附近内存信息的归一化数据的特征信息如下所示(md5):

2c05d0a01bfb667c9a88ff9f3837cc73

例如:栈附近内存信息如下所示:

stackmemoryinfo:

stacknear#00(0x000000558f9cf0bc)

0000007ffe44f5b00000007ffe44f650[stack]

0000007ffe44f5b8000000558f9cf4c8/system/bin/crashtesttool

0000007ffe44f5c00000000000000001

0000007ffe44f5c80000007fa37f4328/system/lib64/libc.so

0000007ffe44f5d00000007fa323c000[anon:libc_malloc]

0000007ffe44f5d80000007fa37f4328/system/lib64/libc.so

0000007ffe44f5e00000007ffe44f610[stack]

0000007ffe44f5e80000007fa377d310/system/lib64/libc.sostacknear#01(0x000000558f9cf4c8)

0000007ffe44f6500000007ffe44f670[stack]

0000007ffe44f658000000558f9cf65c/system/bin/crashtesttool

0000007ffe44f6600000007ffe44f6e8[stack]

0000007ffe44f668000000558f9cf61c/system/bin/crashtesttool

0000007ffe44f6700000007ffe44f6a0[stack]

0000007ffe44f6780000007fa37afa50/system/lib64/libc.so

0000007ffe44f6800000000000000000

0000007ffe44f6880000000000000000

其中,对栈附近内存信息进行归一化处理,获得的归一化数据如下所示:

stackmemoryinfo:

stacknear#00(0x00000000000130bc/system/bin/crashtesttool)

ffffffffffffffff[stack]

000000558f9cf4c8/system/bin/crashtesttool

ffffffffffffffff

00000000000a4328/system/lib64/libc.so

ffffffffffffffff[anon:libc_malloc]

00000000000a4328/system/lib64/libc.so

ffffffffffffffff[stack]

0000007fa377d310/system/lib64/libc.so

stacknear#01(0x00000000000134c8/system/bin/crashtesttool)

ffffffffffffffff[stack]

000000000001365c/system/bin/crashtesttool

ffffffffffffffff[stack]

000000000001361c/system/bin/crashtesttool

ffffffffffffffff[stack]

00000000000aca50/system/lib64/libc.so

0000000000000000

0000000000000000

其中,栈附近内存信息的归一化数据的特征信息如下所示(md5):

fdea7776318e5f1137b8f752eaebeb48

例如:maps映射信息如下所示:

begin=558f9bc000,end=558f9cf000,offset=0,loadbias=0,flags=1,name=/system/bin/crashtesttool

begin=558f9cf000,end=558f9dd000,offset=13000,loadbias=0,flags=5,name=/system/bin/crashtesttool

begin=558f9dd000,end=558f9de000,offset=21000,loadbias=0,flags=1,name=/system/bin/crashtesttool

begin=558f9de000,end=558f9df000,offset=0,loadbias=0,flags=3,name=[heap]

begin=7fa3200000,end=7fa3600000,offset=0,loadbias=0,flags=3,name=[anon:libc_malloc]

其中,对maps映射信息进行归一化处理,获得的归一化数据如下所示:

begin=0,end=13000,offset=0,loadbias=0,flags=1,name=/system/bin/crashtesttool

begin=13000,end=21000,offset=13000,loadbias=0,flags=5,name=/system/bin/crashtesttool

begin=21000,end=22000,offset=21000,loadbias=0,flags=1,name=/system/bin/crashtesttool

begin=0,end=1000,offset=0,loadbias=0,flags=3,name=[heap]

begin=0,end=400000,offset=0,loadbias=0,flags=3,name=[anon:libc_malloc]

其中,maps映射信息的归一化数据的特征信息如下所示(md5):

c70dc8973c55d6357aba47f80aeab7f6

s304、所述终端设备根据所述n份基础日志信息的归一化数据和每份基础日志信息的特征信息,获得m份子日志信息。

本实施例中,终端设备根据n份基础日志信息中每份基础日志信息的归一化数据和每份基础日志信息的特征信息,获得m份子日志信息。例如:终端设备根据n份基础日志信息中每份基础日志信息的归一化数据和每份基础日志信息的特征信息,获得m份子日志信息。可选地,所述每份子日志信息包括至少k份基础日志信息的归一化数据和所述至少k份基础日志信息的特征信息,例如终端设备对n份基础日志信息的归一化数据和n份基础日志信息的特征信息进行切片,获得m份子日志信息。

可选地,若n等于m,则终端将单份基础日志信息的归一化数据和该单份基础日志信息的特征信息作为单份子日志信息。

s305、所述终端设备向所述服务器发送所述m份子日志信息中的l份子日志信息以及所述n份基础日志信息中除用于生成所述l份子日志信息的基础日志信息之外的其它基础日志信息的特征信息。相应地,服务器接收终端设备发送所述l份子日志信息以及所述其它基础日志信息的特征信息。

本实施例中,s305的具体实现过程可以参见图2所示实施例中的相关描述,此处不再赘述。

s306、所述服务器根据所述其它基础日志信息的特征信息,获取所述其它基础日志信息中q份基础日志信息的归一化数据。

本实施例中,服务器接收到l份子日志信息之后,可以获取l份子日志信息中的基础日志信息的归一化数据以及基础日志信息的特征信息,例如可以获取l份子日志信息中的l份基础日志信息的归一化数据以及该l份基础日志信息的特征信息。服务器还可以根据其它基础日志信息(即n-l份基础日志信息)的特征信息,获取其它基础日志信息中q份基础日志信息的归一化数据,其中,存在服务器中暂时未保存有n-l-q份基础日志信息的归一化数据的情况,所以服务器暂时未获取到n-l-q份基础日志信息的归一化数据。

s307、所述服务器根据所述q份基础日志信息的归一化数据和所述l份子日志信息中包括的基础日志信息的归一化数据,获得故障日志信息。

本实施例中,服务器根据上述获得的q份基础日志信息的归一化数据以及从终端设备处获得的用于生成l份子日志信息的基础日志信息的归一化数据,获得故障日志信息。服务器根据获得的故障日志信息对故障进行定位。在一些实现方式中,服务器获得的故障日志信息可能缺少n份基础日志信息中的部分基础日志信息的归一化数据,服务器也有可能准确地定位出故障。

其中,服务器在接收到l份子日志信息后,还可以保存该l份子日志信息,以便其它终端设备无需向服务器发送该l份子日志信息,而发送该l份子日志信息中包括的特征信息,服务器也可以获取到用于生成该l份子日志信息的基础日志信息的归一化数据,也可以用于定位到其它终端设备的故障。

本实施例中,终端设备对获取到的每份基础日志信息进行归一化处理,获得基础日志信息的归一化数据,并根据每份基础日志信息的归一化数据获得特征信息,再根据所有基础日志信息的归一化数据和所有基础日志信息的特征信息,生成m份子日志信息,再向服务器发送部分子日志信息和其它基础日志信息的特征信息。服务器再获取接收的子日志信息获取一些基础日志信息的归一化数据,然后根据其它基础日志信息的特征信息,获取从其它终端设备处接收的至少一个基础日志信息的归一化数据,从而获得故障日志信息。因此,终端设备无需发送全部基础日志信息的归一化数据,节省网络带宽资源,另外由于终端设备向服务器发送的基础日志信息的归一化数据,保护了终端设备的用户的个人隐私数据。

在一些实施例中,终端设备在执行上述s204或s305之前,根据所述终端设备的标识信息,从所述m份子日志信息中确定需要发送的所述l份子日志信息。

本实施例中,终端设备在获得m份子日志信息后,根据终端设备的标识信息,从m份子日志信息中确定需要发送的部分份子日志信息,然后向服务器发送确定出的部分子日志信息(即l份子日志信息)。由于不同的终端设备,其标识信息也不完全相同,针对发生的同一故障,不同的终端设备可能向服务器发送m份子日志信息中的不同部分子日志信息,相应地,服务器接收这些不同的终端设备的部分子日志信息,可以收集到所有子日志信息,从而可以准确地定位故障。

在一些实施例中,所述根据所述终端设备的标识信息,从所述m份子日志信息中确定需要发送的所述l份子日志信息的一种可能的实现方式为:所述终端设备根据所述标识信息,对所述m求余运算,获得余数值;以及根据所述余数值,从所述m份子日志信息中确定需要发送的所述l份子日志信息。

本实施例中,终端设备可以根据该终端设备的标识信息,对上述m的数值求余运算,获得余数值。该终端设备的标识信息例如可以是终端设备的识别号、序列号、imsi等,例如可以根据终端设备的序列号的后两位,对m求余运算,获得余数值。一般m的数值不宜太大,根据识别号的后两位获得的余数值可以支持m的最大值为99。若发生一份故障,采集到的基础日志信息一般不会超过20份。

可选地,终端设备可以将标识信息(例如识别号的后两位)对所述m求余运算,获得余数值。

可选地,所述终端设备根据所述标识信息和预设值,对所述m求余运算,获得余数值;其中,所述预设值是所述服务器周期性向所述终端设备发送的。其中,每个周期服务器向终端设备发送的预设值可能不同,这样可以保证同一版本的不同终端设备在确定需要发送的l份子日志信息不完全是相同的子日志信息,可以避免服务器无法获得所有子日志信息(即m份子日志信息)的现象。例如终端设备将标识信息(例如识别号的后两位)与预设值的和值,对所述m求余运算,获得余数值。

然后,终端设备根据获得的余数值,从所述m份子日志信息中确定需要发送的所述l份子日志信息。其中,所述l份子日志信息在所述m份子日志信息中的序号与所述余数值有关。例如若l等于1,若获得的余数值为3,m等于5,则终端设备发送给服务器的子日志信息为该5份子日志信息中序号为3的子日志信息,例如是这5份子日志信息分别为子日志信息0、子日志信息1、子日志信息2、子日志信息3、子日志信息4,则终端设备向服务器发送的子日志信息为子日志信息3。

可选地,若该终端设备的标识信息是终端设备的识别号,识别号对于同版本的终端设备可以是连续的或是在能够映射到m个子日志信息上。

在一些实施例中,终端设备向服务器发送l份子日志信息之前,还获取所述故障日志信息的故障特征信息,并确定所述终端设备是否存储有所述故障特征信息。如果终端设备中存储有故障特征信息,则确定终端设备之前已发生过相同的故障,表示终端设备已经向服务器发送过子日志信息,所以终端设备这次不再向服务器发送子日志信息,避免相同的子日志信息重复上传给服务器,节省网络资源。如果终端设备中未存储有故障特征信息,则确定终端设备之前可能未发生过相同的故障,表示终端设备需要向服务器发送过子日志信息,然后终端设备执行上述s204或s305。

可选地,若终端设备确定终端设备未存储有所述故障特征信息,则终端设备存储所述故障特征信息。以便终端设备再发生相同故障时,通过该故障特征信息可以确定终端设备之前已发生过相同故障,终端设备可以无需执行上述s204或s305,节省网络资源。

可选地,若终端设备确定终端设备未存储有所述故障特征信息,则终端设备还向服务器发送该故障日志信息的故障特征信息。相应地,服务器接收所述终端设备发送的所述故障日志信息的故障特征信息,然后所述服务器根据所述故障日志信息的故障特征信息,获取与所述故障特征信息对应的基础日志信息,该基础日志信息例如为x份基础日志信息,该x为小于等于m的正整数;所述服务器根据所述其它基础日志信息的特征信息,从与所述故障特征信息对应的基础日志信息中获取所述q份基础日志信息。

服务器还可以保存l份子日志信息,并建立该l份子日志信息与该故障日志信息的故障特征信息之间的对应关系,以便接收其它终端设备发送的该故障日志信息的故障特征信息与基础日志信息的特征信息后,根据该故障特征信息,可以快速获取到特征信息对应的基础日志信息或基础日志信息的归一化数据。

可选地,终端设备可以通过同一消息向服务器发送故障日志信息的故障特征信息、l份子日志信息以及其它基础日志信息的特征信息。

在一些实施例中,所述终端设备获取所述故障日志信息的故障特征信息的一种可能的实现方式为:所述终端设备根据所述故障的类型信息、所述故障对应发生时的运行环境信息、所述n份基础日志信息中最有可能确定出所述故障的前p份基础日志信息中的特征信息,获得所述故障日志信息的故障特征信息。

其中,故障的类型信息例如为应用程序崩溃、系统崩溃、无响应等。故障对应发生时的运行环境例如包括:终端设备的版本、应用程序的名称及版本。

例如:所述终端设备根据所述故障的类型信息、所述故障对应发生时的运行环境信息、所述n份基础日志信息中最有可能确定出所述故障的前p份基础日志信息中的特征信息以及md5算法,获得所述故障日志信息的故障特征信息。

在经md5算法处理前的信息例如如下所示:

systemversion:xxxxxxxxxxxx

compiledtime:yyyy-mm-ddhh:mm:ss

buildtype:xxx

devicetype:xxx-xxxx

hardwareversion:xxx

executepath:/system/bin/crashtesttool

version:1.0.1

releasetime:yyyy-mm-ddhh:mm:ss

exceptionreason:sigsegv(11)code:segv_accerr(2)addr:0x130bc/system/bin/crashtesttool

processname:crashtesttool

log1md5:520884c732d90caa44001f2df3b739e0

经md5算法处理后获得故障日志信息的故障特征信息:

792fdc059d71fee66eeb2e8b6dcb99e1

例如:n份基础日志信息分别为基础日志信息a、基础日志信息b、基础日志信息c。其中,若p等于1,最有可能确定出故障的基础日志信息例如为基础日志信息a。

如果l等于1,对于终端设备00,终端设备00向服务器发送:

xx故障的特征信息(由xx版本-xx应用xx版本-特征信息a生成)

基础日志a:特征信息a、基础日志信息a

基础日志b:特征信息b

基础日志c:特征信息c

对于终端设备01,终端设备01向服务器发送:

xx故障的特征信息(由xx版本-xx应用xx版本-特征信息a生成)

基础日志a:特征信息a

基础日志b:特征信息b、基础日志信息b

基础日志c:特征信息c

对于终端设备02,终端设备02向服务器发送:

xx故障的特征信息(由xx版本-xx应用xx版本-特征信息a生成)

基础日志a:特征信息a

基础日志b:特征信息b

基础日志c:特征信息c、基础日志信息c

下面举例说明:

假设有序列号(serialnumber,sn)为aaabb18716500511以及aaabb18716500512的版本相同的两台手机,均发了同一故障并获得了5份子日志信息,每个手机均发送了5份子日志信息中的部分份子日志信息。

其中,aaabb18716500511的手机向服务器发送的为:

faultmd5:792fdc059d71fee66eeb2e8b6dcb99e1

systemversion:xxxxxxxxxxxx

compiledtime:yyyy-mm-ddhh:mm:ss

buildtype:xxx

devicetype:xxx-xxxx

hardwareversion:xxx

executepath:/system/bin/crashtesttool

version:1.0.1

releasetime:yyyy-mm-ddhh:mm:ss

exceptionreason:sigsegv(11)code:segv_accerr(2)addr:0x130bc/system/bin/crashtesttool

processname:crashtesttool

log1md5:520884c732d90caa44001f2df3b739e0

threadname:crashtesttool

stacktrace:

#00:0x00000000000130bc/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

#01:0x00000000000134c8/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

#02:0x000000000001365c/system/bin/crashtesttool_znst3__113__vector_baseins_9sub_matchins_11__wrap_iteripkceeee(+0x70)

#03:0x00000000000aca50/system/lib64/libc.so__libc_init(+0x5c)

#04:0x0000000000013050/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

log2md5:fc90ab47c98e9af1a4196d7fffafeeaf

log3md5:2c05d0a01bfb667c9a88ff9f3837cc73

log4md5:fdea7776318e5f1137b8f752eaebeb48

log5md5:792fdc059d71fee66eeb2e8b6dcb99e1

其中,aaabb18716500511的手机向服务器发送的为:

faultmd5:792fdc059d71fee66eeb2e8b6dcb99e1

systemversion:xxxxxxxxxxxx

compiledtime:yyyy-mm-ddhh:mm:ss

buildtype:xxx

devicetype:xxx-xxxx

hardwareversion:xxx

executepath:/system/bin/crashtesttool

version:1.0.1

releasetime:yyyy-mm-ddhh:mm:ss

exceptionreason:sigsegv(11)code:segv_accerr(2)addr:0x130bc/system/bin/crashtesttool

processname:crashtesttool

log1md5:520884c732d90caa44001f2df3b739e0

log2md5:fc90ab47c98e9af1a4196d7fffafeeaf

threadname:crashtesttool

registers:

x00:0x0000000000000000

x01:0x000000000001c000/system/lib64/libc.so

x02:0xffffffffffffffff

x03:0x000000000001a4a0/system/bin/crashtesttool

x04:0x000000000001a4a2/system/bin/crashtesttool

x05:0x000000000001c022/system/bin/crashtesttool

x06:0xffffffffffffffff

x07:0xffffffffffffffff

x08:0x00000000000cf0cc/system/lib64/libc.so

x09:0xffffffffffffffff

x10:0xffffffffffffffff

x11:0x0000000000000000

x12:0xffffffffffffffff

x13:0xffffffffffffffff

x14:0xffffffffffffffff

x15:0xffffffffffffffff

x16:0x00000000000a21e0/system/lib64/libc.so

x17:0x00000000000b58d4/system/lib64/libc.so

x18:0xffffffffffffffff

x19:0x00000000000aff1e/system/lib64/libc.so

x20:0xffffffffffffffff

x21:0xffffffffffffffff

x22:0x00000000000af700/system/lib64/libc.so

x23:0x0000000000000000

x24:0x0000000000000000

x25:0x0000000000000000

x26:0x0000000000000000

x27:0x0000000000000000

x28:0x0000000000000000

x29:0xffffffffffffffff[stack]

x30:0x00000000000130b0/system/bin/crashtesttool

sp:0xffffffffffffffff[stack]

pc:0x00000000000130bc/system/bin/crashtesttool

pstate:0x0000000060000000

log3md5:2c05d0a01bfb667c9a88ff9f3837cc73

log4md5:fdea7776318e5f1137b8f752eaebeb48

log5md5:792fdc059d71fee66eeb2e8b6dcb99e1

如果还存在其它终端设备也按照类似的方式向服务器发送相关信息,服务器根据接收到的信息可以重构出故障日志信息,例如如下所示:

faultmd5:792fdc059d71fee66eeb2e8b6dcb99e1

systemversion:xxxxxxxxxxxx

compiledtime:yyyy-mm-ddhh:mm:ss

buildtype:xxx

devicetype:xxx-xxxx

hardwareversion:xxx

executepath:/system/bin/crashtesttool

version:1.0.1

releasetime:yyyy-mm-ddhh:mm:ss

exceptionreason:sigsegv(11)code:segv_accerr(2)addr:0x130bc/system/bin/crashtesttool

processname:crashtesttool

log1md5:520884c732d90caa44001f2df3b739e0

threadname:crashtesttool

stacktrace:

#00:0x00000000000130bc/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

#01:0x00000000000134c8/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

#02:0x000000000001365c/system/bin/crashtesttool_znst3__113__vector_baseins_9sub_matchins_11__wrap_iteripkceeee(+0x70)

#03:0x00000000000aca50/system/lib64/libc.so__libc_init(+0x5c)

#04:0x0000000000013050/system/bin/crashtesttool_znkst3__115basic_stringbuficns_11char_traitsiceens_9allocatori(+0x0)

log2md5:fc90ab47c98e9af1a4196d7fffafeeaf

threadname:crashtesttool

registers:

x00:0x0000000000000000

x01:0x000000000001c000/system/lib64/libc.so

x02:0xffffffffffffffff

x03:0x000000000001a4a0/system/bin/crashtesttool

x04:0x000000000001a4a2/system/bin/crashtesttool

x05:0x000000000001c022/system/bin/crashtesttool

x06:0xffffffffffffffff

x07:0xffffffffffffffff

x08:0x00000000000cf0cc/system/lib64/libc.so

x09:0xffffffffffffffff

x10:0xffffffffffffffff

x11:0x0000000000000000

x12:0xffffffffffffffff

x13:0xffffffffffffffff

x14:0xffffffffffffffff

x15:0xffffffffffffffff

x16:0x00000000000a21e0/system/lib64/libc.so

x17:0x00000000000b58d4/system/lib64/libc.so

x18:0xffffffffffffffff

x19:0x00000000000aff1e/system/lib64/libc.so

x20:0xffffffffffffffff

x21:0xffffffffffffffff

x22:0x00000000000af700/system/lib64/libc.so

x23:0x0000000000000000

x24:0x0000000000000000

x25:0x0000000000000000

x26:0x0000000000000000

x27:0x0000000000000000

x28:0x0000000000000000

x29:0xffffffffffffffff[stack]

x30:0x00000000000130b0/system/bin/crashtesttool

sp:0xffffffffffffffff[stack]

pc:0x00000000000130bc/system/bin/crashtesttool

pstate:0x0000000060000000

log3md5:2c05d0a01bfb667c9a88ff9f3837cc73

registermemoryinfo:

memorynearx01(0x000000000001c000,maps:/system/lib64/libc.so)

........

........

testtri

ggersegm

entfault

exceptio

n.mdth

read-sig

fpe.fun

ctionwimemorynearx03(0x000000000001a4a0,maps:/system/bin/crashtesttool)

entfault

exceptio

n......

........

callrai

sesegmen

tfaultex

ception

........

........

memorynearx04(0x000000000001c022,maps:/system/bin/crashtesttool)

tfaultex

ception

........

......ca

llraise

segmentf

aultexce

ption..

........

......ca

log4md5:fdea7776318e5f1137b8f752eaebeb48

stackmemoryinfo:

stacknear#00(0x00000000000130bc/system/bin/crashtesttool)

ffffffffffffffff[stack]

000000558f9cf4c8/system/bin/crashtesttool

ffffffffffffffff

00000000000a4328/system/lib64/libc.so

ffffffffffffffff[anon:libc_malloc]

00000000000a4328/system/lib64/libc.so

ffffffffffffffff[stack]

0000007fa377d310/system/lib64/libc.so

stacknear#01(0x00000000000134c8/system/bin/crashtesttool)

ffffffffffffffff[stack]

000000000001365c/system/bin/crashtesttool

ffffffffffffffff[stack]

000000000001361c/system/bin/crashtesttool

ffffffffffffffff[stack]

00000000000aca50/system/lib64/libc.so

0000000000000000

0000000000000000

log5md5:792fdc059d71fee66eeb2e8b6dcb99e1

begin=0,end=13000,offset=0,loadbias=0,flags=1,name=/system/bin/crashtesttool

begin=13000,end=21000,offset=13000,loadbias=0,flags=5,name=/system/bin/crashtesttool

begin=21000,end=22000,offset=21000,loadbias=0,flags=1,name=/system/bin/crashtesttool

begin=0,end=1000,offset=0,loadbias=0,flags=3,name=[heap]

begin=0,end=400000,offset=0,loadbias=0,flags=3,name=[anon:libc_malloc]

需要说明的是,上述任一实施例可以单独实施,也可以是上述各实施例中至少两个任意结合来实施,对此不做限定。

可以理解的是,上述各个实施例中,由终端设备实现的操作和步骤也可以由可用于终端设备的部件(例如芯片或者电路)实现,本申请实施例对此不作限定。由服务器实现的操作和步骤也可以由可用于服务器的部件(例如芯片或者电路)实现,本申请实施例对此不作限定。

图4为本申请一实施例提供的通信装置的结构示意图,如图4所示,通信装置可以是终端设备,也可以是终端设备的部件(例如,集成电路,芯片等等),或者可以是其他通信模块,用于实现上述任一实施例中对应于终端设备的操作,本实施例的通信装置400包括:检测模块401、处理模块402和收发模块403。

检测模块401,用于检测终端设备是否发生故障。

处理模块402,用于在所述检测模块401检测到故障发生后,获取故障日志信息,所述故障日志信息包括n份基础日志信息,所述n为大于等于2;根据每份基础日志信息,获得每份基础日志信息的特征信息;根据所述n份基础日志信息和每份基础日志信息的特征信息,获得m份子日志信息,m为大于等于2的整数,所述每份子日志信息由至少k份基础日志信息和所述至少k份基础日志信息的特征信息生成,所述k为小于n的整数。

收发模块403,用于向服务器发送所述m份子日志信息中的l份子日志信息以及所述n份基础日志信息中除用于生成所述l份子日志信息的基础日志信息之外的其它基础日志信息的特征信息,所述l为小于m的正整数。

在一种可能的实现方式中,所述处理模块402,还用于在所述收发模块403向所述服务器发送所述m份子日志信息中的l份子日志信息之前,根据所述终端设备的标识信息,从所述m份子日志信息中确定需要发送的所述l份子日志信息。

在一种可能的实现方式中,所述处理模块402,具体用于:根据所述标识信息,对所述m求余运算,获得余数值;根据所述余数值,从所述m份子日志信息中确定需要发送的所述l份子日志信息。

在一种可能的实现方式中,所述处理模块402,具体用于:根据所述标识信息和预设值,对所述m求余运算,获得余数值;其中,所述预设值是所述收发模块403从所述服务器周期性接收的。

在一种可能的实现方式中,所述l份子日志信息在所述m份子日志信息中的序号与所述余数值有关。

在一种可能的实现方式中,所述处理模块402,还用于在所述收发模块403向所述服务器发送所述m份子日志信息中的l份子日志信息之前,获取所述故障日志信息的故障特征信息,并确定所述终端设备是否存储有所述故障特征信息。

所述收发模块403,具体用于:若所述终端设备未存储有所述故障特征信息,则向所述服务器发送所述l份子日志信息。

在一种可能的实现方式中,通信装置400还包括:存储模块404。存储模块404,用于存储所述故障特征信息。

在一种可能的实现方式中,所述收发模块403,还用于向所述服务器发送所述故障日志信息的故障特征信息。

在一种可能的实现方式中,所述处理模块402,具体用于:根据所述故障的类型信息、所述故障对应发生时的运行环境信息、所述n份基础日志信息中最有可能确定出所述故障的前p份基础日志信息中的特征信息,获得所述故障日志信息的故障特征信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息和所述至少k份基础日志信息的特征信息。

在一种可能的实现方式中,所述处理模块402,在根据每份基础日志信息,获得每份基础日志信息的特征信息时,具体用于:对每份基础日志信息做归一化处理,获得每份基础日志信息的归一化数据;根据每份基础日志信息的归一化数据,获得每份基础日志信息的特征信息。

所述处理模块402,在根据所述n份基础日志信息和每份基础日志信息的特征信息,获得m份子日志信息时,具体用于:根据所述n份基础日志信息的归一化数据和每份基础日志信息的特征信息,获得m份子日志信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息的归一化数据和所述至少k份基础日志信息的特征信息。

本实施例的通信装置,可以用于执行上述所示方法实施例中终端设备的技术方案。

图5为本申请另一实施例提供的通信装置的结构示意图,如图5所示,通信装置可以是服务器,也可以是服务器的部件(例如,集成电路,芯片等等),或者可以是其他通信模块,用于实现上述任一实施例中对应于服务器的操作,本实施例的通信装置500包括:接收模块501和处理模块502。

接收模块501,用于接收终端设备发送的l份子日志信息以及n份基础日志信息中除用于生成所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,所述每份子日志信息由至少k份基础日志信息和所述至少k份基础日志信息的特征信息生成,m为大于等于2的整数,所述l为小于m的正整数,所述k为小于n的整数。

处理模块502,用于根据n份基础日志信息中除所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,获取所述其它基础日志信息中的q份基础日志信息,所述q为整数;以及根据所述q份基础日志信息和用于生成所述l份子日志信息的基础日志信息,获得故障日志信息。

其中,所述q份基础日志信息是所述服务器从其它至少一个终端设备接收的。

在一种可能的实现方式中,所述接收模块501,还用于接收所述终端设备发送的所述故障日志信息的故障特征信息。

所述处理模块502,具体用于:根据所述故障日志信息的故障特征信息,获取与所述故障特征信息对应的基础日志信息;根据所述其它基础日志信息的特征信息,从与所述故障特征信息对应的基础日志信息中获取所述q份基础日志信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息和所述至少k份基础日志信息的特征信息。

在一种可能的实现方式中,所述每份子日志信息包括至少k份基础日志信息的归一化数据和所述至少k份基础日志信息的特征信息。

在一种可能的实现方式中,所述处理模块502在根据n份基础日志信息中除所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,获取所述其它基础日志信息中的q份基础日志信息时,具体用于:根据所述其它基础日志信息的特征信息,获取所述其它基础日志信息中q份基础日志信息的归一化数据。

所述处理模块502在根据所述q份基础日志信息和用于生成所述l份子日志信息的基础日志信息,获得故障日志信息时,具体用于:根据所述q份基础日志信息的归一化数据和所述l份子日志信息中包括的基础日志信息的归一化数据,获得故障日志信息。

本实施例的通信装置,可以用于执行上述所示方法实施例中服务器的技术方案。

图6为本申请另一实施例提供的通信装置的结构示意图。如图6所示,本实施例所述的通信装置600可以是前述方法实施例中提到的终端设备(或者可用于终端设备的部件)。通信装置可用于实现上述方法实施例中描述的对应于终端设备的方法,具体参见上述方法实施例中的说明。

所述通信装置600可以包括一个或多个处理器601,所述处理器601也可以称为处理单元,可以实现一定的控制或者处理功能。所述处理器601可以是通用处理器或者专用处理器等。例如可以是基带处理器、或中央处理器。基带处理器可以用于对通信协议以及通信数据进行处理,中央处理器可以用于对通信装置进行控制,执行软件程序,处理软件程序的数据。

在一种可能的设计中,处理器601也可以存有指令603或者数据(例如中间数据)。其中,所述指令603可以被所述处理器运行,使得所述通信装置600执行上述方法实施例中描述的对应于终端设备的方法。

在又一种可能的设计中,通信装置600可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。

在一种可能的实现方式中,所述通信装置600中可以包括一个或多个存储器602,其上可以存有指令604,所述指令可在所述处理器上被运行,使得所述通信装置600执行上述方法实施例中描述终端设备的方法。

在一种可能的实现方式中,所述存储器中也可以是存储有数据。所述处理器和存储器可以单独设置,也可以集成在一起。

在一种可能的实现方式中,所述通信装置600还可以包括收发器605和/或天线606。所述处理器601可以称为处理单元,对通信装置(终端设备或核心网设备或者无线接入网设备)进行控制。所述收发器605可以称为收发单元、收发机、收发电路、或者收发器等,用于实现通信装置的收发功能。

在一个设计中,若该通信装置用于实现对应于上述各实施例中终端设备的操作时,例如可以由处理器601在检测到故障发生后,获取故障日志信息,所述故障日志信息包括n份基础日志信息;根据每份基础日志信息,获得每份基础日志信息的特征信息;根据所述n份基础日志信息和每份基础日志信息的特征信息,获得m份子日志信息,所述每份子日志信息由至少k份基础日志信息和所述至少k份基础日志信息的特征信息生成。由收发器605向服务器发送所述m份子日志信息中的l份子日志信息以及所述n份基础日志信息中除用于生成所述l份子日志信息的基础日志信息之外的其它基础日志信息的特征信息。

其中,上述处理器601和收发器605的具体实现过程可以参见上述各实施例的相关描述,此处不再赘述。

本申请中描述的处理器601和收发器605可实现在集成电路(integratedcircuit,ic)、模拟ic、射频集成电路(radiofrequencyintegratedcircuit,rfic)、混合信号ic、专用集成电路(applicationspecificintegratedcircuit,asic)、印刷电路板(printedcircuitboard,pcb)、电子设备等上。该处理器和通信接口也可以用各种1c工艺技术来制造,例如互补金属氧化物半导体(complementarymetaloxidesemiconductor,cmos)、n型金属氧化物半导体(nmetal-oxide-semiconductor,nmos)、p型金属氧化物半导体(positivechannelmetaloxidesemiconductor,pmos)、双极结型晶体管(bipolarjunctiontransistor,bjt)、双极cmos(bicmos)、硅锗(sige)、砷化镓(gaas)等。

图7为本申请另一实施例提供的通信装置的结构示意图。如图7所示,本实施例所述的通信装置700可以是前述方法实施例中提到的服务器(或者可用于服务器的部件)。通信装置可用于实现上述方法实施例中描述的对应于服务器的方法,具体参见上述方法实施例中的说明。

所述通信装置700可以包括一个或多个处理器701,所述处理器701也可以称为处理单元,可以实现一定的控制或者处理功能。所述处理器701可以是通用处理器或者专用处理器等。

在一种可能的设计中,处理器701也可以存有指令703或者数据(例如中间数据)。其中,所述指令703可以被所述处理器运行,使得所述通信装置700执行上述方法实施例中描述的对应于服务器的方法。

在又一种可能的设计中,通信装置700可以包括电路,所述电路可以实现前述方法实施例中发送或接收或者通信的功能。

在一种可能的实现方式中,所述通信装置700中可以包括一个或多个存储器702,其上可以存有指令704,所述指令可在所述处理器上被运行,使得所述通信装置700执行上述方法实施例中描述第一网元或第二网元的方法。

在一种可能的实现方式中,所述存储器中也可以是存储有数据。所述处理器和存储器可以单独设置,也可以集成在一起。

在一种可能的实现方式中,所述通信装置700还可以包括通信接口705。所述处理器701可以称为处理单元,对通信装置(第一网元或第二网元)进行控制。所述通信接口705,用于实现通信装置的收发功能。

在一个设计中,若该通信装置700用于实现对应于上述各实施例中服务器的操作时,例如,可以由通信接口705接收终端设备发送的l份子日志信息以及n份基础日志信息中除用于生成所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,所述每份子日志信息由至少k份基础日志信息和所述至少k份基础日志信息的特征信息生成,m为大于等于2的整数。由处理器701根据n份基础日志信息中除所述l份子日志信息包括的基础日志信息之外的其它基础日志信息的特征信息,获取所述其它基础日志信息中的q份基础日志信息;根据所述q份基础日志信息和用于生成所述l份子日志信息的基础日志信息,获得故障日志信息;其中,所述q份基础日志信息是所述服务器从其它至少一个终端设备接收的。

其中,上述通信接口705与处理器701的具体实现过程可以参见上述各实施例的相关描述,此处不再赘述。

本申请中描述的处理器701和通信接口705可实现在ic、模拟ic、rfic、混合信号ic、asic、pcb、电子设备等上。该处理器和收发器也可以用各种1c工艺技术来制造,例如cmos、nmos、pmos、bjt、双极cmos(bicmos)、硅锗(sige)、砷化镓(gaas)等。

虽然在以上的实施例描述中,通信装置以终端设备或者服务器为例来描述,但本申请中描述的通信装置的范围并不限于上述终端设备或服务器,而且通信装置的结构可以不受图6或图7的限制。通信装置可以是独立的设备或者可以是较大设备的一部分。例如所述设备可以是:

(1)独立的集成电路ic,或芯片,或,芯片系统或子系统;

(2)具有一个或多个ic的集合,在一种可能的实现方式中,该ic集合也可以包括用于存储数据和/或指令的存储部件;

(3)asic,例如调制解调器(msm);

(4)可嵌入在其他设备内的模块;

(5)接收机、无线设备、移动单元,网络设备等等;

(6)其他等等。

图8为本申请一实施例提供的一种终端设备的结构示意图。该终端设备可适用于本申请上述各实施例中所述的终端设备。为了便于说明,图8仅示出了终端设备的主要部件。如图8所示,终端设备800包括处理器、存储器、控制电路、天线以及输入输出装置。处理器主要用于对通信协议以及通信数据进行处理,以及对整个终端进行控制,执行软件程序,处理软件程序的数据。存储器主要用于存储软件程序和数据。射频电路主要用于基带信号与射频信号的转换以及对射频信号的处理。天线主要用于收发电磁波形式的射频信号。输入输出装置,例如触摸屏、显示屏,键盘等主要用于接收用户输入的数据以及对用户输出数据。

当终端设备开机后,处理器可以读取存储单元中的软件程序,解释并执行软件程序的指令,处理软件程序的数据。当需要通过无线发送数据时,处理器对待发送的数据进行基带处理后,输出基带信号至射频电路,射频电路将基带信号进行射频处理后将射频信号通过天线以电磁波的形式向外发送。当有数据发送到终端时,射频电路通过天线接收到射频信号,将射频信号转换为基带信号,并将基带信号输出至处理器,处理器将基带信号转换为数据并对该数据进行处理。

本领域技术人员可以理解,为了便于说明,图8仅示出了一个存储器和处理器。在实际的终端中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本申请实施例对此不做限制。

作为一种可能的实现方式,处理器可以包括基带处理器和中央处理器,基带处理器主要用于对通信协议以及通信数据进行处理,中央处理器主要用于对整个终端进行控制,执行软件程序,处理软件程序的数据。图8中的处理器集成了基带处理器和中央处理器的功能,本领域技术人员可以理解,基带处理器和中央处理器也可以是各自独立的处理器,通过总线等技术互联。本领域技术人员可以理解,终端设备可以包括多个基带处理器以适应不同的网络制式,终端设备可以包括多个中央处理器以增强其处理能力,终端设备的各个部件可以通过各种总线连接。所述基带处理器也可以表述为基带处理电路或者基带处理芯片。所述中央处理器也可以表述为中央处理电路或者中央处理芯片。对通信协议以及通信数据进行处理的功能可以内置在处理器中,也可以以软件程序的形式存储在存储单元中,由处理器执行软件程序以实现基带处理功能。

在一个例子中,可以将具有收发功能的天线和控制电路视为终端设备800的收发模块801,将具有处理功能的处理器视为终端设备800的处理模块802。如图8所示,终端设备800包括收发模块801和处理模块802。收发模块也可以称为收发器、收发机、收发装置等。在一种可能的实现方式中,可以将收发模块801中用于实现接收功能的器件视为接收模块,将收发模块801中用于实现发送功能的器件视为发送模块,即收发模块801包括接收模块和发送模块示例性的,接收模块也可以称为接收机、接收器、接收电路等,发送模块可以称为发射机、发射器或者发射电路等。

图9为本申请一实施例提供的一种通信系统的结构示意图。如图9所示,本实施例所述的通信系统900可以包括:终端设备901和服务器902。终端设备901可以采用图4或图6或图8所示装置实施例的结构,其对应地,可以执行上述任一方法实施例有关终端设备的技术方案,其实现原理和技术效果类似,此处不再赘述。服务器902可以采用图5或图7所示装置实施例的结构,其对应地,可以执行上述任一方法实施例有关服务器的技术方案,其实现原理和技术效果类似,此处不再赘述。

需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

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