买专利,只认龙图腾
首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明公布】一种未知crash上报方法和装置_腾讯科技(深圳)有限公司_201410208363.4 

申请/专利权人:腾讯科技(深圳)有限公司

申请日:2014-05-16

公开(公告)日:2015-10-14

公开(公告)号:CN104978212A

主分类号:G06F9/445(2006.01)I

分类号:G06F9/445(2006.01)I;G06F11/34(2006.01)I

优先权:

专利状态码:有效-授权

法律状态:2019.08.23#授权;2017.02.08#实质审查的生效;2015.10.14#公开

摘要:本发明实施例公开了一种未知crash上报方法和装置,该方法可包括:当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识;当所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息;向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。本发明实施例可以识别应用程序的未知crash。

主权项:一种未知崩溃crash上报方法,其特征在于,包括:当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识;当所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息;向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。

全文数据:一种未知crash上报方法和装置技术领域本发明涉及互联网技术领域,尤其涉及一种未知crash上报方法和装置。背景技术随着通信互联网技术的发展,各种应用程序在用户生活中应用越来越广泛,且用户对应用程序的性能的要求也越来越高。其中,稳定性是衡量一个应用程序性能的重要指标,且应用程序的稳定性一定程度上决定了应用程序的留存率和口碑的好坏。因此,提升应用程序的稳定性对于应用程序的发展有着十分重要的意义。然而,未知崩溃crash是影响应用程序稳定性的一个巨大因素,其中,未知crash是指没有任何堆栈信息的crash。而目前的互联网技术中是无法识别应用程序的未知crash。发明内容本发明实施例提供了一种未知crash上报方法和装置,可以识别应用程序的未知crash。第一方面,本发明实施例提供一种未知crash上报方法,包括:当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识;当所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息;向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。。第二方面,本发明实施例提供一种未知crash上报方法,包括:接收用户终端发送的日志信息,所述日志信息是所述用户终端在接收到用于启动目标应用程序的启动指令,且所述用户终端的指定文件当前包括所述目标应用程序的标识时发送的,且所述日志信息为所述目标应用程序在离所述用户终端获取所述启动指令的时间最近一次运行的日志信息;判断所述日志信息是否包括堆栈信息,若否,则确定所述目标应用程序在所述最近一次运行时产生未知crash。第三方法,本发明实施例提供一种未知crash上报装置,包括:判断单元、读取单元和发送单元,其中:所述判断单元,用于当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识;所述读取单元,用于当所述判断单元判断所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息;所述发送单元,用于向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。第四方法,本发明实施例提供一种未知crash上报装置,包括:接收单元、判断单元和确定单元,其中:所述接收单元,用于接收用户终端发送的日志信息,所述日志信息是所述用户终端在接收到用于启动目标应用程序的启动指令,且所述用户终端的指定文件当前包括所述目标应用程序的标识时发送的,且所述日志信息为所述目标应用程序在离所述用户终端获取所述启动指令的时间最近一次运行的日志信息;所述判断单元,用于判断所述日志信息是否包括堆栈信息;所述确定单元,用于当所述判断单元判断所述日志信息不包括堆栈信息时,确定所述目标应用程序在所述最近一次运行时产生未知crash。上述技术方案中,当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识;当所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息;向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。从而本发明实施例可以识别应用程序的未知crash。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种未知crash上报方法的流程示意图;图2是本发明实施例提供的另一种未知crash上报方法的流程示意图;图3是本发明实施例提供的另一种未知crash上报方法的流程示意图;图4是本发明实施例提供的一种应用程序启动示意图举例示意图;图5是本发明实施例提供的一种未知crash上报装置的结构示意图;图6是本发明实施例提供的另一种未知crash上报装置的结构示意图;图7是本发明实施例提供的另一种未知crash上报装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。本发明实施例中,应用程序可以是用户终端是可以安装的任何应用程序,例如:浏览器、聊天应用程序、游戏应用程序、邮件应用程序或者音视频率应用程序等。另外,用户终端任何具备通信和存储功能的设备,例如:平板电脑、手机、电子阅读器、遥控器、个人计算机PersonalComputer,PC、笔记本电脑、车载设备、网络电视、可穿戴设备等智能设备。另外,本发明实施例中,crash包括未知crash和非未知crash已知crash,其中,未知crash是指发生crash时没有任何堆栈信息的crash,进一步,未知crash是指发生crash时没有任何堆栈信息以及没有触发任何消息事件的crash,而非未知crash是指除未知crash之外的所有crash,例如:非未知crash是指发生crash时有堆栈信息的crash,或者非未知crash是指发生crash时有触发消息事件的crash。其中,堆栈信息可以是用于记录异常事件和错误事件的信息。另外,本发明实施例中,目标应用程序的标识可以是该目标应用程序的标志启动的标识。请参阅图1,图1是本发明实施例提供的一种未知crash上报方法的流程示意图,如图1所示,包括以下步骤:S101、当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识。可选的,上述指定文件可以是用于存储当前处于运行状态的应用程序的标识。可选的,上述可以是接收用户输入的启动指令,例如:用户点击目标应用程序的图标;或者上述可以是获取系统自动生成的启动指令,例如:开机时自动启动目标应用程序;或者上述可以是获取当前处理的事件触发的启动指令,例如:当前在展现图像,当图像可以共享时,启动用于进行图像共享的通信应用程序等等。另外,上述指定文件可以是本地文件,例如:系统中的一个用于存储当前处于运行状态的应用程序的标识,即该当前正在运行的应用程序的标识都会存储在该指定文件中。另外,应用程序的标识与应用程序存在一一对应关系,即一个标识唯一对应一个应用程序,一个应用程序唯一对应一个标识。S102、当所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息。可选的,由于上述指定文件是用于存储当前处于运行状态的应用程序的标识,且应用程序正常退出时,上述指定文件中会将该正常退出的应用程序的标识移除。而接收到上述启动指令时,上述目标应用程序当前处于非运行状态,这样当步骤S101判断在接收到上述启动指令时,该指定文件中包括上述目标应用程序的标识,步骤S102就可以判断上述目标应用程序在最近一次运行出现crash,即目标应用程序在最近一次运行时是异常退出。此时,步骤S102就可以从日志文件中读取目标应用程序最近一次的日志信息,当该日志信息中不包括堆栈信息时,该日志信息就可以指示目标应用程序在所述最近一次运行时产生未知crash,即通过该日志信息就可以确定目标应用程序在所述最近一次运行时产生未知crash。另外,当步骤S102获取的日志信息包括堆栈信息时,由于堆栈信息中记录了造成目标应用程序crash的异常事件,从而该日志信息可以指示目标应用程序在所述最近一次运行时产生非未知crash,即通过该日志信息就可以确定目标应用程序在所述最近一次运行时产生非未知crash。另外,上述日志文件是系统用于保存各应用程序的日志信息的文件。S103、向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。需要说明的是,所述方法在接收到上述启动指令时还可以启动上述目标应用程序,即启动目标应用程序可以是与步骤S101和步骤S102一起执行的。可选的,上述方法可以应用于任何具备通信和存储功能的用户终端,即该用户终端可以实现上述方法,例如:平板电脑、手机、电子阅读器、遥控器、个人计算机PersonalComputer,PC、笔记本电脑、车载设备、网络电视、可穿戴设备等智能设备。上述技术方案中,当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识;当所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息;向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。从而本发明实施例可以识别应用程序的未知crash。请参阅图2,图2是本发明实施例提供的另一种未知crash上报方法的流程示意图,如图2所示,包括以下步骤:S201、当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识。可选的,所述指定文件可以是用于存储当前处于运行状态的应用程序的标识。可选的,由于上述指定文件是用于存储当前处于运行状态的应用程序的标识,且应用程序正常退出时,上述指定文件中会将该正常退出的应用程序的标识移除。而接收到上述启动指令时,上述目标应用程序当前处于非运行状态,这样当步骤S201判断在接收到上述启动指令时,该指定文件中包括上述目标应用程序的标识,就可以判断上述目标应用程序在最近一次运行出现crash,即可以执行步骤S202。当步骤S201判断在接收到上述启动指令,该指定文件中不包括上述目标应用程序的标识时,就说明目标应用程序最近一次运行是正常退出,从而可以直接启动该目标应用程序。S202、当所述指定文件包括所述目标应用程序的标识时,从日志文件中读取包括所述目标应用程序在离获取所述启动指令的时间最近一次运行时与crash相关的运行环境信息的日志信息。S203、向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash,并根据所述运行环境信息分析所述未知crash的产生原因。当服务器接收到上述日志信息后,服务器就可以判断日志信息中是否包括堆栈信息,当不包括堆栈信息时,服务器就可以确定所述目标应用程序在所述最近一次运行时产生未知crash,当包括堆栈信息时,服务器就可以确定所述目标应用程序在所述最近一次运行时产生非未知crash,以及根据所述运行环境信息分析所述未知crash的产生原因。可选的,服务器确定目标应用程序在所述最近一次运行时产生未知crash时,还可以向执行上述步骤的用户终端返回目标应用程序产生未知crash的反馈结果。可选的,上述与crash相关的运行环境信息还可以理解为能够导致目标应用程序出现crash的运行环境信息,例如:上述运行环境信息可以包括如下至少一项:目标应用程序在运行时用户终端的内存状况信息、目标应用程序在运行时用户终端的内存温度信息、目标应用程序在运行时用户终端当前运行的应用程序信息、目标应用程序在运行时用户终端使用的网络状况信息、目标应用程序在运行时用户终端接收的操作信息、目标应用程序在运行所访问的站点信息、目标应用程序运行时的异常信息等等可以导致目标应用程序产生crash的信息。另外,当日志信息包括堆栈信息时,该堆栈信息也可以作为上述运行环境信息中的一项。当服务器接收到上述运行环境信息时,就可以分析目标应用程序的未知crash的产生原因,例如:上述运行环境信息包括目标应用程序在运行时用户终端的内存状况信息,且此时用户终端的内存使用率特别高时,服务器通过分析可能就得到目标应用程序的未知crash的产生原因可能是内存不够,这样服务器就可以针对该情况改进目标应用程序,以使目标应用程序可以在内存较小的情况下正常运行。另外,上述服务器具体可以是分析上述目标应用程序或者维护上述目标应用程序的服务器,这样该服务器就可以根据未知crash的产生原因改进目标应用程序,以提高目标应用程序的稳定性。可选的,步骤S203还可以是只上报上述运行环境信息,服务器接收到该运行环境信息后,判断所述运行环境信息中是否包括堆栈信息,当所述服务器判断所述运行环境信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash,并根据所述运行环境信息分析所述未知crash的产生原因。当然,服务器可以是接收多个用户终端发送上述日志信息,这样服务器就可以量化或者统计目标应用程序的未知crash,以及分析目标应用程序在这些用户终端产生未知crash的原因,再结合这些原因信息改进目标应用程序,以提高目标应用程序的稳定性。上述技术方案中,可以实现由于服务器对目标应用程序的未知crash进行分析和量化,而服务器是可以修改或者改进目标应用程序的,从而上述技术方案中可以实现提高目标应用程序的稳定性。请参阅图3,图3是本发明实施例提供的另一种未知crash上报方法的流程示意图,如图3所示,包括以下步骤:S301、接收用户终端发送的日志信息,所述日志信息是所述用户终端在接收到用于启动目标应用程序的启动指令,且所述用户终端的指定文件当前包括所述目标应用程序的标识时发送的,且所述日志信息为所述目标应用程序在离所述用户终端获取所述启动指令的时间最近一次运行的日志信息。可选的,当用户终端获取到用于启动目标应用程序的启动指令时,用户终端判断指定文件是否包括所述目标应用程序的标识,当该指定文件包括所述目标应用程序的标识时,用户终端从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息,并向执行步骤S301的服务器发送该日志信息。S302、判断所述日志信息是否包括堆栈信息,若否,则执行步骤S303;若是,则可以执行步骤S304。可选的,步骤S302可以是对上述日志信息进行筛选,当筛选到堆栈信息时,就执行步骤S304,没有筛选到堆栈信息时,就执行步骤S303。S303、确定所述目标应用程序在所述最近一次运行时产生未知crash。S304、确定所述目标应用程序在所述最近一次运行时产生非未知crash。可选的,上述日志信息包括所述目标应用程序在所述最近一次运行时与crash相关的运行环境信息;另外,上述与crash相关的运行环境信息还可以理解为能够导致目标应用程序出现crash的运行环境信息,例如:上述运行环境信息可以包括如下至少一项:目标应用程序在运行时用户终端的内存状况信息、目标应用程序在运行时用户终端的内存温度信息、目标应用程序在运行时用户终端当前运行的应用程序信息、目标应用程序在运行时用户终端使用的网络状况信息、目标应用程序在运行时用户终端接收的操作信息、目标应用程序在运行所访问的站点信息、目标应用程序运行时的异常信息等等可以导致目标应用程序产生crash的信息。所述方法还可以包括:根据所述运行环境信息分析所述未知crash的产生原因。当接收到上述运行环境信息时,就可以分析目标应用程序的未知crash的产生原因,例如:上述运行环境信息包括目标应用程序在运行时用户终端的内存状况信息,且此时用户终端的内存使用率特别高时,通过分析可能就得到目标应用程序的未知crash的产生原因可能是内存不够,这样就可以针对该情况改进目标应用程序,以使目标应用程序可以在内存较小的情况下正常运行。另外,上述方法可以应用于分析上述目标应用程序或者维护上述目标应用程序的服务器,这样该服务器就可以根据未知crash的产生原因改进目标应用程序,以提高目标应用程序的稳定性。当然,服务器可以是接收多个用户终端发送上述日志信息,这样服务器就可以量化或者统计目标应用程序的未知crash,以及分析目标应用程序在这些用户终端产生未知crash的原因,再结合这些原因信息改进目标应用程序,以提高目标应用程序的稳定性。可选的,步骤S301还可以是只接收上述运行环境信息,步骤S302再判断所述运行环境信息中是否包括堆栈信息,当判断所述运行环境信息中不包括堆栈信息时,确定所述目标应用程序在所述最近一次运行时产生未知crash,并根据所述运行环境信息分析所述未知crash的产生原因。上述技术方案中,可以实现由于服务器对目标应用程序的未知crash进行分析和量化,而服务器是可以修改或者改进目标应用程序的,从而上述技术方案中可以实现提高目标应用程序的稳定性。请参阅图4,图4是本发明实施例提供的一种应用程序启动示意图举例示意图,如图4所示,包括以下步骤:S401、程序启动,并读取指定文件.具体可以是接收用户输入的用于启动程序的操作指令,另外,上述指定文件可以是用于存储当前处于运行状态的应用程序的标识。S402、判断指定文件中是否存在该程序的标志启动的标识,若是,则执行步骤S403,若否,则执行步骤S407;S403、读取实时记录日志信息的日志文件。S404、从该日志文件中获取该程序与crash相关的运行环境信息。S405、向后台服务器上报该运行环境信息。另外,上述与crash相关的运行环境信息还可以理解为能够导致目标应用程序出现crash的运行环境信息,例如:上述运行环境信息可以包括如下至少一项目标应用程序在运行时用户终端的内存状况信息、目标应用程序在运行时用户终端的内存温度信息、目标应用程序在运行时用户终端当前运行的应用程序信息、目标应用程序在运行时用户终端使用的网络状况信息、目标应用程序在运行时用户终端接收的操作信息、目标应用程序在运行所访问的站点信息、目标应用程序运行时的异常信息等等可以导致目标应用程序产生crash的信S405、向后台服务器上报该运行环境信息。S406、后台服务器筛选得到该程序的未知crash的信息数据,完成对未知crash的统计上报;该步骤由后台服务器执行的。后台服务器还可以根据上述运行环境信息分析crash的原因。即后台服务器可以判断所述运行环境信息中是否包括堆栈信息,当判断所述运行环境信息中不包括堆栈信息时,确定所述目标应用程序在所述最近一次运行时产生未知crash,并根据所述运行环境信息分析所述未知crash的产生原因。S407、写入该程序的标志启动的标识到指定文件中。将程序的标识写入到指定文件后,就表明该程序目标处于运行状态。S408、程序退出,从指定文件中移除该程序的标志启动的标识。当程序退出时,从指定文件中移除该程序的标识,从而表示该程序已经退出,即该程序当前处于关闭状态。上述技术方案中,在上述实施例的基础上详细介绍上报crash上报方法,以及程序启动和退出流程。下面为本发明装置实施例,本发明装置实施例用于执行本发明方法实施例一至四实现的方法,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例一、实施例二、实施例三和实施例四。请参阅图5,图5是本发明实施例提供的一种未知crash上报装置的结构示意图,如图5所示,包括:判断单元51、读取单元52和发送单元53,其中:判断单元51,用于当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识。可选的,上述指定文件可以是用于存储当前处于运行状态的应用程序的标识。可选的,上述可以是接收用户输入的启动指令,例如:用户点击目标应用程序的图标;或者上述可以是获取系统自动生成的启动指令,例如:开机时自动启动目标应用程序;或者上述可以是获取当前处理的事件触发的启动指令,例如:当前在展现图像,当图像可以共享时,启动用于进行图像共享的通信应用程序等等。另外,上述指定文件可以是本地文件,例如:系统中的一个用于存储当前处于运行状态的应用程序的标识,即该当前正在运行的应用程序的标识都会存储在该指定文件中。另外,应用程序的标识与应用程序存在一一对应关系,即一个标识唯一对应一个应用程序,一个应用程序唯一对应一个标识。读取单元52,用于当所述判断单元判断所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息。可选的,由于上述指定文件是用于存储当前处于运行状态的应用程序的标识,且应用程序正常退出时,上述指定文件中会将该正常退出的应用程序的标识移除。而接收到上述启动指令时,上述目标应用程序当前处于非运行状态,这样当判断单元51判断在接收到上述启动指令时,该指定文件中包括上述目标应用程序的标识,读取单元52就可以判断上述目标应用程序在最近一次运行出现crash,即目标应用程序在最近一次运行时是异常退出。此时,读取单元52就可以从日志文件中读取目标应用程序最近一次的日志信息,当该日志信息中不包括堆栈信息时,该日志信息就可以指示目标应用程序在所述最近一次运行时产生未知crash,即通过该日志信息就可以确定目标应用程序在所述最近一次运行时产生未知crash。另外,当读取单元52获取的日志信息包括堆栈信息时,由于堆栈信息中记录了造成目标应用程序crash的异常事件,从而该日志信息可以指示目标应用程序在所述最近一次运行时产生非未知crash,即通过该日志信息就可以确定目标应用程序在所述最近一次运行时产生非未知crash。另外,上述日志文件是系统用于保存各应用程序的日志信息的文件。发送单元53,用于向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。当服务器接收到上述日志信息后,服务器就可以判断日志信息中是否包括堆栈信息,当不包括堆栈信息时,服务器就可以确定所述目标应用程序在所述最近一次运行时产生未知crash,当包括堆栈信息时,服务器就可以确定所述目标应用程序在所述最近一次运行时产生非未知crash。可选的,服务器确定目标应用程序在所述最近一次运行时产生未知crash时,还可以向执行上述步骤的用户终端返回目标应用程序产生未知crash的反馈结果。可选的,上述日志信息可以包括所述目标应用程序在所述最近一次运行时与crash相关的运行环境信息的,且该运行环境信息可以用于使所述服务器根据所述运行环境信息分析所述未知crash的产生原因。上述与crash相关的运行环境信息还可以理解为能够导致目标应用程序出现crash的运行环境信息,例如:上述运行环境信息可以包括如下至少一项:目标应用程序在运行时用户终端的内存状况信息、目标应用程序在运行时用户终端的内存温度信息、目标应用程序在运行时用户终端当前运行的应用程序信息、目标应用程序在运行时用户终端使用的网络状况信息、目标应用程序在运行时用户终端接收的操作信息、目标应用程序在运行所访问的站点信息、目标应用程序运行时的异常信息等等可以导致目标应用程序产生crash的信息。另外,当日志信息包括堆栈信息时,该堆栈信息也可以作为上述运行环境信息中的一项。当服务器接收到上述运行环境信息时,就可以分析目标应用程序的未知crash的产生原因,例如:上述运行环境信息包括目标应用程序在运行时用户终端的内存状况信息,且此时用户终端的内存使用率特别高时,服务器通过分析可能就得到目标应用程序的未知crash的产生原因可能是内存不够,这样服务器就可以针对该情况改进目标应用程序,以使目标应用程序可以在内存较小的情况下正常运行。另外,上述服务器具体可以是分析上述目标应用程序或者维护上述目标应用程序的服务器,这样该服务器就可以根据未知crash的产生原因改进目标应用程序,以提高目标应用程序的稳定性。可选的,发送单元53还可以是只上报上述运行环境信息,服务器接收到该运行环境信息后,判断所述运行环境信息中是否包括堆栈信息,当所述服务器判断所述运行环境信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash,并根据所述运行环境信息分析所述未知crash的产生原因。当然,服务器可以是接收多个用户终端发送上述日志信息,这样服务器就可以量化或者统计目标应用程序的未知crash,以及分析目标应用程序在这些用户终端产生未知crash的原因,再结合这些原因信息改进目标应用程序,以提高目标应用程序的稳定性。该实施例中,可以实现由于服务器对目标应用程序的未知crash进行分析和量化,而服务器是可以修改或者改进目标应用程序的,从而上述技术方案中可以实现提高目标应用程序的稳定性。需要说明的是,所述装置在接收到上述启动指令时还可以启动上述目标应用程序。可选的,上述装置可以应用于任何具备通信和存储功能的用户终端,即该用户终端可以实现上述装置,例如:平板电脑、手机、电子阅读器、遥控器、PC、笔记本电脑、车载设备、网络电视、可穿戴设备等智能设备。上述技术方案中,当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识;当所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息;向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。从而本发明实施例可以识别应用程序的未知crash。请参阅图6,图6是本发明实施例提供的另一种未知crash上报装置的结构示意图,如图6所示,包括:接收单元61、判断单元62和确定单元63,其中:接收单元61,用于接收用户终端发送的日志信息,所述日志信息是所述用户终端在接收到用于启动目标应用程序的启动指令,且所述用户终端的指定文件当前包括所述目标应用程序的标识时发送的,且所述日志信息为所述目标应用程序在离所述用户终端获取所述启动指令的时间最近一次运行的日志信息;判断单元62,用于判断所述日志信息是否包括堆栈信息;确定单元63,用于当所述判断单元判断所述日志信息不包括堆栈信息时,确定所述目标应用程序在所述最近一次运行时产生未知crash。可选的,上述日志信息包括所述目标应用程序在所述最近一次运行时与crash相关的运行环境信息;另外,上述与crash相关的运行环境信息还可以理解为能够导致目标应用程序出现crash的运行环境信息,例如:上述运行环境信息可以包括如下至少一项:目标应用程序在运行时用户终端的内存状况信息、目标应用程序在运行时用户终端的内存温度信息、目标应用程序在运行时用户终端当前运行的应用程序信息、目标应用程序在运行时用户终端使用的网络状况信息、目标应用程序在运行时用户终端接收的操作信息、目标应用程序在运行所访问的站点信息、目标应用程序运行时的异常信息等等可以导致目标应用程序产生crash的信息。如图7的所示,所述装置还可以包括:分析单元64,用于根据所述运行环境信息分析所述未知crash的产生原因。当接收到上述运行环境信息时,就可以分析目标应用程序的未知crash的产生原因,例如:上述运行环境信息包括目标应用程序在运行时用户终端的内存状况信息,且此时用户终端的内存使用率特别高时,通过分析可能就得到目标应用程序的未知crash的产生原因可能是内存不够,这样就可以针对该情况改进目标应用程序,以使目标应用程序可以在内存较小的情况下正常运行。另外,上述方法可以应用于分析上述目标应用程序或者维护上述目标应用程序的服务器,这样该服务器就可以根据未知crash的产生原因改进目标应用程序,以提高目标应用程序的稳定性。当然,服务器可以是接收多个用户终端发送上述日志信息,这样服务器就可以量化或者统计目标应用程序的未知crash,以及分析目标应用程序在这些用户终端产生未知crash的原因,再结合这些原因信息改进目标应用程序,以提高目标应用程序的稳定性。可选的,确定单元63还可以用于当所述判断单元判断所述日志信息包括堆栈信息时,确定所述目标应用程序在所述最近一次运行时产生非未知crash。可选的,接收单元61还可以是只接收上述运行环境信息,判断单元62再判断所述运行环境信息中是否包括堆栈信息,当判断所述运行环境信息中不包括堆栈信息时,确定单元63就可以确定所述目标应用程序在所述最近一次运行时产生未知crash,分析单元64再根据所述运行环境信息分析所述未知crash的产生原因。上述技术方案中,可以实现由于服务器对目标应用程序的未知crash进行分析和量化,而服务器是可以修改或者改进目标应用程序的,从而上述技术方案中可以实现提高目标应用程序的稳定性。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体Read-OnlyMemory,ROM或随机存取存储器RandomAccessMemory,简称RAM等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

权利要求:1.一种未知崩溃crash上报方法,其特征在于,包括:当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识;所述指定文件是用于存储当前处于运行状态的应用程序的标识的文件;当所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息;向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。2.如权利要求1所述的方法,其特征在于,所述日志信息包括所述目标应用程序在所述最近一次运行时与crash相关的运行环境信息,所述运行环境信息用于使所述服务器根据所述运行环境信息分析所述未知crash的产生原因。3.如权利要求1或2所述的方法,其特征在于,当所述日志信息中包括堆栈信息时,所述日志信息用于指示所述目标应用程序在所述最近一次运行时产生非未知crash。4.一种未知crash上报方法,其特征在于,包括:接收用户终端发送的日志信息,所述日志信息是所述用户终端在接收到用于启动目标应用程序的启动指令,且所述用户终端的指定文件当前包括所述目标应用程序的标识时发送的,且所述日志信息为所述目标应用程序在离所述用户终端获取所述启动指令的时间最近一次运行的日志信息;所述指定文件是用于存储当前处于运行状态的应用程序的标识的文件;判断所述日志信息是否包括堆栈信息,若否,则确定所述目标应用程序在所述最近一次运行时产生未知crash。5.如权利要求4所述的方法,其特征在于,所述日志信息包括所述目标应用程序在所述最近一次运行时与crash相关的运行环境信息;所述方法还包括:根据所述运行环境信息分析所述未知crash的产生原因。6.如权利要求4或5所述的方法,其特征在于,所述方法还包括:当判断所述日志信息包括堆栈信息时,确定所述目标应用程序在所述最近一次运行时产生非未知crash。7.一种未知崩溃crash上报装置,其特征在于,包括:判断单元、读取单元和发送单元,其中:所述判断单元,用于当获取到用于启动目标应用程序的启动指令时,判断指定文件是否包括所述目标应用程序的标识;所述指定文件是用于存储当前处于运行状态的应用程序的标识的文件;所述读取单元,用于当所述判断单元判断所述指定文件包括所述目标应用程序的标识时,从日志文件中读取所述目标应用程序在离获取所述启动指令的时间最近一次运行的日志信息;所述发送单元,用于向服务器发送所述日志信息,以使所述服务器判断所述日志信息中是否包括堆栈信息,当所述服务器判断所述日志信息中不包括堆栈信息时,由所述服务器确定所述目标应用程序在所述最近一次运行时产生未知crash。8.如权利要求7所述的装置,其特征在于,所述日志信息包括所述目标应用程序在所述最近一次运行时与crash相关的运行环境信息,所述运行环境信息用于使所述服务器根据所述运行环境信息分析所述未知crash的产生原因。9.如权利要求7或8所述的装置,其特征在于,当所述日志信息中包括堆栈信息时,所述日志信息指示所述目标应用程序在所述最近一次运行时产生非未知crash。10.一种未知crash上报装置,其特征在于,包括:接收单元、判断单元和确定单元,其中:所述接收单元,用于接收用户终端发送的日志信息,所述日志信息是所述用户终端在接收到用于启动目标应用程序的启动指令,且所述用户终端的指定文件当前包括所述目标应用程序的标识时发送的,且所述日志信息为所述目标应用程序在离所述用户终端获取所述启动指令的时间最近一次运行的日志信息;所述指定文件是用于存储当前处于运行状态的应用程序的标识的文件;所述判断单元,用于判断所述日志信息是否包括堆栈信息;所述确定单元,用于当所述判断单元判断所述日志信息不包括堆栈信息时,确定所述目标应用程序在所述最近一次运行时产生未知crash。11.如权利要求10所述的装置,其特征在于,所述日志信息包括所述目标应用程序在所述最近一次运行时与crash相关的运行环境信息;所述装置还包括:分析单元,用于根据所述运行环境信息分析所述未知crash的产生原因。12.如权利要求10或11所述的装置,其特征在于,所述确定单元还用于当所述判断单元判断所述日志信息包括堆栈信息时,确定所述目标应用程序在所述最近一次运行时产生非未知crash。

百度查询: 腾讯科技(深圳)有限公司 一种未知crash上报方法和装置

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。