CN114257502B - 一种日志上报方法及装置 - Google Patents
一种日志上报方法及装置 Download PDFInfo
- Publication number
- CN114257502B CN114257502B CN202010995194.9A CN202010995194A CN114257502B CN 114257502 B CN114257502 B CN 114257502B CN 202010995194 A CN202010995194 A CN 202010995194A CN 114257502 B CN114257502 B CN 114257502B
- Authority
- CN
- China
- Prior art keywords
- log
- thread
- function
- electronic device
- duration
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0604—Management of faults, events, alarms or notifications using filtering, e.g. reduction of information by using priority, element types, position or time
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Telephone Function (AREA)
Abstract
一种日志上报方法及装置,可应用于电子设备,包括:电子设备在发生故障时,获取自身操作系统生成的用于记录故障现象的第一日志;所述电子设备对所述第一日志进行分析,获取所述第一日志的特征序列;所述电子设备在确定所述第一日志的特征序列与已上报云端的第二日志的特征序列间满足第一条件时,则不向云端上报所述第一日志。采用本申请的方法及装置,可避免类型相同的日志,重复向云端上报,减少电子设备的功耗和流量等。
Description
技术领域
本申请实施例涉及终端技术领域,尤其涉及一种日志上报方法及装置。
背景技术
安卓系统发生丢帧卡顿等故障时,电子设备会自动生成故障日志。每个故障日志内容在10万-100万行,故障日志容量大小在10M-100M左右,电子设备会将生成的故障日志打包压缩,然后传送到云端。这种上报方式存在以下问题:
每个故障日志均进行打包压缩会增加电子设备的功耗,压缩之后传送到云端,会消耗电子设备自身的流量。且传到云端的故障日志需要逐个进行分析才能定位故障,这会消耗大量人力,对相同内容的日志重复分析会浪费资源。
发明内容
本申请实施例提供一种日志上报方法及装置,对于类型相同的日志不重复上报,避免增加电子设备的功耗以及浪费电子设备的流量,以及避免对故障类型相同的日志重复分析造成的资源浪费。
第一方面,提供一种日志上报方法,应用于电子设备,电子设备在发生故障时,获取自身操作系统生成的用于记录故障现象的第一日志;电子设备对第一日志进行分析,获取第一日志的特征序列;电子设备在确定第一日志的特征序列与已上报云端的第二日志的特征序列间满足第一条件时,可认为第一日志记录的故障与第二日志记录的故障属于同一类型,则不再向云端上报所述第一日志。
通过上述方法,电子设备对相同类型的故障日志,不会重复向云端上报,仅会向云端上报不同类型的故障日志;从而减少电子设备侧的流量开销,且云端不会对故障类型相同的日志重复分析,减少重复分析造成的人力资源的浪费。
在一种可能的实现方式,电子设备对第一日志进行分析,获取第一日志的特征序列,包括:电子设备提取第一日志中的函数特征和线程特征中的至少一项;电子设备生成第一日志的特征序列,所述第一日志的特征序列包括函数特征和线程特征中的至少一项。
通过上述方法,同时考虑函数特征和线程特征,将函数特征和线程特征不分开看,使得提取的特征,更加准确的表示第一日志的故障。
在一种可能的实现方式,电子设备提取第一日志中的函数特征,包括:电子设备在第一日志中确定至少一个目标函数;针对每个目标函数,所述电子设备执行:获取所述目标函数的各状态分布时长;根据所述目标函数的各状态分布时长,确定所述目标函数最长分布时长的状态;根据所述目标函数的名称、最长分布时长的状态和最长分布时长,确定目标函数的特征。
通过上述方法,仅考虑函数最长分布时长的状态,即仅考虑函数较明显的特征,可减少噪声的影响。
在一种可能的实现方式中,电子设备在第一日志中确定至少一个目标函数,包括:电子设备获取第一日志中包括的每个函数的存活时长,所述存活时长为每个函数被调用的时长;电子设备确定每个函数的存活时长与记录所述第一日志对应的总时长的比例;电子设备选取所述比例大于或等于设定阈值的函数,作为至少一个目标函数。
通过上述方法,仅提取函数的存活时长满足条件的函数的特征,减少提取函数特征的复杂度。
在一种可能的实现方式中,电子设备提取第一日志中的线程特征,包括:电子设备确定第一日志对应的线程在没有调用所述函数时的至少一个目标线程时段;针对每个目标线程时段,所述电子设备执行:获取所述目标线程时段的各状态分布时长;根据目标线程时段的各状态分布时长,确定目标线程时段的最长分布时长的状态;根据目标线程时段的名称,最长分布时长的状态和最长分布时长,确定目标线程的特征。
通过上述方法,仅考虑线程最长分布时长的状态,即仅考虑线程较明显的特征,可减少噪声的影响。
在一种可能的实现方式中,电子设备确定所述第一日志对应的线程在没有调用所述函数时的至少一个目标线程时段,包括:所述电子设备获取所述第一日志对应的线程在无调用函数时,每个线程时段的时长;所述电子设备确定每个线程时段的时长与记录所述第一日志对应的总时长的比例所述电子设备选取所述比例大于或等于第二阈值的线程时段,作为所述至少一个目标线程时段。
通过上述方法,仅提取线程时段的时长满足条件的线程时段的特征,减少提取线程特征的复杂度。
在一种可能的实现方式中,所述函数特征包括以下至少一项:首层函数的特征,第二层函数的特征,和第三层函数的特征,所述线程特征包括以下至少一项:所述第一日志对应的线程在没有调用所述首层函数时的线程特征,所述第一日志对应的线程在没有调用所述第二层函数时的线程特征,和所述第一日志对应的线程在没有调用所述第三层函数时的线程特征。
通过上述方法,不仅考虑首层函数,还考虑第二层函数和第三层函数,使得提取的函数特征更加准确。
第二方面,本申请提供一种电子设备,该电子设备包括:显示屏;一个或多个处理器;一个或多个存储器;其中,所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行上述第一方面中任一可能的技术方案。
第三方面,还提供一种电子设备,该电子设备包括执行第一方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。
第四方面,本申请实施例提供一种芯片,所述芯片与电子设备中的存储器耦合,执行本申请实施例第一方面任一可能的技术方案;本申请实施例中“耦合”是指两个部件彼此直接或间接地结合。
第五方面,提供了一种计算机程序产品,计算机程序产品包括:计算机程序(也可以称为代码,或指令),当计算机程序被运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
第六方面,提供了一种计算机可读存储介质,计算机可读介质存储有计算机程序(也可以称为代码,或指令)当其在计算机上运行时,使得计算机执行上述第一方面中任一种可能实现方式中的方法。
附图说明
图1为本申请实施例提供的电子设备的结构示意图;
图2为本申请实施例提供的电子设备的软件系统的示意图;
图3为本申请实施例提供的日志上报方法的流程图;
图4为本申请实施例提供的UI线程的一示意图;
图5为本申请实施例提供的确定最长相似三元组的示例图;
图6为本申请实施例提供的装置的一示意图。
具体实施方式
随着社会的快速发展,电子设备例如手机越来越普及。电子设备不但具有通信功能、还具有强大的处理能力、存储能力、照相功能等。电子设备通过操作系统(例如安卓操作系统)执行相应的应用程序,用户可以使用电子设备打电话、发短消息、浏览网页、拍照、玩游戏、看视频等。其中,用户在长期使用电子设备的过程中,随着时间的积累,电子设备的操作系统可能会发生丢帧、卡顿等故障,此时电子设备会生成故障日志,且将生成的故障日志经过打包压缩上传到云端进行分析。这种上报方式存在以下问题:
1、每个故障日志均进行打包压缩会增加电子设备的功耗,压缩之后再传送到云端,会消耗电子设备的流量。
2、如果电子设备的流量有限制,很多相同类型的故障日志占去了有限的流量,可能会导致其它不同类型的故障日志无法及时得以上报,从而可能影响故障定位。
3、传到云端的故障日志需要逐个进行分析,将导致消耗大量人力,对故障类型相同的日志重复分析也会导致浪费资源。
基于此,本申请实施例提供一种日志上报方法及装置,在该方法或装置中电子设备在向云端上报故障日志时,先确定该故障日志的类型,再判断是否已向云端上报过类型相同的日志,如果已向云端上报过类型相同的日志,则不再向云端上报当前的故障日志。采用本申请实施例的方法,只会向云端上报类型不同的故障日志,从而减少电子设备的功耗和流量消耗,并使得不同类型的故障日志可以及时上报,避免云端对故障相同的日志重复分析,可以减少资源浪费。
可以理解的是,本申请实施例可以应用于诸如手机、平板电脑、可穿戴设备(例如,手表、手环、头盔、耳机等)、车载设备、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、智能家居设备(例如,智能电视,智能音箱,智能摄像头等)等电子设备。可以理解的是,本申请实施例对电子设备的具体类型不作任何限制。
应理解,本申请实施例中“至少一个”是指一个或者多个。“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的三种情况。其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一(项)个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a、b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c,或a、b和c七种情况。其中a、b、c中的每一个本身可以是元素,也可以是包含一个或多个元素的集合。另外,本申请实施例中涉及的“第一”、“第二”等词汇,仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1示出了本申请实施例能够应用的电子设备的结构示意图。具体的,如图1所示,电子设备包括处理器110、外部存储器接口120、内部存储器121、通信串行总线(universalserial bus,USB)接口130、充电管理模块140、电源管理模块141、电池142、天线1、天线2、移动通信模块150、无线通信模块160、音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D、传感器模块180、按键190、马达191、指示器192、摄像头193、显示屏194、以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中,传感器模块180可以包括压力传感器、陀螺仪传感器、气压传感器、磁传感器、加速度传感器、距离传感器、接近光传感器、指纹传感器、温度传感器、触摸传感器、环境光传感器、骨传导传感器等。
处理器110可以包括一个或多个处理单元。例如,处理器110可以包括应用处理器(application processor,AP)、调制解调器(modem)、图形处理器(graphics processingunit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、视频编解码器、数字信号处理器(digital signal processor,DSP)、基带处理器、和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,或者,两个或更多个不同的处理单元也可以集成在一个器件中。
控制器可以是电子设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。例如,处理器110包括通用串行总线(universal serial bus,USB)接口130、用户标识模块(subscriber identitymodule,SIM)接口195。再例如,处理器110还可以包括集成电路(inter-integratedcircuit,I2C)接口、集成电路内置音频(inter-integrated circuit sound,I2S)接口、脉冲编码调制(pulse code modulation,PCM)接口、通用异步收发传输器(universalasynchronous receiver/transmitter,UART)接口、移动产业处理器接口(mobileindustry processor interface,MIPI)、和/或通用输入输出(general-purpose input/output,GPIO)接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口、Micro USB接口、USB Type C接口等。USB接口130可以用于连接充电器为电子设备充电,也可以用于电子设备与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备的接触和分离。电子设备可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡、Micro SIM卡、SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备中,不能和电子设备分离。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过电子设备的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142、充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110、内部存储器121、外部存储器、显示屏194、摄像头193和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量、电池循环次数、电池健康状态(漏电、阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备的无线通信功能可以通过天线1、天线2、移动通信模块150、无线通信模块160、调制解调器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等制式的无线通信的解决方案。移动通信模块150可以包括至少一个滤波器、开关、功率放大器、低噪声放大器(low noise amplifier,LNA)等。
无线通信模块160包括可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如Wi-Fi网络)、蓝牙(bluetooth,BT)、全球导航卫星系统(global navigation satellite system,GNSS)、调频(frequency modulation,FM)、近距离无线通信技术(near field communication,NFC)、红外技术(infrared,IR)等无线通信的解决方案。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM)、通用分组无线服务(general packet radio service,GPRS)、码分多址接入(code divisionmultiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA)、时分码分多址(time-division code division multiple access,TD-SCDMA)、长期演进(long term evolution,LTE)、BT、GNSS、WLAN、NFC、FM和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS)、全球导航卫星系统(globalnavigation satellite system,GLONASS)、北斗卫星导航系统(beidou navigationsatellite system,BDS)、准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备通过GPU、显示屏194以及应用处理器等实现显示功能。显示屏194用于显示图像、视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystaldisplay,LCD)、有机发光二极管(organic light-emitting diode,OLED)、有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED)、柔性发光二极管(flex light-emitting diode,FLED)、Miniled、MicroLed、Micro-oLed、量子点发光二极管(quantum dot light emitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备可以通过ISP、摄像头193、视频编解码器、GPU、显示屏194以及应用处理器等实现拍摄功能。ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光、色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,电子设备可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐、视频等文件保存在外部存储卡中。
内部存储器121包括运行内存(memory)和内置存储器。其中,运行内存可以用于存储计算机可执行程序代码或数据等。所述可执行程序代码包括指令。处理器110通过运行存储在运行内存的指令,从而执行电子设备的各种功能应用以及数据处理。例如,运行内存可以包括高速随机存取存储器。而内置存储器又可以称之为内置外存等,可以用于存储程序和/或数据。例如,内置存储器可以存储操作系统、应用程序等。电子设备通常将内置存储器中的程序和/或数据加载到运行内存后,使得处理器110运行相应的程序和/或数据,实现相应的功能。此外,内部存储器121可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、通用闪存存储器(universal flash storage,UFS)等。
电子设备可以通过音频模块170、扬声器170A、受话器170B、麦克风170C、耳机接口170D、以及应用处理器等实现音频功能。例如音乐播放、录音等。
按键190包括开机键、音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照、音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒、接收信息、闹钟、游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态、电量变化,也可以用于指示消息、未接来电、通知等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
本申请实施例中电子设备的软件系统又可以称为操作系统,可以记录电子设备的运行情况,当电子设备发生丢帧、卡顿等故障时,生成故障日志。电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务器架构,或去架构。本申请实施以分层架构的Android系统为例,示例性说明电子设备的软件架构。图2是本申请实施例的电子设备的软件结构框图。示例性的,图2是一种可以运行在上述电子设备中的软件架构示意图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。如图2所示,该软件架构可以分为四层,分别为应用程序层,应用程序框架层,安卓运行时和系统库,和Linux内核层。
应用程序层是操作系统的最上一层,包括操作系统的原生应用程序,例如电子邮件客户端、短信、通话、日历、浏览器、联系人等。本申请实施例涉及的APP,简称应用,为能够实现某项或多项特定功能的软件程序。通常,电子设备中可以安装多个应用。比如,相机应用、邮箱应用、智能家居控制应用等。下文中提到的应用,可以是电子设备出厂时已安装的系统应用,也可以是用户在使用电子设备的过程中从网络下载或从其他电子设备获取的第三方应用。
当然,对于开发者来说,开发者可以编写应用程序并安装到该层。应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。其中,窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏、锁定屏幕、截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频、图像、音频、拨打和接听的电话、浏览历史和书签、电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控制等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供电子设备的通信功能。例如,通话状态的管理(包括接通、挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串、图标、图片、布局文件、视频文件等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如,通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
一种可能的实现方式中,应用程序可以使用Java语言开发,通过调用应用程序框架层所提供的应用程序编程接口(application programming interface,API)来完成,开发者可以通过应用程序框架来与操作系统的底层(例如硬件抽象层、内核层等)进行交互,开发自己的应用程序。该应用程序框架主要是操作系统的一系列的服务和管理系统。
安卓运行时包括核心库和虚拟机。安卓运行时负责安卓系统的调度和管理。安卓系统的核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓系统的核心库。应用程序层和应用程序框架层运行在虚拟机中。以java举例,虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器,媒体库,三维图形处理库(例如:OpenGL ES),二维图形引擎(例如:SGL)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了二维和三维图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。二维图形引擎是二维绘图的绘图引擎。
Linux内核(Linux Kernel)层提供操作系统的核心系统服务,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都基于Linux内核。Linux内核同时也作为硬件和软件栈之间的抽象层。该层有许多与电子设备相关的驱动程序,主要的驱动有:显示驱动;基于Linux的帧缓冲驱动;作为输入设备的键盘驱动;基于内存技术设备的Flash驱动;照相机驱动;音频驱动;蓝牙驱动;WI-FI驱动等。在本申请一些实施例中,Linux内核依赖于本地文件系统。通过协作服务可以访问该本地文件系统,通过硬件抽象层的服务接口可以对本地文件系统中的协作数据进行配置。
以下实施例中所涉及的技术方案均可以在具有上述图1所示的硬件架构和图2所示的软件架构的电子设备中实现。
如图3所示,提供一种日志上报方法的流程,该方法可以由电子设备中的处理器结合周围的其他硬件部件实施,包括:
步骤300:电子设备的操作系统发生丢帧、卡顿等故障时,获取自身操作系统生成的用于记录故障的第一日志。可选的,第一日志还可称为故障日志、系统追溯systrace日志等。
在一些实施例中,电子设备的操作系统可向显示屏传输视频帧等,在上述传输过程中,若发生了丢帧,则电子设备的显示屏可能会出现明显的暂停现象。例如,正常情况下,显示屏每秒显示60帧视频帧,才能保证用户的正常观看。若发生了丢帧,显示屏可能不能支持每秒显示60帧视频帧,显示屏显示的画面可能会出现暂停的现象,影响用户的观看体验。在另一些实施例中,由于电子设备的操作系统提供的资源有限,在电子设备操作系统的大部分资源已被占用的情况下,若用户再打开某个应用程序,可能会出现应用程序打开速度反应慢、或者没有反应的现象,这种情况可称为电子设备的卡顿现象。由于上述各种情况,均影响用户的使用,给用户带来较差的体验,因此,当电子设备发生上述现象时,电子设备的操作系统可触发记录上述各种现象对应的日志,然后将记录的日志打包压缩后上传到云端。在云端可根据电子设备上报的日志分析上述各种故障对应的原因,对电子设备及时定位故障并修复故障,以提高用户体验。当然,上述是以丢帧和卡顿为例进行描述的,并不作为对本申请实施例的限定。任何需要触发上传故障日志的方案,均可以利用本申请实施例提供的方法。
步骤301:电子设备中的处理器对第一日志进行分析,获取第一日志的特征序列。
其中,第一日志可以是文本形式,主体可以为线程,主要用于记录线程在具体什么时间执行了具体什么操作,以及在什么时间调用了什么函数等。因此,在本申请实施例中,可提取第一日志中函数的特征,以及线程的特征中的至少一项。所述第一日志中函数的特征和线程的特征中的至少一项,可组成第一日志的特征序列。可选的,在本申请实施例中,不但考虑第一日志中的首层函数,还可以考虑第一日志中的第二层函数和第三层函数。例如,若第一日志的线程直接调用A函数,A函数没有再调用其它函数,则A函数可以称为首层函数。若A函数还继续调用B函数,则B函数称为第二层函数。同理,若B函数还继续调用C函数,则C函数称为第三层函数。
在一些实施例中,处理器可获取第一日志中函数的各状态分布时长;根据所述函数的各状态分布时长,确定该函数最长分布时长的状态;根据该函数的名称、最长分布时长的状态和最长分布时长,确定函数的特征。例如,该函数的特征可由包括(函数名称,最长分布时长的状态,最长分布时长)的三元组组成。
例如,在一种具体的实现方式中,绘帧Choreographer#doFrame函数包括四个状态,分别为runnable状态、running状态、sleeping状态和D状态。其中,runnable状态对应的状态时长为30ms,running状态对应的状态时长为200ms,sleeping状态对应的状态时长为300ms,D状态对应的状态时长为60ms。由于sleeping状态对应的状态分布时长最长,因此,可确定该函数的特征为三元组(Choreographer#doFrame,sleeping,300)。
在另一些实施例中,处理器还可获取在无函数调用时,第一日志对应的线程的特征。线程状态与上述函数状态相同,可包括runnable状态、running状态、sleeping状态和D状态等四种状态。在本申请实施例中,同样可确定线程最长分布时长所对应的状态;根据线程的名称、最长分布时长的状态和最长分布时长,组成线程的特征。例如,线程的特征可由包括(线程名称,最长分布时长的状态,最长分布时长)的三元组组成。
例如,在一种具体的实现方式中,第一日志的主体为用户界面(user interface,UI)线程,第一日志在无调用函数时,UI线程包括runnable状态、running状态、sleeping状态和D状态等四种状态,其running状态对应的状态时长最长,为280ms,则该线程的状态可为(UI,running,280)。
在一种更具体的方式中,通过上述记载可知,在本申请实施例中,不但考虑第一日志中的首层函数,还可以考虑第一日志中的第二层函数和第三层函数。在一些实施例中,可首先考虑首层函数执行过程如下:处理器确定第一日志的首层函数的特征,以及第一日志对应的线程在无调用首层函数时的线程特征,最终由首层函数的特征和无调用首层函数时的线程特征组成首层函数的特征序列。之后再考虑第二层函数,处理器确定第一日志的第二层函数的特征,以及第一日志对应的线程在无调用第二层函数时的线程特征;由第二层函数的特征以及无调用第二层函数时的线程特征组成第二层函数的特征序列;最后考虑第三层函数,处理器确定第一日志的第三层函数的特征,以及第一日志对应的线程在无调用第三层函数时的线程特征;由第三层函数的特征和无调用第三层函数时的线程特征,组成第三层函数的特征序列。也就是说,此时第一日志的特征序列,包括首层函数的特征序列,第二层函数的特征序列和第三层函数的特征序列。每层函数的特征序列中除了包括各自函数的特征外,还包括线程在无调用对应的函数时的特征。也就是说,本申请实施例中提取的第一日志中的函数特征可包括以下至少一项:首层函数的特征,第二层函数的特征,和第三层函数的特征,提取的第一日志中的线程特征可包括以下至少一项:第一日志对应的线程在没有调用首层函数的线程特征,第一日志对应的线程在没有调用第二层函数时的线程特征,和第一日志对应的线程在没有调用第三层函数时的线程特征。
如图4所示,以首层函数的特征序列为例说明。例如,第一日志对应的UI线程调用的首层函数包括绘帧Choreographer#doFrame函数和转换transact函数。其中,Choreographer#doFrame函数和transact函数的存活时长可参见图4中的实线黑色方框。在Choreographer#doFrame函数的存活时间段内,其各个状态的时长分布分别为:runnable状态,30ms;running状态,200ms;sleeping状态,300ms;D状态,60ms。由于sleepinng状态对应的状态时长最长,则可以确定用于表征该函数Choreographer#doFrame的特征序列的三元组为(Choreographer#doFrame,sleeping,300)。过程与上述相似,在transact函数的存活时段时,其对应的特征序列的三元组为(transact,sleeping,50)。不同的是,transact函数被调用两次,在另一个存活时段内,其对应的特征序列的三元组为(transact,sleeping,60)。
第一日志对应的UI线程,在没有调用上述首层函数时,其可包括四个线程时段,每个线程时段可参见图4中的黑色虚线方框。在每个线程时段内,可确定各状态分布时长;根据各状态分布时长,确定每个线程时段的最长分布时长的状态;根据每个线程的名称,最长分布时长的状态和最长分布时长,确定每个线程时段的特征。示例的,在图4中,4个黑色虚线方框所对应的线程时段,每个线程时段的线程特征可分别为(UI,running,280),(UI,running,130),(UI,running,260)。
最终,上述首层函数的特征序列,按照图4中的从左到右时间增加的方向,依次包括【(UI,running,280),(transact,sleeping,50),(UI,running,130),(transact,sleeping,60),(UI,running,260),(Choreographer#doFrame,sleeping,300)】。
关于第二函数的特征序列和第三函数的特征序列的提取与上述过程相似,不再一一举例说明。不同的是,第二层函数的特征序列中,包括的是第二层函数的特征,以及第一日志对应的目标线程在没有调用第二层函数时的线程特征。同理,第三层函数的特征序列中,包括的是第三层函数的特征,以及第一日志对应的目标线程在没有调用第三层函数时的线程特征。
进一步需要说明的是,由于在第一日志中可能存在大量的函数。因此,在一些实施例中,无需提取每个函数的特征。以首层函数为例,电子设备的处理器可获取第一日志中每个函数的存活时长,所述存活时长可以认为是每个函数被调用的时长。确定每个函数的存活时长与记录第一日志对应的总时长的比例;可在上述函数中,选取上述比例大于或等于第三阈值的函数,比如,第三阈值的取值可为5%,进行函数特征的提取。可选的,进一步的,电子设备可在上述选取出的比例大于或等于第三阈值的函数中,进一步再选取预设数量的函数,进行函数特征的提取。比如,可在第一日志的函数中,选择存活时长与记录第一日志的总时长的比例大于或等于5%的函数,在上述比例大于或等于5%的函数中,再进一步选择存活时长与第一日志的总时长的比例较大的前5个函数进行特征提取等。同样,对于线程,电子设备可也可以确定线程在无调用首层函数时各个线程时段的时长;确定每个线程时段的时长与记录第一日志对应的总时长的比例,选择所述比例大于或等于第四阈值的线程时段,比如,第四阈值的取值可为5%,进行线程特征的提取。可选的,进一步的,电子设备可在上述选取出的比例大于或等于第四阈值的线程时段中,进一步选取预设数量的线程时段,进行线程特征的提取等,不作限定。
需要说明的是,当电子设备发生卡顿、丢帧等故障时,电子设备所生成或记录的通常是一段时间内的日志。该日志在时间上可被划分为两部分,线程调用函数的时段,以及线程没有调用函数的时段等。可参见图4所示,整个UI线程中,transact函数被调用两次,Choreographer#doFrame函数被调用一次,线程没有调用函数的时段包括四段,四个线程时段可参见图4中的虚线黑色框所示。针对每个线程时段,确定线程时段的时长与记录第一日志的总时长的比例,可以选取上述比例大于或等于第四阈值的线程时段,比如,第四阈值的取值可为5%。最终,对上述选取出的线程进行特征提取,得到线程的特征。对上述线程时段进行特征提取,得到线程在无调用首层函数时的线程特征;上述首层函数的特征与上述线程特征,组成首层函数的特征序列。关于第二层函数的特征序列,与第三层函数的特征序列的提取过程,可与首层函数特征序列的提取相似,不再一一赘述。上述采用选取部分函数和部分线程时段提取的方式,可节省电子设备的功耗。
步骤302:电子设备中的处理器判断第一日志的特征序列与已上报云端的第二日志的特征序列之间是否满足第一条件,若满足,则执行步骤303,不再向云端上报第一日志;否则执行步骤304,继续向云端上报第一日志,且电子设备中存储第一日志的特征序列。
在本申请实施例中,所有上报云端的日志,可将其对应的特征序列,存储到电子设备中,比如,存储到电子设备的特征库中,以便后续进行特征比对。在本申请实施例中,当电子设备的处理器,提取到第一日志的特征序列时,上述电子设备的特征库中可能存在一个或多个已上报云端的日志的特征序列。在本申请实施例中,可将上述第一日志的特征序列,与已上报云端的日志的特征序列依次进行对比。若第一日志的特征序列与某个已上报云端的日志的特征序列比对成功,即满足上述第一条件,则停止对比,且不再向云端上报第一日志。若特征库中的任一个日志的特征序列与第一日志的特征序列均没有对比成功,即没有满足第一条件,则将第一日志上报云端,且可将第一日志的特征序列存储到电子设备的特征库中。上述步骤302中的第二日志的特征序列,可以为电子设备的特征库中存储的,任一个已上报云端的日志的特征序列。
在一些实施例中,上述第一条件可包括以下至少一项:
1、第一日志的特征序列与第二日志的特征序列的第一相似度大于第一阈值。可选的,第一阈值的取值可为0.4,第一相似度还可称为时间比例相似度。设定第一日志中包括L1个三元组,第二日志中包括L2个三元组,L1个三元组中与L2个三元组中有m个三元组是相似的,上述第一日志的特征序列与第二日志的特征序列的第一相似度,实质上可为上述m个三元组的相似度之和,所述L1、L2和m的取值均为整数,且m的取值小于或等于L1,且小于或等于L2。
为了便于理解,以函数为例,首先定义两个函数三元组的相似度。通过上述记载可知,每个函数的三元组中包括(函数名称,状态名称,状态时长)。若两个函数的三元组中,函数名称或状态名称中的任一项不同时,则两个函数三元组的相似度为0。若两个函数的三元组中,函数名称和状态名称均相同时,两个函数三元组的相似度为p1、p2中的最小值,即min(p1,p2)。所述p1为两个比较的函数中的第一个函数的三元组中的状态时长与所对应的特征序列的总时长的比值,p2为两个比较的函数中的第二个函数的三元组中的状态时长与对应的特征序列的总时长的比值。
例如,第一个函数对应的三元组为(func1,state1,time1),第二个函数对应的三元组为(func2,state2,time2)。比较两个函数相似度的过程为:若func1≠func2,或state1≠state2,则两者的相似度为0。若func1=func2,且state1=state2,则两者的相似度为min(time1/t1,time2/t2),t1为第一个函数对应的特征序列的总时长,t2为第二个函数对应的特征序列的总时长。仍沿上述举例,比如,上述第一函数的三元组属于上述第一日志的特征序列,第一日志的特征序列中包括L1个三元组,每个三元组中都包括时长,则上述t1的值为L1个三元组中包括的时长之和。同理,若上述第二函数的三元组属于上述第二日志的特征序列,第二日志的特征序列中包括L2个三元组,则上述t2的值为L2个三元组中包括的时长之和。
以下继续介绍本申请实施例的方案,通过上述记载可知,在本申请实施例中,首先找到L1个三元组与L2个三元组中的m个相似三元组。如此定义两个三元组是相似的,两个三元组的名称、与状态都相同,则认为这两个三元组是相似的。按照上述定义可计算m个相似三元组中,每个相似三元组中的相似度,最后计算m个三元组的相似度之和,即为上述第一日志的三元组,与第二日志的三元组的第一相似度。在一些实施例中,设定m个三元组的相似度之和为S,则上述条件可为S的取值大于第一阈值,比如,S的取值大于0.4等。可选的,上述m个三元组是L1个三元组和L2个三元组最长的相似三元组,可利用动态规划的方式,寻找L1个三元组与L2个三元组中最长的相似三元组m。比如,如图5所示,L1个三元组分别为A,B,C,B,D,A,B,L2个三元组分别为B,D,C,A,B,A,可利用动态规划的方式,确定两者的最长相似三元组BCBA,可参见图5中的黑色加框和下划线标注的部分。如图5所示,可以看出,在上述L1个三元组,和L2个三元组中,除了上述最长相似三元组BCBA外,实质上还存在其它相似三元组,比如,ABA。但在本申请实施例中,关注是最长相似三元组。
2、第一日志的特征序列与第二日志的特征序列的第二相似度大于第二阈值。可选的,第二阈值的取值可为0.6,第二相似度还可称为序列长度相似度。同样,沿用上述举例,设定第一日志的特征序列中包括L1个三元组,第二日志的特征序列中包括L2个三元组,且L1个三元组与L2个三元组中有m个三元组是相似的,则上述m与L1与L2中较大值的比值,即为上述第一日志的特征序列与第二日志的特征序列的第二相似度。或者,第二相似度可描述为:m/max(L1、L2)。
在一些实施例中,也可以当第一日志的特征序列与第二日志的特征序列间同时满足以上两个条件时,则认为两个日志的相似度足够高,两个日志可归为同一类别,此时电子设备无需向云端再上报第一日志。
通过上述记载可知,在一种实现方式中,上述第一日志的特征序列包括首层函数的特征序列、第二层函数的特征序列和第三层函数的特征序列。同样,上述已上报云端的第二日志,以及在电子设备侧存储的第二日志的特征序列中同样可包括首层函数的特征序列、第二层函数的特征序列和第三层函数的特征序列。在一些实施例中,电子设备的处理器可分别比较第一日志的首层函数的特征序列与第二日志的首层函数的特征序列,第一日志的第二层函数的特征序列与第二日志的第二层函数的特征序列,第一日志的第三层函数的特征序列与第二日志的第三层函数的特征序列之间是否满足上述两个条件中的至少一个条件。比如,若第一日志的三层函数与第二日志的三层函数各自间均满足上述两个条件,则认为第一日志与第二日志的相似度足够高,可归为同一类别。若上述第一日志的三层函数与第二日志的三层函数中,任一层函数间不满足上述两个条件中的任意一个条件,则可以认为第一日志和第二日志的相似度不够高,两者不能归为同一类别。
通过上述方法,电子设备可以仅上报故障类型不同的日志,对于故障类型相同的日志,不再重复上报,从而可以节省上报流程以及传输资源。且新类型的故障日志可以及时上报到云端进行分析,可以尽早解决故障。同时,由于故障类型相同的日志,不再重复上报云端,可减少云端分析人员的工作量,提高工作效率。进一步的,在现有的方案中,每个故障日志除了要上报云端外,电子设备侧可能也要进行存储,但在本申请实施例中,对故障日志进行特征提取和对比,每个类型的故障日志可以存储一个且仅存储其关键特征,还可以节省电子设备的存储空间。
上述本申请提供的实施例中,从电子设备作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,电子设备可以包括硬件结构和/或软件模块,以软件模块或者硬件结构结合软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
如图6所示,本申请实施例公开了一种电子设备600,该电子设备600可以包括:一个或多个处理器601和存储器602。上述各器件可以通过一个或多个通信总结连接。其中,该程序指令被存储在上述存储器602中并配置为该一个或多个处理器601执行,实现本申请实施例中图3所示的日志上报方法。
上述各个实施例中涉及处理器可以是通用处理器、数字信号处理器(digitalsignal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存取存储器(random access memory,RAM)、闪存、只读存储器(read-only memory,ROM)、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的指令,结合其硬件完成上述方法的步骤。
具体的,上述电子设备600的具体实现方式可以参见方法部分的相关介绍,在此不再赘述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内,因此本申请的保护范围应以权利要求的保护范围为准。
Claims (19)
1.一种日志上报方法,其特征在于,应用于电子设备,包括:
电子设备在发生故障时,获取自身操作系统生成的用于记录故障现象的第一日志;
所述电子设备对所述第一日志进行分析,获取所述第一日志的特征序列;
所述电子设备在确定所述第一日志的特征序列与已上报云端的第二日志的特征序列间满足第一条件时,则不向云端上报所述第一日志;
所述电子设备对所述第一日志进行分析,获取所述第一日志的特征序列,包括:
所述电子设备提取所述第一日志中的函数特征和线程特征中的至少一项;
所述电子设备生成所述第一日志的特征序列,所述第一日志的特征序列包括所述函数特征和所述线程特征中的至少一项;
所述电子设备提取所述第一日志中的函数特征,包括:
所述电子设备在所述第一日志中确定至少一个目标函数;
针对每个目标函数,所述电子设备执行:
获取所述目标函数的各状态分布时长;
根据所述目标函数的各状态分布时长,确定所述目标函数最长分布时长的状态;
根据所述目标函数的名称、所述最长分布时长的状态和所述最长分布时长,确定所述目标函数的特征。
2.如权利要求1所述的方法,其特征在于,所述电子设备在所述第一日志中确定至少一个目标函数,包括:
所述电子设备获取所述第一日志中包括的每个函数的存活时长,所述存活时长为每个函数被调用的时长;
所述电子设备确定每个函数的存活时长与记录所述第一日志对应的总时长的比例;
所述电子设备选取所述比例大于或等于第一阈值的函数,作为所述至少一个目标函数。
3.如权利要求1所述的方法,其特征在于,所述电子设备提取所述第一日志中的线程特征,包括:
所述电子设备确定所述第一日志对应的线程在没有调用所述函数时的至少一个目标线程时段;
针对每个目标线程时段,所述电子设备执行:
获取所述目标线程时段的各状态分布时长;
根据所述目标线程时段的各状态分布时长,确定所述目标线程时段的最长分布时长的状态;
根据所述目标线程时段的名称,所述最长分布时长的状态和所述最长分布时长,确定所述目标线程的特征。
4.如权利要求3所述的方法,其特征在于,所述电子设备确定所述第一日志对应的线程在没有调用所述函数时的至少一个目标线程时段,包括:
所述电子设备获取所述第一日志对应的线程在无调用函数时,每个线程时段的时长;
所述电子设备确定每个线程时段的时长与记录所述第一日志对应的总时长的比例;所述电子设备选取所述比例大于或等于第二阈值的线程时段,作为所述至少一个目标线程时段。
5.如权利要求1至4任一项所述的方法,其特征在于,所述函数特征包括以下至少一项:首层函数的特征,第二层函数的特征,和第三层函数的特征,所述线程特征包括以下至少一项:所述第一日志对应的线程在没有调用所述首层函数时的线程特征,所述第一日志对应的线程在没有调用所述第二层函数时的线程特征,和所述第一日志对应的线程在没有调用所述第三层函数时的线程特征。
6.如权利要求1至4中任一项所述的方法,其特征在于,所述第一条件包括以下至少一项:
所述第一日志的特征序列与所述第二日志的特征序列的第一相似度大于第一阈值;
所述第一日志的特征序列与所述第二日志的特征序列的第二相似度大于第二阈值。
7.如权利要求6所述的方法,其特征在于,所述特征序列中的函数特征为函数的名称,函数最长分布时长的状态和所述最长分布时长构成的三元组,所述特征序列中的线程特征为线程名称,线程最长分布时长的状态和所述最长分布时长构成的三元组,所述第一日志的特征序列包括L1个三元组,所述第二日志的特定序列包括L2个三元组,所述L1个三元组与所述L2个三元组中存在m个相似三元组,所述L1、L2与m为整数,m小于或等于L1和L2,所述第一相似度为:m个三元组的相似度之和。
8.如权利要求7所述的方法,其特征在于,所述m个相似三元组中的任一组相似三元组,两者的相似度为:p1、p2中的最小值,所述p1为所述第一日志的特征序列中的函数或线程的特征对应的三元组中的所述最长分布时长与所述第一日志的特征序列的总时长的比值;所述p2为所述第二日志的特征序列中的函数或线程的特征对应的三元组中的所述最长分布时长与所述第二日志的特征序列的总时长的比值。
9.如权利要求6所述的方法,其特征在于,所述第二相似度为:m与L1和L2中较大值的比值。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
一个或多个存储器;
其中,所述一个或多个存储器存储有一个或多个计算机程序,所述一个或多个计算机程序包括指令,当所述指令被所述一个或多个处理器执行时,使得所述电子设备执行以下步骤:
在发生故障时,获取自身操作系统生成的用于记录故障现象的第一日志;
对所述第一日志进行分析,获取所述第一日志的特征序列;
在确定所述第一日志的特征序列与已上报云端的第二日志的特征序列间满足第一条件时,则不向云端上报所述第一日志;
所述对所述第一日志进行分析,获取所述第一日志的特征序列,包括:
提取所述第一日志中的函数特征和线程特征中的至少一项;
生成所述第一日志的特征序列,所述第一日志的特征序列包括所述函数特征和所述线程特征中的至少一项;
所述提取所述第一日志中的函数特征,包括:
在所述第一日志中确定至少一个目标函数;
针对每个目标函数,执行:
获取所述目标函数的各状态分布时长;
根据所述目标函数的各状态分布时长,确定所述目标函数最长分布时长的状态;
根据所述目标函数的名称、所述最长分布时长的状态和所述最长分布时长,确定所述目标函数的特征。
11.如权利要求10所述的电子设备,其特征在于,所述在所述第一日志中确定至少一个目标函数,包括:
获取所述第一日志中包括的每个函数的存活时长,所述存活时长为每个函数被调用的时长;
确定每个函数的存活时长与记录所述第一日志对应的总时长的比例;
选取所述比例大于或等于第一阈值的函数,作为所述至少一个目标函数。
12.如权利要求10所述的电子设备,其特征在于,所述提取所述第一日志中的线程特征,包括:
确定所述第一日志对应的线程在没有调用所述函数时的至少一个目标线程时段;
针对每个目标线程时段,执行:
获取所述目标线程时段的各状态分布时长;
根据所述目标线程时段的各状态分布时长,确定所述目标线程时段的最长分布时长的状态;
根据所述目标线程时段的名称,所述最长分布时长的状态和所述最长分布时长,确定所述目标线程的特征。
13.如权利要求12所述的电子设备,其特征在于,所述确定所述第一日志对应的线程在没有调用所述函数时的至少一个目标线程时段,包括:
获取所述第一日志对应的线程在无调用函数时,每个线程时段的时长;
确定每个线程时段的时长与记录所述第一日志对应的总时长的比例;
选取所述比例大于或等于第二阈值的线程时段,作为所述至少一个目标线程时段。
14.如权利要求10至13任一项所述的电子设备,其特征在于,所述函数特征包括以下至少一项:首层函数的特征,第二层函数的特征,和第三层函数的特征,所述线程特征包括以下至少一项:所述第一日志对应的线程在没有调用所述首层函数时的线程特征,所述第一日志对应的线程在没有调用所述第二层函数时的线程特征,和所述第一日志对应的线程在没有调用所述第三层函数时的线程特征。
15.如权利要求10至13中任一项所述的电子设备,其特征在于,所述第一条件包括以下至少一项:
所述第一日志的特征序列与所述第二日志的特征序列的第一相似度大于第一阈值;
所述第一日志的特征序列与所述第二日志的特征序列的第二相似度大于第二阈值。
16.如权利要求15所述的电子设备,其特征在于,所述特征序列中的函数特征为函数的名称,函数最长分布时长的状态和所述最长分布时长构成的三元组,所述特征序列中的线程特征为线程名称,线程最长分布时长的状态和所述最长分布时长构成的三元组,所述第一日志的特征序列包括L1个三元组,所述第二日志的特定序列包括L2个三元组,所述L1个三元组与所述L2个三元组中存在m个相似三元组,所述L1、L2与m为整数,m小于或等于L1和L2,所述第一相似度为:m个三元组的相似度之和。
17.如权利要求16所述的电子设备,其特征在于,所述m个相似三元组中的任一组相似三元组,两者的相似度为:p1、p2中的最小值,所述p1为所述第一日志的特征序列中的函数或线程的特征对应的三元组中的所述最长分布时长与所述第一日志的特征序列的总时长的比值;所述p2为所述第二日志的特征序列中的函数或线程的特征对应的三元组中的所述最长分布时长与所述第二日志的特征序列的总时长的比值。
18.如权利要求15所述的电子设备,其特征在于,所述第二相似度为:m与L1和L2中较大值的比值。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括程序指令,当所述程序指令在终端设备上运行时,使得所述终端设备执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010995194.9A CN114257502B (zh) | 2020-09-21 | 2020-09-21 | 一种日志上报方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010995194.9A CN114257502B (zh) | 2020-09-21 | 2020-09-21 | 一种日志上报方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114257502A CN114257502A (zh) | 2022-03-29 |
CN114257502B true CN114257502B (zh) | 2023-08-22 |
Family
ID=80788282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010995194.9A Active CN114257502B (zh) | 2020-09-21 | 2020-09-21 | 一种日志上报方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114257502B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116049112B (zh) * | 2022-05-19 | 2024-07-30 | 荣耀终端有限公司 | 多设备日志上报的方法和系统 |
CN117560306B (zh) * | 2024-01-11 | 2024-04-02 | 腾讯科技(深圳)有限公司 | 一种丢包上报方法、网络交换机和相关装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005321910A (ja) * | 2004-05-07 | 2005-11-17 | Softbank Bb Corp | ログデータ管理システム、方法、及びプログラム |
CN103312544A (zh) * | 2013-06-14 | 2013-09-18 | 青岛海信传媒网络技术有限公司 | 一种控制终端上报日志文件的方法、设备和系统 |
WO2016180265A1 (zh) * | 2015-05-13 | 2016-11-17 | 阿里巴巴集团控股有限公司 | 日志事件处理方法和装置 |
CN106649071A (zh) * | 2016-12-30 | 2017-05-10 | 广州华多网络科技有限公司 | 进程内部日志上报的方法和装置 |
WO2017154844A1 (ja) * | 2016-03-07 | 2017-09-14 | 日本電信電話株式会社 | 分析装置、分析方法および分析プログラム |
CN107248927A (zh) * | 2017-05-02 | 2017-10-13 | 华为技术有限公司 | 故障定位模型的生成方法、故障定位方法和装置 |
CN109815124A (zh) * | 2018-12-20 | 2019-05-28 | 交控科技股份有限公司 | 基于mbse的联锁功能缺陷分析的方法及装置、联锁系统 |
CN110505081A (zh) * | 2019-07-15 | 2019-11-26 | 惠州市德赛西威汽车电子股份有限公司 | 一种节省流量的异常日志上传、采集方法与处理系统 |
CN110865884A (zh) * | 2019-09-30 | 2020-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
CN111352763A (zh) * | 2020-03-11 | 2020-06-30 | Oppo(重庆)智能科技有限公司 | 信息处理方法及相关产品 |
CN111427780A (zh) * | 2020-03-10 | 2020-07-17 | 畅捷通信息技术股份有限公司 | 函数信息的追踪方法、装置和计算机可读存储介质 |
CN111538704A (zh) * | 2020-03-26 | 2020-08-14 | 平安科技(深圳)有限公司 | 日志优化方法、装置、设备及可读存储介质 |
WO2020173377A1 (zh) * | 2019-02-28 | 2020-09-03 | 华为技术有限公司 | 一种日志信息生成方法、装置及电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10592521B2 (en) * | 2015-04-03 | 2020-03-17 | Oracle International Corporation | Method and system for implementing target model configuration metadata for a log analytics system |
JP2019061458A (ja) * | 2017-09-26 | 2019-04-18 | 京セラドキュメントソリューションズ株式会社 | 電子機器およびログアプリケーション |
US20190108112A1 (en) * | 2017-10-05 | 2019-04-11 | Hcl Technologies Limited | System and method for generating a log analysis report from a set of data sources |
US10607425B2 (en) * | 2018-01-31 | 2020-03-31 | TrueLite Trace, Inc. | Vehicle electronic logging device (ELD) hour-of-service (HoS) audit and correction guidance system and method of operating thereof |
-
2020
- 2020-09-21 CN CN202010995194.9A patent/CN114257502B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005321910A (ja) * | 2004-05-07 | 2005-11-17 | Softbank Bb Corp | ログデータ管理システム、方法、及びプログラム |
CN103312544A (zh) * | 2013-06-14 | 2013-09-18 | 青岛海信传媒网络技术有限公司 | 一种控制终端上报日志文件的方法、设备和系统 |
WO2016180265A1 (zh) * | 2015-05-13 | 2016-11-17 | 阿里巴巴集团控股有限公司 | 日志事件处理方法和装置 |
WO2017154844A1 (ja) * | 2016-03-07 | 2017-09-14 | 日本電信電話株式会社 | 分析装置、分析方法および分析プログラム |
CN106649071A (zh) * | 2016-12-30 | 2017-05-10 | 广州华多网络科技有限公司 | 进程内部日志上报的方法和装置 |
CN107248927A (zh) * | 2017-05-02 | 2017-10-13 | 华为技术有限公司 | 故障定位模型的生成方法、故障定位方法和装置 |
CN109815124A (zh) * | 2018-12-20 | 2019-05-28 | 交控科技股份有限公司 | 基于mbse的联锁功能缺陷分析的方法及装置、联锁系统 |
WO2020173377A1 (zh) * | 2019-02-28 | 2020-09-03 | 华为技术有限公司 | 一种日志信息生成方法、装置及电子设备 |
CN110505081A (zh) * | 2019-07-15 | 2019-11-26 | 惠州市德赛西威汽车电子股份有限公司 | 一种节省流量的异常日志上传、采集方法与处理系统 |
CN110865884A (zh) * | 2019-09-30 | 2020-03-06 | 华为技术有限公司 | 一种内存管理方法及装置 |
CN111427780A (zh) * | 2020-03-10 | 2020-07-17 | 畅捷通信息技术股份有限公司 | 函数信息的追踪方法、装置和计算机可读存储介质 |
CN111352763A (zh) * | 2020-03-11 | 2020-06-30 | Oppo(重庆)智能科技有限公司 | 信息处理方法及相关产品 |
CN111538704A (zh) * | 2020-03-26 | 2020-08-14 | 平安科技(深圳)有限公司 | 日志优化方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114257502A (zh) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113325941B (zh) | 屏下指纹显示方法及电子设备 | |
CN113254120B (zh) | 数据处理方法和相关装置 | |
CN113645341A (zh) | 电源键误触检测方法及电子设备 | |
CN114115512B (zh) | 信息显示方法、终端设备及计算机可读存储介质 | |
CN114257502B (zh) | 一种日志上报方法及装置 | |
US20240264882A1 (en) | Application running method and related device | |
CN116315667B (zh) | 数据传输方法、装置、设备及存储介质 | |
CN113934475B (zh) | 应用调用的分析方法及电子设备 | |
CN112835610A (zh) | 一种构建应用程序资源包的方法、构建装置及终端设备 | |
CN113656089B (zh) | 应用程序中的类验证方法和装置 | |
CN115904297A (zh) | 屏幕显示检测方法、电子设备及存储介质 | |
CN116049122B (zh) | 日志信息传输控制方法、电子设备和存储介质 | |
CN116048831B (zh) | 一种目标信号处理方法和电子设备 | |
CN111104209A (zh) | 一种处理任务的方法及相关设备 | |
CN116662150B (zh) | 应用启动耗时检测方法及相关装置 | |
WO2023051036A1 (zh) | 加载着色器的方法和装置 | |
CN114006969B (zh) | 一种窗口启动方法和电子设备 | |
CN116048629B (zh) | 系统服务切换方法及控制装置、电子设备和存储介质 | |
CN117130808B (zh) | 一种日志采集方法及电子设备 | |
WO2024131486A1 (zh) | 性能分析方法、可读存储介质、程序产品及电子设备 | |
CN117076284B (zh) | 页面加载时长的检测方法、设备及存储介质 | |
CN116389884B (zh) | 缩略图显示方法及终端设备 | |
CN116738073B (zh) | 常驻地的识别方法、设备及存储介质 | |
CN117667506A (zh) | 一种图库克隆方法、系统和电子设备 | |
CN118259803A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |