CN106878093A - 一种无响应日志解析方法及终端 - Google Patents

一种无响应日志解析方法及终端 Download PDF

Info

Publication number
CN106878093A
CN106878093A CN201710210070.3A CN201710210070A CN106878093A CN 106878093 A CN106878093 A CN 106878093A CN 201710210070 A CN201710210070 A CN 201710210070A CN 106878093 A CN106878093 A CN 106878093A
Authority
CN
China
Prior art keywords
response
thread
log
response log
reason
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.)
Withdrawn
Application number
CN201710210070.3A
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.)
Nubia Technology Co Ltd
Original Assignee
Nubia Technology 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 Nubia Technology Co Ltd filed Critical Nubia Technology Co Ltd
Priority to CN201710210070.3A priority Critical patent/CN106878093A/zh
Publication of CN106878093A publication Critical patent/CN106878093A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种无响应日志解析方法及终端,涉及终端技术领域,所述无响应日志解析终端包括分析模块,用于获取当前无响应日志的无响应参数;查询模块,用于查询与所述无响应参数分别相同的已有无响应日志;归类模块,用于将所述当前无响应日志与查询到的所述已有无响应日志归为同一类;本发明提供的无响应日志解析方法及终端,通过解析无响应日志的无响应参数,可以自动将无响应参数相同的无响应日志进行归类处理,经过归类后,大量的应用无响应日志将归类成少量的不同无响应原因导致的应用无响应日志,开发人员只对经过归类的应用无响应日志进行分析,减少了对应用无响应日志重复分析量,使整个分析过程省时省力,节约成本。

Description

一种无响应日志解析方法及终端
技术领域
本发明涉及终端技术领域,尤其涉及一种无响应日志解析方法及终端。
背景技术
随着通信技术的发展,网络通信业务种类繁多,不同的业务程序使用不同的编程语言和代码框架,在运行时会产生不同类型的日志。其中,互联网公司的业务中,常见的日志类型有Nginx日志、Log日志、Glog日志、PHP日志等。为了供后续大数据***进行分析,需要进行日志解析,即将日志中的非结构化数据转化成结构化数据。针对不同格式的日志,目前常用的解析方法是对每种日志格式分别建立一套日志解析***。
其中,Log是广泛使用的用来记录程序执行过程的机制。Android为用户空间的程序开发人员提供了轻量级的Logger日志***,该日志***是以驱动程序的形式实现在内核空间中的,产生的Log是以设备文件的形式存储在文件夹/dev/log/中,该日志***提供了写Log到设备文件和从设备文件中读Log接口。
ANR即ApplicationNot Responding,是指应用程序未响应。Android***对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。如果因为一些耗时操作造成主线程阻塞一定时间,那么***就会显示ANR对话框提示用户对应的应用处于无响应状态。不同组件Android定义的ANR超时时间是不一样的,一般有以下三种无响应类型:1、Service Timeout:服务在20s内未执行完成;2、BroadcastQueue Timeout:前台广播在10s内执行完成。3、inputDispatching Timeout:输入事件分发超时5s,包括按键分发事件的超时。当出现无响应时,Android会将应用进程堆栈信息存储到data/anr目录下的traces文件中,供开发人员分析无响应原因。
由于服务器收到手机端上传的大量应用无响应日志,假如某厂商在市场上有1000万台机器,手机生命周期范围内无响应异常上报率为10%,则服务器上将有100万条应用无响应日志信息。如果开发人员对每一条日志都进行分析的话,上传到服务器的应用无响应日志量巨大,分析过程耗时费力。
发明内容
本发明的主要目的在于提出一种无响应日志解析方法及终端,旨在解决现有技术无响应日志解析量大,分析过程耗时费力的问题。
为实现上述目的,本发明一方面提供一种终端,包括:
分析模块,用于获取当前无响应日志的无响应参数;
查询模块,用于查询与所述无响应参数分别相同的已有无响应日志;
归类模块,用于将所述当前无响应日志与查询到的所述已有无响应日志归为同一类;
其中,所述无响应参数包括:PACKAGENAME应用包名称、COMPONENT无响应组件、ANRTYPE无响应类型、以及REASON无响应原因。
进一步的,所述分析模块根据预设判定规则依次获取所述无响应参数。
进一步的,所述分析模块包括:
第一分析模块,用于当查询到所述当前无响应日志当前行中包含PACKAGENAME的无响应问题时,匹配下一行ANR应用程序无响应的PACKAGENAME;
第二分析模块,用于获取下一行PID包标识符、ANRTYPE、COMPONENT;
第三分析模块,用于根据所述PID查询traces日志文件中对应的PACKAGENAME线程的堆栈状态,根据所述堆栈状态获取REASON。
进一步的,所述第三分析模块包括:
第一判断模块,用于当当前查询线程与已查询过的线程分别因持有对方等待的资源锁导致死锁时,将死锁链上的线程名称组合,作为REASON;‘
第二判断模块,用于当当前查询线程等待其他线程持有的资源锁,且所述当前查询线程正在binder其他进程的线程,将binder服务端的进程名称和线程最后一行调用栈名称作为REASON;
第三判断模块,用于当当前查询线程等待其他线程持有的资源锁,且当前查询线程未binder其他进程的线程,将当前线程最后一行调用栈信息作为REASON。
进一步的,所述无响应日志分析终端还包括:
新建模块,用于当未查询到与所述无响应参数分别相同的已有无响应日志时,将当前无响应日志添加到无响应日志队列中。
本发明另一方面还提供一种方法,包括:
获取当前无响应日志的无响应参数;
查询与所述无响应参数分别相同的已有无响应日志;
将所述当前无响应日志与查询到的所述已有无响应日志归为同一类;
其中,所述无响应参数包括:PACKAGENAME应用包名称、COMPONENT无响应组件、ANRTYPE无响应类型、以及REASON无响应原因。
进一步的,所述获取当前无响应日志的无响应参数包括:
根据预设判定规则依次获取所述无响应参数。
进一步的,所述获取当前无响应日志的无响应参数包括:
当查询到所述当前无响应日志当前行中包含PACKAGENAME的无响应问题时,匹配下一行ANR应用程序无响应的PACKAGENAME;
获取下一行PID包标识符、ANRTYPE、COMPONENT;
根据所述PID查询traces日志文件中对应的PACKAGENAME线程的堆栈状态,根据所述堆栈状态获取REASON。
进一步的,所述据所述PID查询traces日志文件中对应的PACKAGENAME线程的堆栈状态,根据所述堆栈状态获取REASON包括:
当当前查询线程与已查询过的线程分别持有对方等待的资源锁,导致死锁时,将死锁链上的线程名称组合,作为REASON;‘
当当前查询线程等待其他线程持有的资源锁,且所述当前查询线程正在binder其他进程的线程,将binder服务端的进程名称和线程最后一行调用栈名称作为REASON;
当当前查询线程等待其他线程持有的资源锁,且当前查询线程未binder其他进程的线程,将当前线程最后一行调用栈信息作为REASON。
进一步的,在所述查询与所述无响应参数分别相同的已有无响应日志步骤之后,所述方法还包括:
当未查询到与所述无响应参数分别相同的已有无响应日志时,将当前无响应日志添加到无响应日志队列中。
本发明实施例提供的无响应日志解析方法及终端,通过解析无响应日志的无响应参数,可以自动将无响应参数相同的无响应日志进行归类处理,经过归类后,大量的应用无响应日志将归类成少量的不同无响应原因导致的应用无响应日志,开发人员只对经过归类的应用无响应日志进行分析,减少了对应用无响应日志重复分析量,使整个分析过程省时省力,节约成本。此外,通过本发明还可以了解到市场上无响应日志中各种问题出现的比率、数量等数据,为进一步优化产品性能提供依据。
附图说明
图1为实现本发明各个实施例的移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信终端示意图;
图3为本发明实施例中单手握持移动终端的示意图;
图4为本发明实施例中一种终端的组成结构示意图;
图5为本发明实施例中另一种终端的组成结构示意图;
图6为本发明实施例中一种方法的流程图;
图7为本发明实施例中另一种方法的流程图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,"模块"与"部件"可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例的移动终端的硬件结构示意。
移动终端100可以包括无线通信单元110、A/V(音频/视频)输入单元120、用户输入单元130、感测单元140、输出单元150、存储器160、接口单元170、控制器180和电源单元190、检测单元120等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信终端或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块111、移动通信模块112、无线互联网模块113、短程通信模块114和位置信息模块115中的至少一个。
广播接收模块111经由广播信道从外部广播管理服务器接收广播信号和/或广播相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息并且将其发送给终端的服务器。广播信号可以包括TV广播信号、无线电广播信号、数据广播信号等等。而且,广播信号可以进一步包括与TV或无线电广播信号组合的广播信号。广播相关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模块112来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(DMB)的电子节目指南(EPG)、数字视频广播手持(DVB-H)的电子服务指南(ESG)等等的形式而存在。广播接收模块111可以通过使用各种类型的广播终端接收信号广播。特别地,广播接收模块111可以通过使用诸如多媒体广播-地面(DMB-T)、数字多媒体广播-卫星(DMB-S)、数字视频广播-手持(DVB-H),前向链路媒体(MediaFLO@)的数据广播终端、地面数字广播综合服务(ISDB-T)等等的数字广播终端接收数字广播。广播接收模块111可以被构造为适合提供广播信号的各种广播终端以及上述数字广播终端。经由广播接收模块111接收的广播信号和/或广播相关信息可以存储在存储器160(或者其它类型的存储介质)中。
移动通信模块112将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块113支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括WLAN(无线LAN)(Wi-Fi)、Wibro(无线宽带)、Wimax(全球微波互联接入)、HSDPA(高速下行链路分组接入)等等。
短程通信模块114是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙TM、射频识别(RFID)、红外数据协会(IrDA)、超宽带(UWB)、紫蜂TM等等。
位置信息模块115是用于检查或获取移动终端的位置信息的模块。位置信息模块的典型示例是GPS(全球定位终端)。根据当前的技术,GPS模块115计算来自三个或更多卫星的距离信息和准确的时间信息并且对于计算的信息应用三角测量法,从而根据经度、纬度和高度准确地计算三维当前位置信息。当前,用于计算位置和时间信息的方法使用三颗卫星并且通过使用另外的一颗卫星校正计算出的位置和时间信息的误差。此外,GPS模块115能够通过实时地连续计算当前位置信息来计算速度信息。
A/V输入单元120用于接收音频或视频信号。A/V输入单元120可以包括相机121和麦克风1220,相机121对在视频捕获模式或图像捕获模式中由图像捕获装置获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元151上。经相机121处理后的图像帧可以存储在存储器160(或其它存储介质)中或者经由无线通信单元110进行发送,可以根据移动终端的构造提供两个或更多相机1210。麦克风122可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由移动通信模块112发送到移动通信基站的格式输出。麦克风122可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元151上时,可以形成触摸屏。
感测单元140检测移动终端100的当前状态,(例如,移动终端100的打开或关闭状态)、移动终端100的位置、用户对于移动终端100的接触(即,触摸输入)的有无、移动终端100的取向、移动终端100的加速或减速移动和方向等等,并且生成用于控制移动终端100的操作的命令或信号。例如,当移动终端100实施为滑动型移动电话时,感测单元140可以感测该滑动型电话是打开还是关闭。另外,感测单元140能够检测电源单元190是否提供电力或者接口单元170是否与外部装置耦接。
接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(UIM)、客户识别模块(SIM)、通用客户识别模块(USIM)等等。另外,具有识别模块的装置(下面称为"识别装置")可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。
另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。输出单元150可以包括显示单元151、音频输出模块152、警报单元153等等。
显示单元151可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元151可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。
同时,当显示单元151和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元151可以用作输入装置和输出装置。显示单元151可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。
音频输出模块152可以在移动终端处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将无线通信单元110接收的或者在存储器160中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块152可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出模块152可以包括扬声器、蜂鸣器等等。
警报单元153可以提供输出以将事件的发生通知给移动终端100。典型的事件可以包括呼叫接收、消息接收、键信号输入、触摸输入等等。除了音频或视频输出之外,警报单元153可以以不同的方式提供输出以通知事件的发生。例如,警报单元153可以以振动的形式提供输出,当接收到呼叫、消息或一些其它进入通信(incomingcommunication)时,警报单元153可以提供触觉输出(即,振动)以将其通知给用户。通过提供这样的触觉输出,即使在用户的移动电话处于用户的口袋中时,用户也能够识别出各种事件的发生。警报单元153也可以经由显示单元151或音频输出模块152提供通知事件的发生的输出。
存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。
存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。
控制器180通常控制移动终端的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒体数据的多媒体模块1810,多媒体模块1810可以构造在控制器180内,或者可以构造为与控制器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。
电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。
至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信终端以及基于卫星的通信终端来操作。
现在将参考图2描述其中根据本发明的移动终端能够操作的通信终端。
这样的通信终端可以使用不同的空中接口和/或物理层。例如,由通信终端使用的空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信终端(UMTS)(特别地,长期演进(LTE))、全球移动通信终端(GSM)等等。作为非限制性示例,下面的描述涉及CDMA通信终端,但是这样的教导同样适用于其它类型的终端。
参考图2,CDMA无线通信终端可以包括多个移动终端100、多个基站(BS)270、基站控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。回程线路可以根据若干己知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM,IP、PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的终端可以包括多个BSC2750。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子终端(BTS)或者其它等效术语。在这样的情况下,术语"基站"可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为"蜂窝站"。或者,特定BS270的各分区可以被称为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在终端内操作的移动终端100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播信号。在图2中,示出了几个全球定位终端(GPS)卫星300。卫星300帮助定位多个移动终端100中的至少一个。
在图2中,描绘了多个卫星300,但是理解的是,可以利用任何数目的卫星获得有用的定位信息。如图1中所示的GPS模块115通常被构造为与卫星300配合以获得想要的定位信息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端的位置的其它技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。
作为无线通信终端的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号发送到移动终端100。
基于上述移动终端硬件结构以及通信终端,提出本发明各个实施例。
本发明一种实施例提供了在移动终端上进行无响应日志解析的装置,显然在本发明第一实施例中,在移动终端上进行无响应日志解析的装置可以通过移动终端来实现。
需要说明的是,移动终端上设置有用于存储数据的存储器,这里,对移动终端上存储器的类型不做限制。
这里,移动终端包括但不限于手机、智能电话、笔记本电脑、数字广播接收器、PDA、PAD、PMP、导航装置等等。
这里,移动终端如果具有操作终端,该操作终端可以为UNIX、Linux、Windows、安卓(Android)、Windows Phone等等。
下面以移动终端是手机的情况为例进行说明。
这里,该移动终端还具有便携性,具体地,移动终端可以实现单手握持,如此,在各种场景需要进行快速图标隐藏时,可以利用移动终端的便携性实现快速图标隐藏,图3为本发明第一实施例中单手握持移动终端的示意图。
图4为本发明第一实施例一种终端100的组成结构示意图,如图6所示,终端100包括:
分析模块61,用于获取当前无响应日志的无响应参数;
查询模块62,用于查询与所述无响应参数分别相同的已有无响应日志;
归类模块63,用于将所述当前无响应日志与查询到的所述已有无响应日志归为同一类;
其中,所述无响应参数包括:PACKAGENAME应用包名称、COMPONENT无响应组件、ANRTYPE无响应类型、以及REASON无响应原因。
在一种较佳的实施方式中,分析模块61根据预设判定规则依次获取和查询所述无响应参数。例如,分析模块61根据第一预设判定规则获取PACKAGENAME,当匹配到ANR的PACKAGENAME时,分析模块61根据第二预设判定规则获取COMPONENT,当匹配到ANR的COMPONENT时,分析模块61根据第三预设判定规则获取ANRTYPE,当匹配到ANR的ANRTYPE时,分析模块61根据第四预设判定规则获取REASON。查询模块62在已有应用无响应日志队列中查询是否包含PACKAGENAME+ANRTYPE+COMPONENT+REASON的无响应日志,若查询到,则认为当前无响应日志与匹配到的已有无响应日志为同一类。归类模块63将所述当前无响应日志与查询到的所述已有无响应日志归为同一类。当然,分析模块61也可以根据具体需要在一次分析中分析两个或两个以上所述无响应参数,例如,在上例中可以根据第二预设判定规则获取COMPONENT和ANRTYPE,本发明不做具体限定。对于预设判定规则可以根据实际情况进行设置。
本发明实施例提供的无响应日志解析终端,通过解析无响应日志的无响应参数,可以自动将无响应参数相同的无响应日志进行归类处理,经过归类后,大量的应用无响应日志将归类成少量的不同无响应原因导致的应用无响应日志,开发人员只对经过归类的应用无响应日志进行分析,减少了对应用无响应日志重复分析量,使整个分析过程省时省力,节约成本。此外,通过本发明还可以了解到市场上无响应日志中各种问题出现的比率、数量等数据,为进一步优化产品性能提供依据。
图5为本发明另一实施例提供的一种终端110的组成结构示意图,该终端110接收并解析客户端发送的应用包名、磁盘data/anr下的traces日志和Androidlog日志。当出现应用程序无响应时,可用获取到出现无响应的应用包名PACKAGENAME,出现无响应的组件COMPONENT,无响应类型ANRTYPE,以及无响应原因REASON。其中,客户端在Log上报***中配置受保护的广播。当应用出现无响应时,***发送该广播到Log上报***中。Log上报***收到广播后,上传出现无响应的应用包名、磁盘data/anr下的traces日志和Androidlog日志。
如图5所示,该终端110包括:
分析模块71,用于获取当前无响应日志的无响应参数;
查询模块72,用于查询与所述无响应参数分别相同的已有无响应日志;
归类模块73,用于将所述当前无响应日志与查询到的所述已有无响应日志归为同一类;
新建模块74,用于当未查询到与所述无响应参数分别相同的已有无响应日志时,将当前无响应日志添加到无响应日志队列中。
其中,所述无响应参数包括:PACKAGENAME应用包名称、COMPONENT无响应组件、ANRTYPE无响应类型、以及REASON无响应原因。
在一种具体的实施方式中,所述分析模块71包括:
第一分析模块711,用于当查询到所述当前无响应日志当前行中包含PACKAGENAME的无响应问题时,匹配下一行ANR应用程序无响应的PACKAGENAME。例如,第一分析模块711在Android system日志文件中查找每行是否包含上传的PACKAGENAME的无响应问题,读取下一行,分析该行是否匹配ANRin PACKAGENAME。
第二分析模块712,用于获取下一行PID包标识符、ANRTYPE、COMPONENT。如果第一分析模块711分析得出上传的PACKAGENAME的无响应问题与ANRin PACKAGENAME相匹配,则第二分析模块712获取下一行日志的PID包标识符、ANRTYPE、COMPONENT。
第三分析模块713,用于根据所述PID查询traces日志文件中对应的PACKAGENAME线程的堆栈状态,根据所述堆栈状态获取REASON。
具体的,第三分析模块713首先查询main主线程状态。
所述第三分析模块713进一步包括:
第一判断模块,用于当当前查询线程与已查询过的线程分别因持有对方等待的资源锁导致死锁时,将死锁链上的线程名称组合,作为REASON;‘
第二判断模块,用于当当前查询线程等待其他线程持有的资源锁,且所述当前查询线程正在binder其他进程的线程,将binder服务端的进程名称和线程最后一行调用栈名称作为REASON;
第三判断模块,用于当当前查询线程等待其他线程持有的资源锁,且当前查询线程未binder其他进程的线程,将当前线程最后一行调用栈信息作为REASON。
查询模块72,用于接收分析模块71发送的无响应参数PACKAGENAME、COMPONENT、ANRTYPE、以及REASON,在已有应用无响应日志队列中查询是否包含PACKAGENAME+ANRTYPE+COMPONENT+REASON,其中,PACKAGENAME、COMPONENT、ANRTYPE和REASON都是字符串,PACKAGENAME+COMPONENT+ANRTYPE+REASON是将上述四个字符串链接在一起形成新的字符串。
若查询模块72在已有应用无响应日志队列中查询到上述字符串,即查询到与所述无响应参数分别相同的已有无响应日志;则归类模块73将所述当前无响应日志与查询到的所述已有无响应日志归为同一类,例如,可以将PACKAGENAME+COMPONENT+ANRTYPE+REASON作为关键字将其归类。
若查询模块72在已有应用无响应日志队列中未查询到上述字符串新建模块74,则新建模块74将当前无响应日志添加到无响应日志队列中。
需要说明的是,上述各个实施例中的技术特征可以单独使用,也可以相互组合使用,其都在本发明的保护范围之内。
基于上述移动终端硬件结构以及通信***,提出本发明方法各个实施例。
如图6所示,是本发明一种方法的流程图,所述方法包括:
S101、获取当前无响应日志的无响应参数;
本实施例中,根据预设判定规则依次获取所述无响应参数。
在一种较佳的实施方式中,本步骤具体包括:
S1011、当查询到所述当前无响应日志当前行中包含PACKAGENAME的无响应问题时,匹配下一行ANR应用程序无响应的PACKAGENAME;
S1012、获取下一行PID包标识符、ANRTYPE、COMPONENT;
S1013、根据所述PID查询traces日志文件中对应的PACKAGENAME线程的堆栈状态,根据所述堆栈状态获取REASON。
本步骤中,首先查询main主线程状态。具体获取REASON可通过如下步骤:
S11、当当前查询线程与已查询过的线程分别持有对方等待的资源锁,导致死锁时,将死锁链上的线程名称组合,作为REASON;‘
S12、当当前查询线程等待其他线程持有的资源锁,且所述当前查询线程正在binder其他进程的线程,将binder服务端的进程名称和线程最后一行调用栈名称作为REASON;
S13、当当前查询线程等待其他线程持有的资源锁,且当前查询线程未binder其他进程的线程,将当前线程最后一行调用栈信息作为REASON。
S102、查询与所述无响应参数分别相同的已有无响应日志;
本步骤中,接收分析模块71发送的无响应参数PACKAGENAME、COMPONENT、ANRTYPE、以及REASON,在已有应用无响应日志队列中查询是否包含PACKAGENAME+ANRTYPE+COMPONENT+REASON,其中,PACKAGENAME、COMPONENT、ANRTYPE和REASON都是字符串,PACKAGENAME+COMPONENT+ANRTYPE+REASON是将上述四个字符串链接在一起形成新的字符串。
S103、将所述当前无响应日志与查询到的所述已有无响应日志归为同一类;
若步骤S102中查询到与所述无响应参数分别相同的已有无响应日志,则本步骤将所述当前无响应日志与查询到的所述已有无响应日志归为同一类,例如,可以将PACKAGENAME+COMPONENT+ANRTYPE+REASON作为关键字将其归类。
S104、将当前无响应日志添加到无响应日志队列中。
若步骤S102中未查询到与所述无响应参数分别相同的已有无响应日志,则本步骤中将当前无响应日志添加到无响应日志队列中。
如图7是本发明另一种方法的流程图,所述方法包括:
S901、在Android system日志文件中查找每行是否包含上传的PACKAGENAME的无响应问题。
S902、读取一行,分析该行是否匹配ANRin PACKAGENAME?是则执行步骤S903,否则继续步骤S901。
S903、获取该行下一行PID,以及ANRTYPE,COMPONENT。
S904、通过PID查找traces日志文件中对应的PACKAGENAME进程的堆栈状态。
本步骤中,首先查找main主线程状态。
S905、判断当前查询线程与已查询过的线程是否分别因持有对方等待的资源锁导致死锁?是则进入步骤S911,否则进入步骤S906。
S906、判断当前查找的线程是否在等待其他线程持有的资源锁?是则进入步骤S907,否则进入步骤S908。
S907、查找持有锁的线程状态,重新进入步骤S905。
S908、判断当前查找线程是否正在binder其他进程的线程,是则进入步骤S909,否则进入步骤S910。
S909、将binder服务端的进程名称和线程最后一行调用栈名称作为REASON,进入步骤S912。
S910、将当前线程最后一行调用栈信息作为REASON,进入步骤S912。
S911、将死锁链上的线程名称组合,作为REASON,进入步骤S912。
S912、在已有应用无响应问题队列中查找是否包含PACKAGENAME+ANRTYPE+COMPONENT+REASON,是则进入步骤S913,否则进入步骤S914。
S913、将该应用无响应日志作为已有应用无响应日志处理。
S914、将PACKAGENAME+ANRTYPE+COMPONENT+REASON添加到应用无响应问题队列,将该应用无响应日志作为新的应用无响应原因处理。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种终端,其特征在于,包括:
分析模块,用于获取当前无响应日志的无响应参数;
查询模块,用于查询与所述无响应参数分别相同的已有无响应日志;
归类模块,用于将所述当前无响应日志与查询到的所述已有无响应日志归为同一类;
其中,所述无响应参数包括:PACKAGENAME应用包名称、COMPONENT无响应组件、ANRTYPE无响应类型、以及REASON无响应原因。
2.根据权利要求1所述的终端,其特征在于,所述分析模块根据预设判定规则依次获取所述无响应参数。
3.根据权利要求2所述的终端,其特征在于,所述分析模块包括:
第一分析模块,用于当查询到所述当前无响应日志当前行中包含PACKAGENAME的无响应问题时,匹配下一行ANR应用程序无响应的PACKAGENAME;
第二分析模块,用于获取下一行PID包标识符、ANRTYPE、COMPONENT;
第三分析模块,用于根据所述PID查询traces日志文件中对应的PACKAGENAME线程的堆栈状态,根据所述堆栈状态获取REASON。
4.根据权利要求3所述的终端,其特征在于,所述第三分析模块包括:
第一判断模块,用于当当前查询线程与已查询过的线程分别因持有对方等待的资源锁导致死锁时,将死锁链上的线程名称组合,作为REASON;‘
第二判断模块,用于当当前查询线程等待其他线程持有的资源锁,且所述当前查询线程正在binder其他进程的线程,将binder服务端的进程名称和线程最后一行调用栈名称作为REASON;
第三判断模块,用于当当前查询线程等待其他线程持有的资源锁,且当前查询线程未binder其他进程的线程,将当前线程最后一行调用栈信息作为REASON。
5.根据权利要求1-4任一所述的终端,其特征在于,还包括:
新建模块,用于当未查询到与所述无响应参数分别相同的已有无响应日志时,将当前无响应日志添加到无响应日志队列中。
6.一种方法,其特征在于,所述方法包括:
获取当前无响应日志的无响应参数;
查询与所述无响应参数分别相同的已有无响应日志;
将所述当前无响应日志与查询到的所述已有无响应日志归为同一类;
其中,所述无响应参数包括:PACKAGENAME应用包名称、COMPONENT无响应组件、ANRTYPE无响应类型、以及REASON无响应原因。
7.根据权利要求6所述的方法,其特征在于,所述获取当前无响应日志的无响应参数包括:
根据预设判定规则依次获取所述无响应参数。
8.根据权利要求6所述的方法,其特征在于,所述获取当前无响应日志的无响应参数包括:
当查询到所述当前无响应日志当前行中包含PACKAGENAME的无响应问题时,匹配下一行ANR应用程序无响应的PACKAGENAME;
获取下一行PID包标识符、ANRTYPE、COMPONENT;
根据所述PID查询traces日志文件中对应的PACKAGENAME线程的堆栈状态,根据所述堆栈状态获取REASON。
9.根据权利要求8所述的方法,其特征在于,所述据所述PID查询traces日志文件中对应的PACKAGENAME线程的堆栈状态,根据所述堆栈状态获取REASON包括:
当当前查询线程与已查询过的线程分别持有对方等待的资源锁,导致死锁时,将死锁链上的线程名称组合,作为REASON;‘
当当前查询线程等待其他线程持有的资源锁,且所述当前查询线程正在binder其他进程的线程,将binder服务端的进程名称和线程最后一行调用栈名称作为REASON;
当当前查询线程等待其他线程持有的资源锁,且当前查询线程未binder其他进程的线程,将当前线程最后一行调用栈信息作为REASON。
10.根据权利要求6-9任一所述的方法,其特征在于,在所述查询与所述无响应参数分别相同的已有无响应日志步骤之后,所述方法还包括:
当未查询到与所述无响应参数分别相同的已有无响应日志时,将当前无响应日志添加到无响应日志队列中。
CN201710210070.3A 2017-03-31 2017-03-31 一种无响应日志解析方法及终端 Withdrawn CN106878093A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710210070.3A CN106878093A (zh) 2017-03-31 2017-03-31 一种无响应日志解析方法及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710210070.3A CN106878093A (zh) 2017-03-31 2017-03-31 一种无响应日志解析方法及终端

Publications (1)

Publication Number Publication Date
CN106878093A true CN106878093A (zh) 2017-06-20

Family

ID=59160516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710210070.3A Withdrawn CN106878093A (zh) 2017-03-31 2017-03-31 一种无响应日志解析方法及终端

Country Status (1)

Country Link
CN (1) CN106878093A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590057A (zh) * 2017-09-28 2018-01-16 努比亚技术有限公司 冻屏监测与解决方法、移动终端及计算机可读存储介质
CN108062257A (zh) * 2017-12-28 2018-05-22 北京奇虎科技有限公司 一种处理堆栈信息的方法及***
CN109359026A (zh) * 2018-08-15 2019-02-19 中国平安人寿保险股份有限公司 日志上报方法、装置、电子设备及计算机可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393347B1 (en) * 2001-06-20 2002-05-21 Brunswick Corporation Data recording method for a marine propulsion device
CN101043375A (zh) * 2007-03-15 2007-09-26 华为技术有限公司 分布式***日志收集方法及***
CN101399658A (zh) * 2007-09-24 2009-04-01 北京启明星辰信息技术有限公司 一种安全日志分析方法及***
CN101605028A (zh) * 2009-02-17 2009-12-16 北京安天电子设备有限公司 一种日志记录合并方法和***
CN104270275A (zh) * 2014-10-14 2015-01-07 步步高教育电子有限公司 一种异常原因的辅助分析方法、服务器以及智能设备
CN105515836A (zh) * 2015-11-27 2016-04-20 小米科技有限责任公司 日志处理方法、装置及服务器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6393347B1 (en) * 2001-06-20 2002-05-21 Brunswick Corporation Data recording method for a marine propulsion device
CN101043375A (zh) * 2007-03-15 2007-09-26 华为技术有限公司 分布式***日志收集方法及***
CN101399658A (zh) * 2007-09-24 2009-04-01 北京启明星辰信息技术有限公司 一种安全日志分析方法及***
CN101605028A (zh) * 2009-02-17 2009-12-16 北京安天电子设备有限公司 一种日志记录合并方法和***
CN104270275A (zh) * 2014-10-14 2015-01-07 步步高教育电子有限公司 一种异常原因的辅助分析方法、服务器以及智能设备
CN105515836A (zh) * 2015-11-27 2016-04-20 小米科技有限责任公司 日志处理方法、装置及服务器

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107590057A (zh) * 2017-09-28 2018-01-16 努比亚技术有限公司 冻屏监测与解决方法、移动终端及计算机可读存储介质
CN107590057B (zh) * 2017-09-28 2021-06-15 努比亚技术有限公司 冻屏监测与解决方法、移动终端及计算机可读存储介质
CN108062257A (zh) * 2017-12-28 2018-05-22 北京奇虎科技有限公司 一种处理堆栈信息的方法及***
CN109359026A (zh) * 2018-08-15 2019-02-19 中国平安人寿保险股份有限公司 日志上报方法、装置、电子设备及计算机可读存储介质

Similar Documents

Publication Publication Date Title
CN105094613B (zh) 终端控制装置及方法
CN107241212A (zh) 一种日志处理方法及装置、设备
CN104917896A (zh) 一种推送数据的方法和终端设备
CN106911806A (zh) 一种推送消息的方法、终端、服务器及***
CN105262819B (zh) 一种移动终端及其实现推送的方法
CN105208082B (zh) 一种指导用户使用终端的方法及装置、终端
CN106250268B (zh) 文本内容恢复装置及方法
CN104679890B (zh) 图片推送方法及装置
CN104809221A (zh) 音乐信息的推荐方法及装置
CN105303398A (zh) 一种信息显示方法和***
CN105511715A (zh) 一种利用无边框触屏启动程序助手的方法及装置
CN106126065A (zh) 一种移动终端及其双屏信息显示方法
CN104915215A (zh) 一种图标推荐装置及方法
CN107066290A (zh) 一种根据关联策略启动应用的方法和装置
CN106550124A (zh) 一种应用预装方法及终端
CN109033263A (zh) 一种应用推荐方法及终端
CN106776270A (zh) 一种代码检测方法、装置及终端
CN106528576A (zh) 页面搜索方法、终端及***
CN106453585A (zh) 一种资讯的推送方法及资讯推送适配器
CN106598538A (zh) 指令集合更新方法及***
CN106991014A (zh) 一种处理用户输入事件的方法、装置及移动终端
CN106547434A (zh) 一种终端计算器的实现方法及终端
CN106878093A (zh) 一种无响应日志解析方法及终端
CN104898927B (zh) 信息搜索的方法及装置
CN107071161A (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20170620