CN106201756A - 日志获取装置、移动终端及方法 - Google Patents

日志获取装置、移动终端及方法 Download PDF

Info

Publication number
CN106201756A
CN106201756A CN201610546367.2A CN201610546367A CN106201756A CN 106201756 A CN106201756 A CN 106201756A CN 201610546367 A CN201610546367 A CN 201610546367A CN 106201756 A CN106201756 A CN 106201756A
Authority
CN
China
Prior art keywords
daily record
mobile terminal
exception
log
anomalous event
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.)
Granted
Application number
CN201610546367.2A
Other languages
English (en)
Other versions
CN106201756B (zh
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 CN201610546367.2A priority Critical patent/CN106201756B/zh
Publication of CN106201756A publication Critical patent/CN106201756A/zh
Application granted granted Critical
Publication of CN106201756B publication Critical patent/CN106201756B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W24/00Supervisory, monitoring or testing arrangements
    • H04W24/04Arrangements for maintaining operational condition

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种日志获取方法,包括:侦测移动终端是否发生异常事件;若所述移动终端发生异常事件,则确定所述异常事件的异常类型,并控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志;将获取到的所述日志进行压缩得到压缩包,将所述压缩包存储至指定文件;将所述日志对应的所述压缩包上传至服务器,供开发人员从所述服务器下载所述日志。本发明还公开了一种日志获取装置及移动终端。本发明移动终端在发生异常事件时,能够及时获取异常事件对应的日志并上传至服务器,方便开发人员从服务器下载日志进行分析,提高了日志获取的可靠性及有效性。

Description

日志获取装置、移动终端及方法
技术领域
本发明涉及移动终端设备技术领域,尤其涉及一种日志获取装置、移动终端及方法。
背景技术
由于移动终端是在用户手上,当移动终端发生异常事件时,手持移动终端的用户反馈问题给开发人员,从用户反馈问题到开发人员联系用户获取移动终端的日志(即Log)进行分析,中间可能已经过去了很长时间。由于Logger日志系统缓存的Log大小是有限的,移动终端会不断的抓取日志,并且每隔一段时间新产生的Log会替换一段时间之前的旧的Log。而当开发人员联系用户时异常事件对应的Log可能已经被替换了,被替换的Log已经无法复现,这时抓取到的当前Log可能已经没有当时出现异常事件的记录了,从而导致不能准确获取异常事件对应的Log,大大提高了开发人员解决问题的难度。
发明内容
本发明的主要目的在于提供一种日志获取装置、移动终端及方法,旨在提高日志获取的可靠性及有效性。
为实现上述目的,本发明提供了一种日志获取装置,包括:
侦测模块,用于侦测移动终端是否发生异常事件;
获取模块,用于若所述移动终端发生异常事件,则确定所述异常事件的异常类型,并控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志;
存储模块,用于将获取到的所述日志进行压缩得到压缩包,将所述压缩包存储至指定文件;
上传模块,用于将所述日志对应的所述压缩包上传至服务器。
可选地,所述异常事件的异常类型包括应用程序无响应异常、程序崩溃异常、死机异常及重启异常,所述获取模块还包括:
第一获取单元,用于当所述异常事件的异常类型为应用程序无响应异常或程序崩溃异常时,通过所述移动终端预置的ActivityManagerService发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述应用程序无响应异常或程序崩溃异常对应的日志;
当所述异常事件的异常类型为死机异常或重启异常时,通过所述移动终端预置的BootReceiver发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述死机异常或重启异常对应的日志;
第二获取单元,用于控制所述移动终端预置的守护进程根据所述广播获取子进程抓取到的所述异常类型对应的日志。
可选地,所述日志获取装置还包括:
抓取模块,用于控制所述守护进程的子进程循环抓取指定大小的日志进行存储,并将当前抓取到的指定大小的日志,替换上一次抓取到的指定大小的日志。
可选地,所述日志获取装置还包括:
接收模块,用于在将所述压缩包存储至指定文件后,接收所述守护进程发送的日志存储信息;
所述上传模块还用于,根据所述日志存储信息将所述日志对应的所述压缩包上传至服务器。
此外,为实现上述目的,本发明还提供了一种移动终端,所述移动终端包括上述结构的日志获取装置。
此外,为实现上述目的,本发明还提供了一种日志获取方法,包括:
侦测移动终端是否发生异常事件;
若所述移动终端发生异常事件,则确定所述异常事件的异常类型,并控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志;
将获取到的所述日志进行压缩得到压缩包,将所述压缩包存储至指定文件;
将所述日志对应的所述压缩包上传至服务器。
可选地,所述异常事件的异常类型包括应用程序无响应异常、程序崩溃异常、死机异常及重启异常,所述确定所述异常事件的异常类型之后包括:
当所述异常事件的异常类型为应用程序无响应异常或程序崩溃异常时,通过所述移动终端预置的ActivityManagerService发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述应用程序无响应异常或程序崩溃异常对应的日志;
当所述异常事件的异常类型为死机异常或重启异常时,通过所述移动终端预置的BootReceiver发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述死机异常或重启异常对应的日志;
控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志的步骤包括:
控制所述移动终端预置的守护进程根据所述广播获取子进程抓取到的所述异常类型对应的日志。
可选地,控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志包括:
控制所述守护进程获取子进程抓取到的所述异常类型对应预设大小的日志,或者,控制所述守护进程获取子进程抓取到的所述异常类型对应预设时间段内的日志。
可选地,所述控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志之前包括:
控制所述守护进程的子进程循环抓取指定大小的日志进行存储,并将当前抓取到的指定大小的日志,替换上一次抓取到的指定大小的日志。
可选地,所述将所述日志对应的所述压缩包上传至服务器之前包括:
在将所述压缩包存储至指定文件后,接收所述守护进程发送的日志存储信息;
将所述日志对应的所述压缩包上传至服务器的步骤包括:
根据所述日志存储信息将所述日志对应的所述压缩包上传至服务器。
本发明实施例移动终端在发生异常事件时,能够及时获取该异常事件对应的日志并上传至服务器,方便开发人员从服务器下载该异常事件对应的日志进行分析。相对于移动终端在发生异常事件时,移动终端的手持用户将异常事件反馈给开发人员后,当开发人员联系用户时异常事件对应的日志可能已经被替换,这时获取到的当前日志可能已经没有当时出现异常事件的记录了,从而不能保证准确获取异常事件对应的日志,提高了日志获取的可靠性及有效性。
附图说明
图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信装置示意图;
图3为本发明日志获取装置第一实施例的模块示意图;
图4为本发明日志获取装置第四实施例的模块示意图;
图5为本发明日志获取方法第一实施例的流程示意图;
图6为本发明日志获取方法第四实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例一个可选的移动终端的硬件结构示意图。
移动终端100可以包括无线通信单元110、接口单元120、用户输入单元130、输出单元140、存储器150、控制器160和电源单元170等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信装置或网络之间的无线电通信。例如,无线通信单元可以包括移动通信模块111、无线互联网模块112和短程通信模块113中的至少一个。
移动通信模块111将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块112支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括WLAN(无线LAN)(Wi-Fi)、Wibro(无线宽带)、Wimax(全球微波互联接入)、HSDPA(高速下行链路分组接入)等等。
短程通信模块113是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙TM、射频识别(RFID)、红外数据协会(IrDA)、超宽带(UWB)、紫蜂TM等等。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触发板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触发板以层的形式叠加在显示单元141上时,可以形成触发屏。
接口单元120用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(UIM)、客户识别模块(SIM)、通用客户识别模块(USIM)等等。另外,具有识别模块的装置(下面称为“识别装置”)可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元120可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。
另外,当移动终端100与外部底座连接时,接口单元120可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。
输出单元140可以包括显示单元141等,显示单元141可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元141可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元141可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。
同时,当显示单元141和触发板以层的形式彼此叠加以形成触发屏时,显示单元141可以用作输入装置和输出装置。显示单元141可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触发屏可用于检测触发输入压力以及触发输入位置和触发输入面积。
存储器150可以存储由控制器160执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器150可以存储关于当触发施加到触发屏时输出的各种方式的振动和音频信号的数据。
存储器150可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器150的存储功能的网络存储装置协作。
控制器160通常控制移动终端的总体操作。例如,控制器160执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器160可以包括用于再现(或回放)多媒体数据的多媒体模块161,多媒体模块161可以构造在控制器160内,或者可以构造为与控制器160分离。控制器160可以执行模式识别处理,以将在触发屏上执行的手写输入或者图片绘制输入识别为字符或图像。
电源单元170在控制器160的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器160中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器150中并且由控制器160执行。
至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。
如图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中所示的装置可以包括多个BSC275。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子装置(BTS)或者其它等效术语。在这样的情况下,术语“基站”可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为“蜂窝站”。或者,特定BS270的各分区可以被称为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在装置内操作的移动终端100。在图2中,示出了几个全球定位装置(GPS)卫星300。卫星300帮助定位多个移动终端100中的至少一个。
在图2中,描绘了多个卫星300,但是可以理解的是,可以利用任何数目的卫星获得有用的定位信息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端的位置的其它技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。
作为无线通信装置的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号发送到移动终端100。
基于上述移动终端硬件结构、通信装置的结构,提出本发明方法各个实施例。
如图3所示,示出了本发明一种日志获取装置第一实施例。该实施例的日志获取装置包括:
侦测模块10,用于侦测移动终端是否发生异常事件;
本实施例中,移动终端的类型可根据实际需要进行设置,例如,移动终端可为手机、平板电脑等,以下将以移动终端的系统为安卓(Android)系统为例进行详细说明。
移动终端的Android Log原理为:在程序开发过程中,Log是广泛使用的用来记录程序执行过程的机制。Android为移动终端空间的程序开发人员提供了轻量级的Logger日志系统,该日志系统是以驱动程序的形式实现在内核空间中的,产生的Log是以设备文件的形式存储在文件夹/dev/log/中,该日志系统提供了写Log到设备文件和从设备文件中读Log接口。Android在移动终端空间提供了使用Logger日志系统的Java接口和C/C++接口供开发人员使用,Log文件的写入是Android框架层代码通过JNI调用系统运行库,并通过系统运行库将Log写入设备文件中。Log文件的读取则是通过Android提供的Logcat工具进行的,Logcat工具根据开发人员输入的命令从设备文件中读取Log,并根据开发人员的要求将经过格式化的Log信息输出。
移动终端在获取Log之前,首先由侦测模块10侦测系统运行的过程中是否发生异常事件,该异常事件的异常类型包括应用程序无响应(Application Not Responding,ANR)异常、程序崩溃(即CRASH)异常、重启异常、死机异常等。
获取模块20,用于若所述移动终端发生异常事件,则确定所述异常事件的异常类型,并控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志;
移动终端中异常处理机制为:重启异常、死机异常等是移动终端的系统常见的异常类型,当发生重启异常或死机异常等异常类型时,移动终端中Android会对ro.bootmode,sys.android.reboot等系统属性进行设置,只要判断这些属性的值就可以判断Android是否发生了重启、死机。ANR异常、CRASH异常等是移动终端的应用程序中常见异常类型,由于ActivityManagerService是应用程序的核心管理模块,出现ANR异常或CRASH异常时,ActivityManagerService会对出现ANR异常或CRASH异常的应用进行相应的处理。即当发生异常事件时,获取模块20将获取异常事件对应的Log。
具体地,本实施例中,移动终端可预先在init.rc中申明具有root用户(即超级用户)权限的守护进程,配置套接字socket接口,该守护进程可fork(即创建)子进程执行Logcat命令。
移动终端中守护进程的工作原理为:当移动终端中Android启动时init进程会读取并解析init.rc文件,从中获取服务列表,将服务列表中的服务子进程依次启动起来。由于这些进程是native进程,其oom_adj值是-17,因此不会被Android的内存管理策略杀死,将永远运行在系统中,因此又称作守护进程。这些守护进程一般是作为功能提供者供上层使用。
守护进程通过Linux中的fork函数创建子进程,具体地,fork函数的作用是从当前程序运行的位置创建一个新的进程,新的进程与原来的进程几乎一样,作为原来进程的子进程存在。该子进程将获得父进程的数据空间、堆、栈等资源的副本,从创建子进程的位置开始执行。fork出子进程之后,可以让子进程做一些事情,而让父进程继续做原来的事情。
移动终端在侦测到发生异常事件时,由获取模块20确定异常事件的异常类型,即确定当前的异常事件是ANR异常、CRASH异常、死机异常还是重启异常,并根据异常类型发送广播至预置的APP层,APP层根据广播通过sockets通知守护进程,守护进程接收到通知后获取子进程所抓取得到的日志文件中对所确定的异常类型对应的Log。
可选地,控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志的步骤包括:控制所述守护进程获取子进程抓取到的所述异常类型对应预设大小的日志,或者,控制所述守护进程获取子进程抓取到的所述异常类型对应预设时间段内的日志。该预设大小及预设时间段可根据具体情况而灵活设置。
存储模块30,用于将获取到的所述日志进行压缩得到压缩包,将所述压缩包存储至指定文件;
本实施例中,存储模块30将获取到异常类型对应的Log进行压缩,并将得到的压缩包存储至移动终端本地指定文件中,以便处理异常事件的APP将Log的压缩包上传至服务器供开发人员获取并进行分析。
以下进行举例说明,当移动终端发生异常事件时,移动终端内预置的APP确定出该异常事件的异常类型为CRASH异常,发送携带出现CRASH异常的相关信息广播至APP层,APP层通知守护进程,让守护进程获取CRASH异常对应的Log。守护进程接收到出现CRASH异常的信息后,从子进程所抓取的Log文件中获取10M大小的CRASH异常对应的Log,将获取到的Log打包并进行压缩,得到的压缩包存储至指定文件中。使得通过设置具有root权限的守护进程,在确定异常事件的异常类型后,通过该守护进程获取子进程所抓取的Log文件中异常类型对应的Log,并将抓取到的Log压缩后输出到指定文件中,提高了Log获取的便捷性及可靠性。
上传模块40,用于将所述日志对应的所述压缩包上传至服务器,供开发人员从所述服务器下载所述日志。
移动终端在得到异常事件对应的Log后,上传模块40将该Log对应的压缩包上传至服务器进行存储,需要对异常事件进行分析的开发人员可以从服务器上获取相应的Log进行分析。
以下进行举例说明,在一实施例中,移动终端预先设置有用于处理异常事件的APP,当移动终端发生ANR异常时,移动终端的系统中ActivityManagerService在出现ANR异常的位置,发送携带ANR异常的广播给移动终端处理异常事件的APP。APP根据广播中携带的异常类型获知是ANR异常,通过socket通知底层预置的守护进程提供ANR异常对应的Log。守护进程接收到消息后,获取子进程抓取到的Log文件中ANR异常相关的Log打包并进行压缩,将得到的压缩包存储至指定文件中,并通知上层APP,ANR异常对应的Log已经提供。上层APP接收到ANR异常对应的Log已提供的消息后,将指定文件中的Log压缩包发送至服务器,开发人员可以从服务器上获取到ANR异常的Log进行分析。
在另一实施例中,移动终端预先设置有用于处理异常事件的APP,当移动终端发生死机异常时,移动终端的系统中BootReceiver在出现死机异常的位置,发送携带死机异常的广播给移动终端处理异常事件的APP。APP根据广播中携带的异常类型获知是死机异常,通过socket通知底层预置的守护进程提供死机异常对应的Log。守护进程接收到消息后,获取子进程所抓取的Log文件中死机异常相关的Log打包并进行压缩,得到的压缩包存储至指定文件中,并通知上层APP,死机异常对应的Log已经提供。上层APP接收到死机异常对应的Log已提供的消息后,将指定文件中的Log压缩包发送至服务器,开发人员可以从服务器上获取到死机异常的Log进行分析。
上述两个实施例均解决了异常事件出现时间和开发人员分析异常事件时间存在延迟,由于异常事件出现场景无法复现,而导致无法准确获取异常事件对应的Log的问题。能够不遗漏移动终端上出现的异常事件,以及能够更加准确方便地获知移动终端上出现了什么问题,大大减小了开发人员分析问题的难度,使开发人员能够更加快速的分析解决问题,提供更加优质的系统给开发人员使用。
本发明实施例移动终端在发生异常事件时,能够及时获取该异常事件对应的Log并上传至服务器,方便开发人员从服务器下载该异常事件对应的Log进行分析。相对于移动终端在发生异常事件时,移动终端的手持用户将异常事件反馈给开发人员后,当开发人员联系用户时异常事件对应的Log可能已经被替换,这时获取到的当前Log可能已经没有当时出现异常事件的记录了,从而不能保证准确获取异常事件对应的Log,提高了Log获取的可靠性及有效性。
进一步地,基于上述日志获取装置第一实施例,提出了本发明日志获取装置第二实施例,本实施例与本发明日志获取装置第一实施例的区别是,本实施例中上述获取模块20包括:
第一获取单元,用于当所述异常事件的异常类型为应用程序无响应异常或程序崩溃异常时,通过所述移动终端预置的ActivityManagerService发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述应用程序无响应异常或程序崩溃异常对应的日志;
当所述异常事件的异常类型为死机异常或重启异常时,通过所述移动终端预置的BootReceiver发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述死机异常或重启异常对应的日志;
第二获取单元,用于控制所述移动终端预置的守护进程根据所述广播获取子进程抓取到的所述异常类型对应的日志。
本实施例中,上述移动终端在确定异常事件的异常类型后,发送单元可根据确定的异常类型发送对应的广播至预置的APP层,并由APP层通知守护进程,以便守护进程根据接收到的通知获取子进程所抓取的Log文件中异常类型对应的Log。
具体地,在一实施例中,当异常事件的异常类型为ANR异常或CRASH异常时,发送单元在移动终端预置的ActivityManagerService中发送携带异常类型的广播至移动终端预置的APP层。该广播中除了携带异常类型的信息之外,还可携带有应用的包名等信息。APP层根据该广播通过sockets通知守护进程获取ANR异常或CRASH异常对应的Log。
在另一实施例中,当异常事件的异常类型为死机异常或重启异常时,发送单元在移动终端预置的BootReceiver中发送携带异常类型的广播至预置的APP层。例如,在BootReceiver处理广播时根据系统属性ro.bootmode=panic、sys.android.reboot=1添加发送携带死机或重启异常数据的广播给预置的APP层。APP层根据该广播通过sockets通知守护进程获取死机异常或重启异常对应的Log。
本实施例移动终端在确定异常事件的异常类型后,可根据确定的异常类型发送对应的广播至APP层,由APP层通知守护进程对Log进行获取,使得守护进程可及时并准确地对异常类型对应的Log进行抓取。
进一步地,基于上述日志获取装置第一或第二实施例,提出了本发明日志获取装置第三实施例,本实施例与本发明日志获取装置第一或第二实施例的区别是,本实施例中上述日志获取装置还包括:抓取模块,用于控制所述守护进程的子进程循环抓取指定大小的日志进行存储,并将当前抓取到的指定大小的日志,替换上一次抓取到的指定大小的日志。
本实施例中,守护进程创建的子进程一直在后台运行,该子进程不断地抓取指定大小的Log进行存储。守护进程的子进程可包括多个子进程,每个子进程执行不同的抓取操作。由于移动终端的存储空间有限,因此抓取模块控制子进程在抓取Log进行存储的过程中,只能存储指定大小的Log,该指定大小的具体取值可根据具体情况而灵活设置,例如,可将指定大小设置为1KB。子进程持续运行,在一直循环抓取指定大小的Log,此时需要将当前抓取到的指定大小的Log,替换上一次抓取到的指定大小的Log,以对存储的Log进行更新,方便守护进程获取子进程抓取到的异常类型对应的Log。
本实施例通过守护进程的子进程循环抓取指定大小的Log进行存储,并不断更新存储的Log,使得守护进程能够准确获取子进程抓取到的异常类型对应的Log,提高了对Log进行获取的便捷性及可靠性。
进一步地,如图4所示,基于上述日志获取装置第一或第二实施例,提出了本发明日志获取装置第四实施例,本实施例与本发明日志获取装置第一或第二实施例的区别是,本实施例中上述日志获取装置还包括:
接收模块50,用于在将所述压缩包存储至指定文件后,接收所述守护进程发送的日志存储信息;
所述上传模块还用于,根据所述日志存储信息将所述日志对应的所述压缩包上传至服务器。
本实施例中,移动终端在将Log上传至服务器之前,可在守护进程对异常类型对应的日志进行获取,并将获取到的Log进行压缩得到压缩包,将压缩包存储至指定文件后,反馈Log存储信息,以告诉移动终端已经提供好Log的压缩包了。接收模块50在接收到Log存储信息后,可根据该Log存储信息将Log的压缩包上传至服务器,开发人员可从服务器上获取到异常类型对应的Log进行分析。提高了Log上传至服务器的及时性,能够不遗漏将移动终端上出现的异常事件的Log上传至服务器,使开发人员能够更加快速的分析解决问题。
需要说明的是,由于Log的压缩包已经存储至指定文件中,因此,移动终端可每隔预设时间,将指定文件中的未上传至服务器的压缩包上传至服务器。
对应地,提出本发明一种移动终端,该移动终端包括上述结构的日志获取装置,该日志获取装置的工作原理及实现方式可参照图3至图4及其对应的实施例,包含了其中的所有技术特征,在此不作赘述。该移动终端可为手机、平板电脑等。本发明移动终端实施例中,由于具有上述移动终端在发生异常事件时,能够及时获取该异常事件对应的Log并上传至服务器,方便开发人员从服务器下载该异常事件对应的Log进行分析。相对于移动终端在发生异常事件时,移动终端的手持用户将异常事件反馈给开发人员后,当开发人员联系用户时异常事件对应的Log可能已经被替换,这时获取到的当前Log可能已经没有当时出现异常事件的记录了,从而不能保证准确获取异常事件对应的Log,提高了Log获取的可靠性及有效性。
对应地,如图5所示,提出本发明一种日志获取方法第一实施例。本实施例日志获取方法与上述日志获取装置第一实施例对应,该实施例的日志获取方法包括:
步骤S10、侦测移动终端是否发生异常事件;
本实施例中,移动终端的类型可根据实际需要进行设置,例如,移动终端可为手机、平板电脑等,以下将以移动终端的系统为安卓(Android)系统为例进行详细说明。
移动终端的Android Log原理为:在程序开发过程中,Log是广泛使用的用来记录程序执行过程的机制。Android为移动终端空间的程序开发人员提供了轻量级的Logger日志系统,该日志系统是以驱动程序的形式实现在内核空间中的,产生的Log是以设备文件的形式存储在文件夹/dev/log/中,该日志系统提供了写Log到设备文件和从设备文件中读Log接口。Android在移动终端空间提供了使用Logger日志系统的Java接口和C/C++接口供开发人员使用,Log文件的写入是Android框架层代码通过JNI调用系统运行库,并通过系统运行库将Log写入设备文件中。Log文件的读取则是通过Android提供的Logcat工具进行的,Logcat工具根据开发人员输入的命令从设备文件中读取Log,并根据开发人员的要求将经过格式化的Log信息输出。
移动终端在获取Log之前,首先侦测系统运行的过程中是否发生异常事件,该异常事件的异常类型包括应用程序无响应(Application Not Responding,ANR)异常、程序崩溃(即CRASH)异常、重启异常、死机异常等。
步骤S20、若所述移动终端发生异常事件,则确定所述异常事件的异常类型,并控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志;
移动终端中异常处理机制为:重启异常、死机异常等是移动终端的系统常见的异常类型,当发生重启异常或死机异常等异常类型时,移动终端中Android会对ro.bootmode,sys.android.reboot等系统属性进行设置,只要判断这些属性的值就可以判断Android是否发生了重启、死机。ANR异常、CRASH异常等是移动终端的应用程序中常见异常类型,由于ActivityManagerService是应用程序的核心管理模块,出现ANR异常或CRASH异常时,ActivityManagerService会对出现ANR异常或CRASH异常的应用进行相应的处理。即当发生异常事件时,移动终端将获取异常事件对应的Log。
具体地,本实施例中,移动终端可预先在init.rc中申明具有root用户(即超级用户)权限的守护进程,配置套接字socket接口,该守护进程可fork(即创建)子进程执行Logcat命令。
移动终端中守护进程的工作原理为:当移动终端中Android启动时init进程会读取并解析init.rc文件,从中获取服务列表,将服务列表中的服务子进程依次启动起来。由于这些进程是native进程,其oom_adj值是-17,因此不会被Android的内存管理策略杀死,将永远运行在系统中,因此又称作守护进程。这些守护进程一般是作为功能提供者供上层使用。
守护进程通过Linux中的fork函数创建子进程,具体地,fork函数的作用是从当前程序运行的位置创建一个新的进程,新的进程与原来的进程几乎一样,作为原来进程的子进程存在。该子进程将获得父进程的数据空间、堆、栈等资源的副本,从创建子进程的位置开始执行。fork出子进程之后,可以让子进程做一些事情,而让父进程继续做原来的事情。
移动终端在侦测到发生异常事件时,确定异常事件的异常类型,即确定当前的异常事件是ANR异常、CRASH异常、死机异常还是重启异常,并根据异常类型发送广播至预置的APP层,APP层根据广播通过sockets通知守护进程,守护进程接收到通知后获取子进程所抓取得到的日志文件中对所确定的异常类型对应的Log。
可选地,控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志的步骤包括:控制所述守护进程获取子进程抓取到的所述异常类型对应预设大小的日志,或者,控制所述守护进程获取子进程抓取到的所述异常类型对应预设时间段内的日志。该预设大小及预设时间段可根据具体情况而灵活设置。
步骤S30、将获取到的所述日志进行压缩得到压缩包,将所述压缩包存储至指定文件;
本实施例中,移动终端将获取到异常类型对应的Log进行压缩,并将得到的压缩包存储至移动终端本地指定文件中,以便处理异常事件的APP将Log的压缩包上传至服务器供开发人员获取并进行分析。
以下进行举例说明,当移动终端发生异常事件时,移动终端内预置的APP确定出该异常事件的异常类型为CRASH异常,发送携带出现CRASH异常的相关信息广播至APP层,APP层通知守护进程,让守护进程获取CRASH异常对应的Log。守护进程接收到出现CRASH异常的信息后,从子进程所抓取的Log文件中获取10M大小的CRASH异常对应的Log,将获取到的Log打包并进行压缩,得到的压缩包存储至指定文件中。使得通过设置具有root权限的守护进程,在确定异常事件的异常类型后,通过该守护进程获取子进程所抓取的Log文件中异常类型对应的Log,并将抓取到的Log压缩后输出到指定文件中,提高了Log获取的便捷性及可靠性。
步骤S40、将所述日志对应的所述压缩包上传至服务器,供开发人员从所述服务器下载所述日志。
移动终端在得到异常事件对应的Log后,将该Log对应的压缩包上传至服务器进行存储,需要对异常事件进行分析的开发人员可以从服务器上获取相应的Log进行分析。
以下进行举例说明,在一实施例中,移动终端预先设置有用于处理异常事件的APP,当移动终端发生ANR异常时,移动终端的系统中ActivityManagerService在出现ANR异常的位置,发送携带ANR异常的广播给移动终端处理异常事件的APP。APP根据广播中携带的异常类型获知是ANR异常,通过socket通知底层预置的守护进程提供ANR异常对应的Log。守护进程接收到消息后,获取子进程抓取到的Log文件中ANR异常相关的Log打包并进行压缩,将得到的压缩包存储至指定文件中,并通知上层APP,ANR异常对应的Log已经提供。上层APP接收到ANR异常对应的Log已提供的消息后,将指定文件中的Log压缩包发送至服务器,开发人员可以从服务器上获取到ANR异常的Log进行分析。
在另一实施例中,移动终端预先设置有用于处理异常事件的APP,当移动终端发生死机异常时,移动终端的系统中BootReceiver在出现死机异常的位置,发送携带死机异常的广播给移动终端处理异常事件的APP。APP根据广播中携带的异常类型获知是死机异常,通过socket通知底层预置的守护进程提供死机异常对应的Log。守护进程接收到消息后,获取子进程所抓取的Log文件中死机异常相关的Log打包并进行压缩,得到的压缩包存储至指定文件中,并通知上层APP,死机异常对应的Log已经提供。上层APP接收到死机异常对应的Log已提供的消息后,将指定文件中的Log压缩包发送至服务器,开发人员可以从服务器上获取到死机异常的Log进行分析。
上述两个实施例均解决了异常事件出现时间和开发人员分析异常事件时间存在延迟,由于异常事件出现场景无法复现,而导致无法准确获取异常事件对应的Log的问题。能够不遗漏移动终端上出现的异常事件,以及能够更加准确方便地获知移动终端上出现了什么问题,大大减小了开发人员分析问题的难度,使开发人员能够更加快速的分析解决问题,提供更加优质的系统给开发人员使用。
本发明实施例移动终端在发生异常事件时,能够及时获取该异常事件对应的Log并上传至服务器,方便开发人员从服务器下载该异常事件对应的Log进行分析。相对于移动终端在发生异常事件时,移动终端的手持用户将异常事件反馈给开发人员后,当开发人员联系用户时异常事件对应的Log可能已经被替换,这时获取到的当前Log可能已经没有当时出现异常事件的记录了,从而不能保证准确获取异常事件对应的Log,提高了Log获取的可靠性及有效性。
进一步地,基于上述日志获取方法第一实施例,提出了本发明日志获取方法第二实施例,本实施例日志获取方法与上述日志获取装置第二实施例对应。本实施例与本发明日志获取方法第一实施例的区别是,本实施例中上述确定所述异常事件的异常类型的步骤之后包括:
当所述异常事件的异常类型为应用程序无响应异常或程序崩溃异常时,通过所述移动终端预置的ActivityManagerService发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述应用程序无响应异常或程序崩溃异常对应的日志;
当所述异常事件的异常类型为死机异常或重启异常时,通过所述移动终端预置的BootReceiver发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述死机异常或重启异常对应的日志;
控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志的步骤包括:控制所述移动终端预置的守护进程根据所述广播获取子进程抓取到的所述异常类型对应的日志。
本实施例中,上述移动终端在确定异常事件的异常类型后,可根据确定的异常类型发送对应的广播至预置的APP层,并由APP层通知守护进程,以便守护进程根据接收到的通知获取子进程所抓取的Log文件中异常类型对应的Log。
具体地,在一实施例中,当异常事件的异常类型为ANR异常或CRASH异常时,在移动终端预置的ActivityManagerService中发送携带异常类型的广播至移动终端预置的APP层。该广播中除了携带异常类型的信息之外,还可携带有应用的包名等信息。APP层根据该广播通过sockets通知守护进程获取ANR异常或CRASH异常对应的Log。
在另一实施例中,当异常事件的异常类型为死机异常或重启异常时,在移动终端预置的BootReceiver中发送携带异常类型的广播至预置的APP层。例如,在BootReceiver处理广播时根据系统属性ro.bootmode=panic、sys.android.reboot=1添加发送携带死机或重启异常数据的广播给预置的APP层。APP层根据该广播通过sockets通知守护进程获取死机异常或重启异常对应的Log。
本实施例移动终端在确定异常事件的异常类型后,可根据确定的异常类型发送对应的广播至APP层,由APP层通知守护进程对Log进行获取,使得守护进程可及时并准确地对异常类型对应的Log进行抓取。
进一步地,基于上述日志获取方法第一或第二实施例,提出了本发明日志获取方法第三实施例,本实施例日志获取方法与上述日志获取装置第三实施例对应。本实施例与本发明日志获取方法第一或第二实施例的区别是,本实施例中上述步骤S20之前包括:控制所述守护进程的子进程循环抓取指定大小的日志进行存储,并将当前抓取到的指定大小的日志,替换上一次抓取到的指定大小的日志。
本实施例中,守护进程创建的子进程一直在后台运行,该子进程不断地抓取指定大小的Log进行存储。守护进程的子进程可包括多个子进程,每个子进程执行不同的抓取操作。由于移动终端的存储空间有限,因此子进程在抓取Log进行存储的过程中,只能存储指定大小的Log,该指定大小的具体取值可根据具体情况而灵活设置,例如,可将指定大小设置为1KB。子进程持续运行,在一直循环抓取指定大小的Log,此时需要将当前抓取到的指定大小的Log,替换上一次抓取到的指定大小的Log,以对存储的Log进行更新,方便守护进程获取子进程抓取到的异常类型对应的Log。
本实施例通过守护进程的子进程循环抓取指定大小的Log进行存储,并不断更新存储的Log,使得守护进程能够准确获取子进程抓取到的异常类型对应的Log,提高了对Log进行获取的便捷性及可靠性。
进一步地,如图6所示,基于上述日志获取方法第一或第二实施例,提出了本发明日志获取方法第四实施例,本实施例日志获取方法与上述日志获取装置第四实施例对应。本实施例与本发明日志获取方法第一或第二实施例的区别是,本实施例中上述步骤S30之前包括:
步骤S50、在将所述压缩包存储至指定文件后,接收所述守护进程发送的日志存储信息;
将所述日志对应的所述压缩包上传至服务器的步骤包括:步骤S41、根据所述日志存储信息将所述日志对应的所述压缩包上传至服务器。
本实施例中,移动终端在将Log上传至服务器之前,可在守护进程对异常类型对应的日志进行获取,并将获取到的Log进行压缩得到压缩包,将压缩包存储至指定文件后,反馈Log存储信息,以告诉移动终端已经提供好Log的压缩包了。移动终端可根据该Log存储信息将Log的压缩包上传至服务器,开发人员可从服务器上获取到异常类型对应的Log进行分析。提高了Log上传至服务器的及时性,能够不遗漏将移动终端上出现的异常事件的Log上传至服务器,使开发人员能够更加快速的分析解决问题。
需要说明的是,由于Log的压缩包已经存储至指定文件中,因此,移动终端可每隔预设时间,将指定文件中的未上传至服务器的压缩包上传至服务器。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种日志获取装置,其特征在于,所述日志获取装置包括:
侦测模块,用于侦测移动终端是否发生异常事件;
获取模块,用于若所述移动终端发生异常事件,则确定所述异常事件的异常类型,并控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志;
存储模块,用于将获取到的所述日志进行压缩得到压缩包,将所述压缩包存储至指定文件;
上传模块,用于将所述日志对应的所述压缩包上传至服务器。
2.如权利要求1所述的日志获取装置,其特征在于,所述异常事件的异常类型包括应用程序无响应异常、程序崩溃异常、死机异常及重启异常,所述获取模块还包括:
第一获取单元,用于当所述异常事件的异常类型为应用程序无响应异常或程序崩溃异常时,通过所述移动终端预置的ActivityManagerService发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述应用程序无响应异常或程序崩溃异常对应的日志;
当所述异常事件的异常类型为死机异常或重启异常时,通过所述移动终端预置的BootReceiver发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述死机异常或重启异常对应的日志;
第二获取单元,用于控制所述移动终端预置的守护进程根据所述广播获取子进程抓取到的所述异常类型对应的日志。
3.如权利要求1或2所述的日志获取装置,其特征在于,所述日志获取装置还包括:
抓取模块,用于控制所述守护进程的子进程循环抓取指定大小的日志进行存储,并将当前抓取到的指定大小的日志,替换上一次抓取到的指定大小的日志。
4.如权利要求3所述的日志获取装置,其特征在于,所述日志获取装置还包括:
接收模块,用于在将所述压缩包存储至指定文件后,接收所述守护进程发送的日志存储信息;
所述上传模块还用于,根据所述日志存储信息将所述日志对应的所述压缩包上传至服务器。
5.一种移动终端,其特征在于,所述移动终端包括如权利要求1-4中任一项所述的日志获取装置。
6.一种日志获取方法,其特征在于,所述日志获取方法包括以下步骤:
侦测移动终端是否发生异常事件;
若所述移动终端发生异常事件,则确定所述异常事件的异常类型,并控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志;
将获取到的所述日志进行压缩得到压缩包,将所述压缩包存储至指定文件;
将所述日志对应的所述压缩包上传至服务器。
7.如权利要求6所述的日志获取方法,其特征在于,所述异常事件的异常类型包括应用程序无响应异常、程序崩溃异常、死机异常及重启异常,所述确定所述异常事件的异常类型之后包括:
当所述异常事件的异常类型为应用程序无响应异常或程序崩溃异常时,通过所述移动终端预置的ActivityManagerService发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述应用程序无响应异常或程序崩溃异常对应的日志;
当所述异常事件的异常类型为死机异常或重启异常时,通过所述移动终端预置的BootReceiver发送携带异常类型的广播至预置的APP层,供所述APP层根据所述广播通过sockets通知所述守护进程获取所述死机异常或重启异常对应的日志;
控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志的步骤包括:
控制所述移动终端预置的守护进程根据所述广播获取子进程抓取到的所述异常类型对应的日志。
8.如权利要求6所述的日志获取方法,其特征在于,控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志包括:
控制所述守护进程获取子进程抓取到的所述异常类型对应预设大小的日志,或者,控制所述守护进程获取子进程抓取到的所述异常类型对应预设时间段内的日志。
9.如权利要求6-8任一项所述的日志获取方法,其特征在于,所述控制所述移动终端预置的守护进程获取子进程抓取到的所述异常类型对应的日志之前包括:
控制所述守护进程的子进程循环抓取指定大小的日志进行存储,并将当前抓取到的指定大小的日志,替换上一次抓取到的指定大小的日志。
10.如权利要求6-8所述的日志获取方法,其特征在于,将所述日志对应的所述压缩包上传至服务器之前包括:
在将所述压缩包存储至指定文件后,接收所述守护进程发送的日志存储信息;
将所述日志对应的所述压缩包上传至服务器的步骤包括:
根据所述日志存储信息将所述日志对应的的所述压缩包上传至服务器。
CN201610546367.2A 2016-07-12 2016-07-12 日志获取装置、移动终端及方法 Active CN106201756B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610546367.2A CN106201756B (zh) 2016-07-12 2016-07-12 日志获取装置、移动终端及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610546367.2A CN106201756B (zh) 2016-07-12 2016-07-12 日志获取装置、移动终端及方法

Publications (2)

Publication Number Publication Date
CN106201756A true CN106201756A (zh) 2016-12-07
CN106201756B CN106201756B (zh) 2019-09-06

Family

ID=57477289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610546367.2A Active CN106201756B (zh) 2016-07-12 2016-07-12 日志获取装置、移动终端及方法

Country Status (1)

Country Link
CN (1) CN106201756B (zh)

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106598811A (zh) * 2016-12-19 2017-04-26 深圳天珑无线科技有限公司 异常事件处理方法、装置及终端
CN106776219A (zh) * 2016-12-14 2017-05-31 郑州云海信息技术有限公司 一种服务器整机烧机的检测方法
CN107273263A (zh) * 2017-05-26 2017-10-20 努比亚技术有限公司 一种异常运行的分析方法、应用终端及监控服务器
CN107276789A (zh) * 2017-05-19 2017-10-20 努比亚技术有限公司 日志上传方法、装置及计算机可读存储介质
CN107357704A (zh) * 2017-06-27 2017-11-17 努比亚技术有限公司 一种应用程序检测方法、终端及计算机可读存储介质
CN107402835A (zh) * 2017-07-25 2017-11-28 广东欧珀移动通信有限公司 应用程序的异常处理方法、装置及存储介质和移动终端
CN107463485A (zh) * 2017-06-26 2017-12-12 北京五八信息技术有限公司 基于方法栈的日志获取方法、装置和终端
CN107480026A (zh) * 2017-06-22 2017-12-15 深圳天珑无线科技有限公司 终端崩溃处理方法、终端以及具有存储功能的装置
CN107908802A (zh) * 2017-12-26 2018-04-13 广东欧珀移动通信有限公司 日志处理方法、装置、终端设备及存储介质
CN108040159A (zh) * 2017-11-30 2018-05-15 努比亚技术有限公司 基于硬件驱动的重启定位方法、移动终端及可读存储介质
CN108197013A (zh) * 2017-12-26 2018-06-22 广东欧珀移动通信有限公司 日志处理方法、装置、终端设备及存储介质
CN108280011A (zh) * 2018-01-16 2018-07-13 北京小米移动软件有限公司 日志抓取方法及装置
CN108563719A (zh) * 2018-04-02 2018-09-21 郑州云海信息技术有限公司 一种用于异常日志转储的lzo压缩方法及系统
CN109376056A (zh) * 2018-10-17 2019-02-22 Oppo广东移动通信有限公司 异常日志分析方法、装置、存储介质、移动终端及服务器
CN109391496A (zh) * 2017-08-10 2019-02-26 大唐移动通信设备有限公司 告警日志上传方法及装置
CN110011970A (zh) * 2019-02-28 2019-07-12 努比亚技术有限公司 一种日志获取方法、终端及计算机可读存储介质
CN110333964A (zh) * 2019-07-01 2019-10-15 Oppo广东移动通信有限公司 异常日志处理方法及装置、电子设备、存储介质
CN110413497A (zh) * 2019-07-30 2019-11-05 Oppo广东移动通信有限公司 异常监控方法、装置、终端设备及计算机可读存储介质
CN110450189A (zh) * 2019-04-30 2019-11-15 北京云迹科技有限公司 用于机器人的异常处理方法及装置
CN110543375A (zh) * 2019-07-22 2019-12-06 深圳壹账通智能科技有限公司 赔付事务异常处理方法、装置、计算机设备和存储介质
CN111078523A (zh) * 2019-12-25 2020-04-28 惠州Tcl移动通信有限公司 日志获取方法、装置、存储介质及电子设备
CN111400138A (zh) * 2020-03-17 2020-07-10 中国建设银行股份有限公司 基于双层守护机制的客户端监控方法、装置及系统
CN112087490A (zh) * 2020-08-07 2020-12-15 上海绊糖信息科技有限公司 一种高性能移动端应用软件日志收集系统
CN112364284A (zh) * 2020-11-23 2021-02-12 北京八分量信息科技有限公司 基于上下文进行异常侦测的方法、装置及相关产品
CN112417245A (zh) * 2020-11-18 2021-02-26 掌阅科技股份有限公司 应用日志的抓取方法、计算设备及计算机存储介质
CN112507265A (zh) * 2020-11-23 2021-03-16 北京八分量信息科技有限公司 基于树结构进行异常侦测的方法、装置及相关产品

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102810073A (zh) * 2012-06-13 2012-12-05 天津大学 数据后台实时监控处理方法
CN103377095A (zh) * 2012-04-24 2013-10-30 华为技术有限公司 一种运行日志的保存方法和设备
CN103488558A (zh) * 2013-09-17 2014-01-01 北京思特奇信息技术股份有限公司 一种基于log4j日志框架自动采集应用异常的装置及方法
CN104156275A (zh) * 2014-06-30 2014-11-19 青岛海信移动通信技术股份有限公司 一种安卓Android平台异常处理的方法和装置
CN104199766A (zh) * 2014-08-25 2014-12-10 广东欧珀移动通信有限公司 一种异常运行的监控方法和装置
CN104216811A (zh) * 2013-05-30 2014-12-17 腾讯科技(深圳)有限公司 应用程序的日志收集方法和系统
CN104424094A (zh) * 2013-08-26 2015-03-18 腾讯科技(深圳)有限公司 一种异常信息获取方法、装置及智能终端设备
CN104537074A (zh) * 2014-12-31 2015-04-22 天津南大通用数据技术股份有限公司 一种提高数据库系统写日志性能的方法
CN104636240A (zh) * 2014-12-31 2015-05-20 广东欧珀移动通信有限公司 一种信息报表的获取方法及终端
CN104809030A (zh) * 2015-05-19 2015-07-29 上海斐讯数据通信技术有限公司 一种基于Android的异常处理系统及处理方法
CN104899130A (zh) * 2015-05-22 2015-09-09 深圳市酷开网络科技有限公司 一种应用程序管理方法及系统
CN105205142A (zh) * 2015-09-18 2015-12-30 广东欧珀移动通信有限公司 保存日志文件的方法、装置和移动终端
CN105204979A (zh) * 2015-07-28 2015-12-30 维沃移动通信有限公司 安卓日志的记录方法及移动终端
CN105430681A (zh) * 2015-11-04 2016-03-23 努比亚技术有限公司 异常自动上传及恢复方法、装置及移动终端

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103377095A (zh) * 2012-04-24 2013-10-30 华为技术有限公司 一种运行日志的保存方法和设备
CN102810073A (zh) * 2012-06-13 2012-12-05 天津大学 数据后台实时监控处理方法
CN104216811A (zh) * 2013-05-30 2014-12-17 腾讯科技(深圳)有限公司 应用程序的日志收集方法和系统
CN104424094A (zh) * 2013-08-26 2015-03-18 腾讯科技(深圳)有限公司 一种异常信息获取方法、装置及智能终端设备
CN103488558A (zh) * 2013-09-17 2014-01-01 北京思特奇信息技术股份有限公司 一种基于log4j日志框架自动采集应用异常的装置及方法
CN104156275A (zh) * 2014-06-30 2014-11-19 青岛海信移动通信技术股份有限公司 一种安卓Android平台异常处理的方法和装置
CN104199766A (zh) * 2014-08-25 2014-12-10 广东欧珀移动通信有限公司 一种异常运行的监控方法和装置
CN104537074A (zh) * 2014-12-31 2015-04-22 天津南大通用数据技术股份有限公司 一种提高数据库系统写日志性能的方法
CN104636240A (zh) * 2014-12-31 2015-05-20 广东欧珀移动通信有限公司 一种信息报表的获取方法及终端
CN104809030A (zh) * 2015-05-19 2015-07-29 上海斐讯数据通信技术有限公司 一种基于Android的异常处理系统及处理方法
CN104899130A (zh) * 2015-05-22 2015-09-09 深圳市酷开网络科技有限公司 一种应用程序管理方法及系统
CN105204979A (zh) * 2015-07-28 2015-12-30 维沃移动通信有限公司 安卓日志的记录方法及移动终端
CN105205142A (zh) * 2015-09-18 2015-12-30 广东欧珀移动通信有限公司 保存日志文件的方法、装置和移动终端
CN105430681A (zh) * 2015-11-04 2016-03-23 努比亚技术有限公司 异常自动上传及恢复方法、装置及移动终端

Cited By (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776219A (zh) * 2016-12-14 2017-05-31 郑州云海信息技术有限公司 一种服务器整机烧机的检测方法
CN106776219B (zh) * 2016-12-14 2020-02-21 郑州云海信息技术有限公司 一种服务器整机烧机的检测方法
CN106598811B (zh) * 2016-12-19 2019-06-25 四川苏格通讯技术有限公司 异常事件处理方法、装置及终端
CN106598811A (zh) * 2016-12-19 2017-04-26 深圳天珑无线科技有限公司 异常事件处理方法、装置及终端
CN107276789A (zh) * 2017-05-19 2017-10-20 努比亚技术有限公司 日志上传方法、装置及计算机可读存储介质
CN107276789B (zh) * 2017-05-19 2020-12-01 太仓鸿羽智能科技有限公司 日志上传方法、装置及计算机可读存储介质
CN107273263A (zh) * 2017-05-26 2017-10-20 努比亚技术有限公司 一种异常运行的分析方法、应用终端及监控服务器
CN107273263B (zh) * 2017-05-26 2020-11-17 努比亚技术有限公司 一种异常运行的分析方法、应用终端及监控服务器
CN107480026A (zh) * 2017-06-22 2017-12-15 深圳天珑无线科技有限公司 终端崩溃处理方法、终端以及具有存储功能的装置
CN107463485A (zh) * 2017-06-26 2017-12-12 北京五八信息技术有限公司 基于方法栈的日志获取方法、装置和终端
CN107463485B (zh) * 2017-06-26 2020-11-10 北京五八信息技术有限公司 基于方法栈的日志获取方法、装置和终端
CN107357704A (zh) * 2017-06-27 2017-11-17 努比亚技术有限公司 一种应用程序检测方法、终端及计算机可读存储介质
CN107402835A (zh) * 2017-07-25 2017-11-28 广东欧珀移动通信有限公司 应用程序的异常处理方法、装置及存储介质和移动终端
CN107402835B (zh) * 2017-07-25 2021-04-06 Oppo广东移动通信有限公司 应用程序的异常处理方法、装置及存储介质和移动终端
CN109391496A (zh) * 2017-08-10 2019-02-26 大唐移动通信设备有限公司 告警日志上传方法及装置
CN108040159A (zh) * 2017-11-30 2018-05-15 努比亚技术有限公司 基于硬件驱动的重启定位方法、移动终端及可读存储介质
CN108040159B (zh) * 2017-11-30 2021-01-29 江苏觅丰电商科技有限公司 基于硬件驱动的重启定位方法、移动终端及可读存储介质
CN107908802A (zh) * 2017-12-26 2018-04-13 广东欧珀移动通信有限公司 日志处理方法、装置、终端设备及存储介质
CN108197013B (zh) * 2017-12-26 2022-03-08 Oppo广东移动通信有限公司 日志处理方法、装置、终端设备及存储介质
CN108197013A (zh) * 2017-12-26 2018-06-22 广东欧珀移动通信有限公司 日志处理方法、装置、终端设备及存储介质
CN108280011A (zh) * 2018-01-16 2018-07-13 北京小米移动软件有限公司 日志抓取方法及装置
CN108563719A (zh) * 2018-04-02 2018-09-21 郑州云海信息技术有限公司 一种用于异常日志转储的lzo压缩方法及系统
CN109376056A (zh) * 2018-10-17 2019-02-22 Oppo广东移动通信有限公司 异常日志分析方法、装置、存储介质、移动终端及服务器
CN110011970A (zh) * 2019-02-28 2019-07-12 努比亚技术有限公司 一种日志获取方法、终端及计算机可读存储介质
CN110450189B (zh) * 2019-04-30 2021-06-08 北京云迹科技有限公司 用于机器人的异常处理方法及装置
CN110450189A (zh) * 2019-04-30 2019-11-15 北京云迹科技有限公司 用于机器人的异常处理方法及装置
CN110333964A (zh) * 2019-07-01 2019-10-15 Oppo广东移动通信有限公司 异常日志处理方法及装置、电子设备、存储介质
CN110543375A (zh) * 2019-07-22 2019-12-06 深圳壹账通智能科技有限公司 赔付事务异常处理方法、装置、计算机设备和存储介质
CN110413497A (zh) * 2019-07-30 2019-11-05 Oppo广东移动通信有限公司 异常监控方法、装置、终端设备及计算机可读存储介质
CN110413497B (zh) * 2019-07-30 2024-02-13 Oppo广东移动通信有限公司 异常监控方法、装置、终端设备及计算机可读存储介质
CN111078523A (zh) * 2019-12-25 2020-04-28 惠州Tcl移动通信有限公司 日志获取方法、装置、存储介质及电子设备
CN111400138A (zh) * 2020-03-17 2020-07-10 中国建设银行股份有限公司 基于双层守护机制的客户端监控方法、装置及系统
CN112087490A (zh) * 2020-08-07 2020-12-15 上海绊糖信息科技有限公司 一种高性能移动端应用软件日志收集系统
CN112417245A (zh) * 2020-11-18 2021-02-26 掌阅科技股份有限公司 应用日志的抓取方法、计算设备及计算机存储介质
CN112364284A (zh) * 2020-11-23 2021-02-12 北京八分量信息科技有限公司 基于上下文进行异常侦测的方法、装置及相关产品
CN112507265A (zh) * 2020-11-23 2021-03-16 北京八分量信息科技有限公司 基于树结构进行异常侦测的方法、装置及相关产品
CN112364284B (zh) * 2020-11-23 2024-01-30 北京八分量信息科技有限公司 基于上下文进行异常侦测的方法、装置及相关产品
CN112507265B (zh) * 2020-11-23 2024-03-01 北京八分量信息科技有限公司 基于树结构进行异常侦测的方法、装置及相关产品

Also Published As

Publication number Publication date
CN106201756B (zh) 2019-09-06

Similar Documents

Publication Publication Date Title
CN106201756A (zh) 日志获取装置、移动终端及方法
CN104809213B (zh) 启动应用软件客户端的方法、装置和系统
CN105843508B (zh) 移动终端及其截屏方法
CN105373440A (zh) 故障检测修复装置及方法
CN106095568A (zh) 内存管理装置、移动终端及方法
CN105718166A (zh) 显示界面跳转装置及方法
CN105739820A (zh) 消息提示的显示方法及装置
CN105704282A (zh) 摄像头检测方法及装置
CN105511928A (zh) 系统升级装置和方法
CN105589663A (zh) 移动终端及其数据处理方法
CN105808659A (zh) 移动终端及其网页截图方法
CN106021029A (zh) Nv参数的备份恢复装置和方法
CN105677517A (zh) 数据备份装置、终端及方法
CN106528576A (zh) 页面搜索方法、终端及系统
CN105204992A (zh) 测试脚本生成装置及方法
CN106598538A (zh) 指令集合更新方法及系统
CN107341013A (zh) 一种开机故障处理方法、设备及计算机可读存储介质
CN106303055A (zh) 亮屏控制装置、移动终端及方法
CN106502751B (zh) 热部署装置和方法
CN105786647A (zh) 数据备份装置、方法及终端
CN106028382A (zh) Nv参数读写装置和方法
CN105204849A (zh) 压力测试系统及其实现方法
CN106547565A (zh) 一种浏览器异常上报方法及系统
CN106209417A (zh) 一种资源下载链接可用性的监控处理系统及方法
CN106598844B (zh) 移动终端及基于移动终端代码缺陷率的计算方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant