本发明涉及终端
技术领域:
:,尤指一种移动终端及其离线日志处理方法、计算机可读存储介质。
背景技术:
::目前,移动终端的离线日志(log)抓取功能在整个生产过程中都是默认关闭的。当需要跟踪或复现生产异常问题时,需要手动输入工程码,进入工程模式,进入离线log菜单界面,手动进行开启离线log后,才能启动离线log抓取功能;并且只有在用户手动关闭离线log功能后,才会把离线log批量拷贝到用户数据(userdata)分区中,容易造成有效log的丢失。由于离线log功能默认是关闭的,当在生产过程中遇到生产问题时,无法及时的获取有效log。为了复现并抓取离线log,必须手动开启离线log功能并重复执行出现问题时的生产流程。因此,现有的离线日志处理方法,既浪费生产工时和成本,也影响问题定位的速度和准确性;如果是严重问题,甚至可能会造成停线停产,造成生产工时和生产成本的严重浪费;当所述生产问题为概率性事件时,需要多次重复生产流程才能复现,并且通常需要多位研发同事跟线分析定位,导致软件研发成本的浪费。技术实现要素:为了解决上述技术问题,本发明提供了一种移动终端及其离线日志处理方法、计算机可读存储介质,能够提升生产问题分析定位的效率、降低研发成本。为了达到本发明目的,本发明实施例的技术方案是这样实现的:本发明实施例提供了一种移动终端的离线日志处理方法,所述方法包括:移动终端检测自身是否进入工程模式或进行恢复出厂设置操作;如果所述移动终端检测到自身进入工程模式,则:所述移动终端检测离线日志是否已开启;如果离线日志已开启,则所述移动终端抓取离线日志并将抓取到的离线日志写入内存缓存或临时文件;所述移动终端将所述内存缓存或临时文件中的离线日志保存至用户数据分区中,以免所述内存缓存或临时文件到达最大上限时,内存缓存或临时文件中的离线日志被移动终端最新抓取的离线日志所覆盖;如果移动终端检测到自身进行恢复出厂设置操作,则:所述移动终端关闭离线日志。进一步地,所述移动终端将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤,具体包括:所述移动终端周期性地将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中。进一步地,所述移动终端将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤,具体包括:所述移动终端预先设置离线日志上限值;当所述内存缓存或所述临时文件中的离线日志的大小到达所述离线日志上限值时,所述移动终端将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中。进一步地,在所述移动终端将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤之后且所述移动终端检测到自身进行恢复出厂设置操作的步骤之前,所述方法还包括:所述移动终端检测自身是否发生异常事件;当所述移动终端检测到自身发生异常事件时,将所述用户数据分区中的所述离线日志上传至预先设置的服务器。进一步地,所述异常事件包括应用程序无响应异常、程序崩溃异常、重启异常和死机异常。本发明实施例还提供了一种移动终端,所述移动终端包括处理器、存储器及通信总线,所述处理器和所述存储器通过所述通信总线通信连接;其中,所述存储器用于存储离线日志处理程序;所述处理器用于调用所述存储器中存储的离线日志处理程序,并执行以下步骤:检测移动终端是否进入工程模式或进行恢复出厂设置操作;如果检测到移动终端进入工程模式,则:检测离线日志是否已开启;如果离线日志已开启,则抓取离线日志并将抓取到的离线日志写入内存缓存或临时文件;将所述内存缓存或临时文件中的离线日志保存至用户数据分区中,以免所述内存缓存或临时文件到达最大上限时,内存缓存或临时文件中的离线日志被移动终端最新抓取的离线日志所覆盖;如果检测到移动终端进行恢复出厂设置操作,则关闭离线日志。进一步地,所述处理器用于将所述内存缓存或临时文件中的离线日志保存至用户数据分区中具体包括:周期性地将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中。进一步地,所述处理器用于将所述内存缓存或临时文件中的离线日志保存至用户数据分区中具体包括:当所述内存缓存或所述临时文件中的离线日志的大小到达预先设置的离线日志上限值时,将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现以下步骤:检测移动终端是否进入工程模式或进行恢复出厂设置操作;如果检测到移动终端进入工程模式,则:检测离线日志是否已开启;如果离线日志已开启,则抓取离线日志并将抓取到的离线日志写入内存缓存或临时文件;将所述内存缓存或临时文件中的离线日志保存至用户数据分区中,以免所述内存缓存或临时文件到达最大上限时,内存缓存或临时文件中的离线日志被移动终端最新抓取的离线日志所覆盖;如果检测到移动终端进行恢复出厂设置操作,则关闭离线日志。进一步地,在所述将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤之后,且所述检测到移动终端进行恢复出厂设置操作的步骤之前,所述一个或者多个程序还可被所述一个或者多个处理器执行,以实现以下步骤:检测所述移动终端是否发生异常事件;当所述移动终端发生异常事件时,将所述用户数据分区中的离线日志上传至预先设置的服务器。本发明提出的移动终端及其离线日志处理方法、计算机可读存储介质,通过在移动终端进入工程模式时,抓取离线日志并将抓取的离线日志保存至用户数据分区中,并在移动终端恢复出厂设置时,关闭离线日志抓取功能,当遇到生产问题时,可直接获取用户数据分区中的离线日志,提升了生产问题分析定位的效率,降低了问题复现和跟进分析所需的生产工时和人力成本。附图说明此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:图1为实现本发明各个实施例的移动终端的硬件结构示意图;图2为支持本发明移动终端之间进行通信的通信系统的示意图;图3为本发明实施例的一种移动终端的离线日志处理方法的流程示意图;图4为本发明实施例的一种移动终端的结构示意图。具体实施方式下面将结合附图及实施例对本发明的技术方案进行更详细的说明。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(personaldigitalassistant,pda)、便捷式媒体播放器(portablemediaplayer,pmp)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字tv、台式计算机等固定终端。后续描述中将以移动终端为例进行说明,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。请参阅图1,其为实现本发明各个实施例的一种移动终端的硬件结构示意图,该移动终端100可以包括:rf(radiofrequency,射频)单元101、wifi模块102、音频输出单元103、a/v(音频/视频)输入单元104、传感器105、显示单元106、用户输入单元107、接口单元108、存储器109、处理器110、以及电源111等部件。本领域技术人员可以理解,图1中示出的移动终端结构并不构成对移动终端的限定,移动终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。下面结合图1对移动终端的各个部件进行具体的介绍:射频单元101可用于收发信息或通话过程中,信号的接收和发送,具体的,将基站的下行信息接收后,给处理器110处理;另外,将上行的数据发送给基站。通常,射频单元101包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元101还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于gsm(globalsystemofmobilecommunication,全球移动通讯系统)、gprs(generalpacketradioservice,通用分组无线服务)、cdma2000(codedivisionmultipleaccess2000,码分多址2000)、wcdma(widebandcodedivisionmultipleaccess,宽带码分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,时分同步码分多址)、fdd-lte(frequencydivisionduplexing-longtermevolution,频分双工长期演进)和tdd-lte(timedivisionduplexing-longtermevolution,分时双工长期演进)等。wifi属于短距离无线传输技术,移动终端通过wifi模块102可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了wifi模块102,但是可以理解的是,其并不属于移动终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。音频输出单元103可以在移动终端100处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将射频单元101或wifi模块102接收的或者在存储器109中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元103还可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元103可以包括扬声器、蜂鸣器等等。a/v输入单元104用于接收音频或视频信号。a/v输入单元104可以包括图形处理器(graphicsprocessingunit,gpu)1041和麦克风1042,图形处理器1041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元106上。经图形处理器1041处理后的图像帧可以存储在存储器109(或其它存储介质)中或者经由射频单元101或wifi模块102进行发送。麦克风1042可以在电话通话模式、记录模式、语音识别模式等等运行模式中经由麦克风1042接收声音(音频数据),并且能够将这样的声音处理为音频数据。处理后的音频(语音)数据可以在电话通话模式的情况下转换为可经由射频单元101发送到移动通信基站的格式输出。麦克风1042可以实施各种类型的噪声消除(或抑制)算法以消除(或抑制)在接收和发送音频信号的过程中产生的噪声或者干扰。移动终端100还包括至少一种传感器105,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1061的亮度,接近传感器可在移动终端100移动到耳边时,关闭显示面板1061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。显示单元106用于显示由用户输入的信息或提供给用户的信息。显示单元106可包括显示面板1061,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板1061。用户输入单元107可用于接收输入的数字或字符信息,以及产生与移动终端的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元107可包括触控面板1071以及其他输入设备1072。触控面板1071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1071上或在触控面板1071附近的操作),并根据预先设定的程式驱动相应的连接装置。触控面板1071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器110,并能接收处理器110发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1071。除了触控面板1071,用户输入单元107还可以包括其他输入设备1072。具体地,其他输入设备1072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种,具体此处不做限定。进一步的,触控面板1071可覆盖显示面板1061,当触控面板1071检测到在其上或附近的触摸操作后,传送给处理器110以确定触摸事件的类型,随后处理器110根据触摸事件的类型在显示面板1061上提供相应的视觉输出。虽然在图1中,触控面板1071与显示面板1061是作为两个独立的部件来实现移动终端的输入和输出功能,但是在某些实施例中,可以将触控面板1071与显示面板1061集成而实现移动终端的输入和输出功能,具体此处不做限定。接口单元108用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(i/o)端口、视频i/o端口、耳机端口等等。接口单元108可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端100和外部装置之间传输数据。存储器109可用于存储软件程序以及各种数据。存储器109可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器109可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。处理器110是移动终端的控制中心,利用各种接口和线路连接整个移动终端的各个部分,通过运行或执行存储在存储器109内的软件程序和/或模块,以及调用存储在存储器109内的数据,执行移动终端的各种功能和处理数据,从而对移动终端进行整体监控。处理器110可包括一个或多个处理单元;优选的,处理器110可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器110中。移动终端100还可以包括给各个部件供电的电源111(比如电池),优选的,电源111可以通过电源管理系统与处理器110逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。尽管图1未示出,移动终端100还可以包括蓝牙模块等,在此不再赘述。为了便于理解本发明实施例,下面对本发明的移动终端所基于的通信网络系统进行描述。请参阅图2,图2为本发明实施例提供的一种通信网络系统架构图,该通信网络系统为通用移动通信技术的lte系统,该lte系统包括依次通讯连接的ue(userequipment,用户设备)201,e-utran(evolvedumtsterrestrialradioaccessnetwork,演进式umts陆地无线接入网)202,epc(evolvedpacketcore,演进式分组核心网)203和运营商的ip业务204。具体地,ue201可以是上述终端100,此处不再赘述。e-utran202包括enodeb2021和其它enodeb2022等。其中,enodeb2021可以通过回程(backhaul)(例如x2接口)与其它enodeb2022连接,enodeb2021连接到epc203,enodeb2021可以提供ue201到epc203的接入。epc203可以包括mme(mobilitymanagemententity,移动性管理实体)2031,hss(homesubscriberserver,归属用户服务器)2032,其它mme2033,sgw(servinggateway,服务网关)2034,pgw(pdngateway,分组数据网络网关)2035和pcrf(policyandchargingrulesfunction,政策和资费功能实体)2036等。其中,mme2031是处理ue201和epc203之间信令的控制节点,提供承载和连接管理。hss2032用于提供一些寄存器来管理诸如归属位置寄存器(图中未示)之类的功能,并且保存有一些有关服务特征、数据速率等用户专用的信息。所有用户数据都可以通过sgw2034进行发送,pgw2035可以提供ue201的ip地址分配以及其它功能,pcrf2036是业务数据流和ip承载资源的策略与计费控制策略决策点,它为策略与计费执行功能单元(图中未示)选择及提供可用的策略和计费控制决策。ip业务204可以包括因特网、内联网、ims(ipmultimediasubsystem,ip多媒体子系统)或其它ip业务等。虽然上述以lte系统为例进行了介绍,但本领域技术人员应当知晓,本发明不仅仅适用于lte系统,也可以适用于其他无线通信系统,例如gsm、cdma2000、wcdma、td-scdma以及未来新的网络系统等,此处不做限定。基于上述移动终端硬件结构以及通信网络系统,提出本发明方法各个实施例。参考图3,根据本发明实施例的一种移动终端的离线日志处理方法,包括如下步骤:步骤301:移动终端检测自身是否进入工程模式或进行恢复出厂设置操作;本实施例中,移动终端的类型可根据实际需要进行设置,例如,移动终端可为手机、平板电脑等,以下将以移动终端的系统为安卓(android)系统为例进行详细说明。本发明中所述的工程模式,指的是专业手机工程师调试用的一种模式。工程模式功能作为生产流程中检测硬件外设和查看生产相关信息的必备操作菜单和功能,几乎在所有生产流程中都会用到。但工程模式对普通用户来说,是不可见的,几乎所有的用户都不会关心和进入该模式。步骤302:如果所述移动终端检测到自身进入工程模式,则:所述移动终端检测离线日志是否已开启;可理解的是,在程序开发过程中,日志(log)是广泛使用的用来记录程序执行过程的机制。本发明中所述的离线日志,也可以称为生产日志,指的是移动终端产生的、供研发人员检查移动终端状态并进行问题定位的日志。可以通过设置日志的等级(如详细verbose,调试debug,信息info,告警warn,错误error)或日志的抓取范围(如显示屏相关日志)来配置抓取的离线日志的范围。步骤303:如果离线日志已开启,则所述移动终端抓取离线日志并将抓取到的离线日志写入内存缓存或临时文件;具体地,在步骤303中,所述离线日志可以由用户手动开启,也可以由工程模式自动开启。通过在移动终端进入工程模式时,开启移动终端的离线日志抓取功能,使得在生产过程中的大部分流程中,离线日志是打开的,从而可以及时抓取有效的离线日志。需要说明的是,在安卓系统中,移动终端产生的日志会同时存储于内存缓存和系统临时文件夹(默认为/dev/log)中,并且当产生的日志过多导致所述内存缓存或临时文件到达最大上限时,内存缓存或临时文件中现有的离线日志会被移动终端最新抓取的离线日志所覆盖。步骤304:所述移动终端将所述内存缓存或临时文件中的离线日志保存至用户数据分区中,以免所述内存缓存或临时文件到达最大上限时,内存缓存或临时文件中的离线日志被移动终端最新抓取的离线日志所覆盖;进一步地,所述步骤304具体包括:所述移动终端周期性地将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中,以免所述内存缓存或临时文件到达最大上限时,内存缓存或临时文件中的离线日志被移动终端最新抓取的离线日志所覆盖。在本发明一实施例中,所述移动终端可以以30秒为一个周期,周期性地将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中。进一步地,所述步骤304具体包括:所述移动终端预先设置离线日志上限值;当所述内存缓存或所述临时文件中的离线日志的大小到达所述离线日志上限值时,所述移动终端将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中。进一步地,在步骤304中,所述移动终端将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤之前,对所述离线日志进行打包压缩。在本发明一实施例中,在步骤304中,所述移动终端将所述内存缓存或临时文件中的离线日志保存至用户数据分区中时,生成的文件以当前时间戳和当前操作的菜单功能说明作为文件名标识符。在本发明一实施例中,在所述步骤304之后,所述方法还包括:所述移动终端检测自身是否退出工程模式;当移动终端检测到自身退出工程模式时,将内存缓存或临时文件中的离线日志保存至用户数据分区中。进一步地,在所述步骤304之后,所述方法还包括:所述移动终端检测自身是否发生异常事件;当移动终端检测到自身发生异常事件时,将用户数据分区中的日志上传至预先设置的服务器。具体地,所述异常事件包括应用程序无响应(applicationnotresponding,anr)异常、程序崩溃(即crash)异常、重启异常、死机异常等。重启异常、死机异常等是移动终端的系统常见的异常类型,当发生重启异常或死机异常等异常类型时,移动终端中android会对ro.bootmode,sys.android.reboot等系统属性进行设置,只要判断这些属性的值就可以判断android是否发生了重启、死机。anr异常、crash异常等是移动终端的应用程序中常见异常类型,由于activitymanagerservice是应用程序的核心管理模块,出现anr异常或crash异常时,activitymanagerservice会对出现anr异常或crash异常的应用进行相应的处理。即当发生异常事件时,移动终端将获取异常事件对应的log。进一步地,通过无线保真(wireless-fidelity,wifi)方式,将用户数据分区中的离线日志上传至预先设置的服务器。用户也可以通过usb(universalserialbus)存储设备拷贝的方式,将用户数据分区中的日志上传至预先设置的服务器。步骤305:如果移动终端检测到自身进行恢复出厂设置操作,则:所述移动终端关闭离线日志。需要说明的是,在移动终端用于生产发货的正式软件版本中,离线日志是不能默认开启的,因为离线日志打开不仅会导致移动终端功耗增大,还会导致系统兼容性认证无法通过,当离线日志堆积过多时,还会占用过多的系统内存和文件区,进而导致系统内存不足或系统空间不够用。同时,恢复出厂设置操作,是生产流程的每个阶段的最后一道工序,特别是进行样机出厂包装前的最后一道工序。因此,通过在移动终端恢复出厂设置时,关闭离线日志抓取功能,可以保证到达用户手中的正式软件版本中,离线日志已经被关闭。进一步地,在所述步骤305之后,所述方法还包括:移动终端每次开机时,检测自身的离线日志是否已关闭;如果没有关闭,关闭离线日志,以减少离线日志意外开启对用户造成影响的风险。在本发明一实施例中,在所述步骤305之后,所述方法还包括:移动终端升级之后首次开机时,检测自身的离线日志是否已关闭;如果没有关闭,关闭离线日志。具体地,所述的移动终端升级包括通过空中软件升级(firmwareover-the-air,fota)或通过sd(securedigital)存储卡本地升级。参照图4,本发明实施例还提供了一种移动终端400,所述移动终端400包括处理器401、存储器402及通信总线403,所述处理器401和所述存储器402通过所述通信总线403通信连接;其中,所述存储器用于存储离线日志处理程序;所述处理器401用于调用所述存储器402中存储的离线日志处理程序,并执行以下步骤:检测移动终端是否进入工程模式或进行恢复出厂设置操作;如果检测到移动终端进入工程模式,则:检测离线日志是否已开启;如果离线日志已开启,则抓取离线日志并将抓取到的离线日志写入内存缓存或临时文件;将所述内存缓存或临时文件中的离线日志保存至用户数据分区中,以免所述内存缓存或临时文件到达最大上限时,内存缓存或临时文件中的离线日志被移动终端最新抓取的离线日志所覆盖;如果检测到移动终端进行恢复出厂设置操作,则关闭离线日志。本实施例中,移动终端的类型可根据实际需要进行设置,例如,移动终端可为手机、平板电脑等,以下将以移动终端的系统为安卓(android)系统为例进行详细说明。本发明中所述的工程模式,指的是专业手机工程师调试用的一种模式。工程模式功能作为生产流程中检测硬件外设和查看生产相关信息的必备操作菜单和功能,几乎在所有生产流程中都会用到。但工程模式对普通用户来说,是不可见的,几乎所有的用户都不会关心和进入该模式。可理解的是,在程序开发过程中,日志(log)是广泛使用的用来记录程序执行过程的机制。本发明中所述的离线日志,也可以称为生产日志,指的是移动终端产生的、供研发人员检查移动终端状态并进行问题定位的日志。可以通过设置日志的等级(如详细verbose,调试debug,信息info,告警warn,错误error)或日志的抓取范围(如显示屏相关日志)来配置抓取的离线日志的范围。具体地,所述离线日志可以由用户手动开启,也可以由工程模式自动开启。通过在移动终端进入工程模式时,开启移动终端的离线日志,使得在生产过程中的大部分流程中,离线日志是打开的,从而可以及时抓取有效的离线日志。需要说明的是,在安卓系统中,移动终端产生的日志会同时存储于内存缓存和系统临时文件夹(默认为/dev/log)中,并且当产生的日志过多导致所述内存缓存或临时文件到达最大上限时,内存缓存或临时文件中现有的离线日志会被移动终端最新抓取的离线日志所覆盖。进一步地,所述处理器401用于将所述内存缓存或临时文件中的离线日志保存至用户数据分区中,具体包括:周期性地将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中。在本发明一实施例中,可以以30秒为一个周期,周期性地将内存缓存或临时文件中的离线日志保存至用户数据分区中。进一步地,所述处理器401用于将所述内存缓存或临时文件中的离线日志保存至用户数据分区中,具体包括:预先设置离线日志上限值;当所述内存缓存或所述临时文件中的离线日志的大小到达所述离线日志上限值时,将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中。在本发明一实施例中,在所述将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤之前,所述处理器401还用于调用所述离线日志处理程序,并执行以下步骤:对所述离线日志进行打包压缩。在本发明一实施例中,在所述将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤中,所述用户数据分区中生成的文件,以当前时间戳和当前操作的菜单功能说明作为文件名标识符。在本发明一实施例中,在所述将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤之后,所述处理器401还用于调用所述离线日志处理程序,并执行以下步骤:检测移动终端是否退出工程模式;当检测到移动终端退出工程模式时,将内存缓存或临时文件中的日志保存至用户数据分区中。在本发明一实施例中,在所述将内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤之后,所述处理器401还用于调用所述离线日志处理程序,并执行以下步骤:检测移动终端是否发生异常事件;当检测到移动终端发生异常事件时,将用户数据分区中的日志上传至预先设置的服务器。具体地,所述异常事件包括应用程序无响应(applicationnotresponding,anr)异常、程序崩溃(即crash)异常、重启异常、死机异常等。重启异常、死机异常等是移动终端的系统常见的异常类型,当发生重启异常或死机异常等异常类型时,移动终端中android会对ro.bootmode,sys.android.reboot等系统属性进行设置,只要判断这些属性的值就可以判断android是否发生了重启、死机。anr异常、crash异常等是移动终端的应用程序中常见异常类型,由于activitymanagerservice是应用程序的核心管理模块,出现anr异常或crash异常时,activitymanagerservice会对出现anr异常或crash异常的应用进行相应的处理。即当发生异常事件时,移动终端将获取异常事件对应的log。进一步地,通过无线保真(wireless-fidelity,wifi)方式,将所述用户数据分区中的离线日志上传至所述预先设置的服务器。用户也可以通过usb(universalserialbus)存储设备拷贝的方式,将用户数据分区中的日志上传至预先设置的服务器。需要说明的是,在移动终端用于生产发货的正式软件版本中,离线日志是不能默认开启的,因为离线日志打开不仅会导致移动终端功耗增大,还会导致系统兼容性认证无法通过,当离线日志堆积过多时,还会占用过多的系统内存和文件区,进而导致系统内存不足或系统空间不够用。同时,恢复出厂设置操作,是生产流程的每个阶段的最后一道工序,特别是进行样机出厂包装前的最后一道工序。因此,通过在移动终端恢复出厂设置时,关闭离线日志抓取功能,可以保证到达用户手中的正式软件版本中,离线日志已经被关闭。在本发明一实施例中,在所述关闭离线日志的步骤之后,所述处理器401还用于调用所述离线日志处理程序,并执行以下步骤:每次移动终端开机时,检测移动终端的离线日志是否已关闭;如果没有关闭,关闭离线日志,以减少离线日志意外开启对用户造成影响的风险。在本发明一实施例中,在所述关闭离线日志的步骤之后,所述处理器401还用于调用所述离线日志处理程序,并执行以下步骤:移动终端升级之后首次开机时,检测移动终端的离线日志是否已关闭;如果没有关闭,关闭离线日志。具体地,所述的移动终端升级包括通过空中软件升级(firmwareover-the-air,fota)或通过sd(securedigital)存储卡本地升级。本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现以下步骤:检测移动终端是否进入工程模式或进行恢复出厂设置操作;如果检测到移动终端进入工程模式,则:检测离线日志是否已开启;如果离线日志已开启,则抓取离线日志并将抓取到的离线日志写入内存缓存或临时文件;将所述内存缓存或临时文件中的离线日志保存至用户数据分区中,以免所述内存缓存或临时文件到达最大上限时,内存缓存或临时文件中的离线日志被移动终端最新抓取的离线日志所覆盖;如果检测到移动终端进行恢复出厂设置操作,则关闭离线日志。可理解的是,在程序开发过程中,日志(log)是广泛使用的用来记录程序执行过程的机制。本发明中所述的离线日志,也可以称为生产日志,指的是移动终端产生的、供研发人员检查移动终端状态并进行问题定位的日志。可以通过设置日志的等级(如详细verbose,调试debug,信息info,告警warn,错误error)或日志的抓取范围(如显示屏相关日志)来配置抓取的离线日志的范围。本发明中所述的工程模式,指的是专业手机工程师调试用的一种模式。工程模式功能作为生产流程中检测硬件外设和查看生产相关信息的必备操作菜单和功能,几乎在所有生产流程中都会用到。但工程模式对普通用户来说,是不可见的,几乎所有的用户都不会关心和进入该模式。所述离线日志可以由用户手动开启,也可以由工程模式自动开启。通过在移动终端进入工程模式时,开启移动终端的离线日志,使得在生产过程中的大部分流程中,离线日志是打开的,从而可以及时抓取有效的离线日志。需要说明的是,在安卓系统中,移动终端产生的日志会同时存储于内存缓存和系统临时文件夹(默认为/dev/log)中,并且当产生的日志过多导致所述内存缓存或临时文件到达最大上限时,内存缓存或临时文件中现有的离线日志会被移动终端最新抓取的离线日志所覆盖。进一步地,所述将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤,具体包括:周期性地将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中。在本发明一实施例中,所述一个或者多个程序可以以30秒为一个周期,周期性地将内存缓存或临时文件中的离线日志保存至用户数据分区中。进一步地,所述将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤,具体包括:预先设置离线日志上限值;当所述内存缓存或所述临时文件中的离线日志的大小到达所述离线日志上限值时,将所述内存缓存或所述临时文件中的离线日志保存至所述用户数据分区中。在本发明一实施例中,在所述将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤之前,所述处理器还用于执行所述离线日志处理程序,以实现以下步骤:对所述离线日志进行打包压缩。在本发明一实施例中,在所述将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤中,所述用户数据分区中生成的文件,以当前时间戳和当前操作的菜单功能说明作为文件名标识符。在本发明一实施例中,在所述将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤之后,所述一个或者多个程序还可被所述一个或者多个处理器执行,以实现以下步骤:检测移动终端是否退出工程模式;当检测到移动终端退出工程模式时,将内存缓存或临时文件中的离线日志保存至用户数据分区中。在本发明一实施例中,在所述将所述内存缓存或临时文件中的离线日志保存至用户数据分区中的步骤之后,所述一个或者多个程序还可被所述一个或者多个处理器执行,以实现以下步骤:检测移动终端是否发生异常事件;当检测到移动终端发生异常事件时,将用户数据分区中的离线日志上传至预先设置的服务器。具体地,所述异常事件包括应用程序无响应(applicationnotresponding,anr)异常、程序崩溃(即crash)异常、重启异常、死机异常等。重启异常、死机异常等是移动终端的系统常见的异常类型,当发生重启异常或死机异常等异常类型时,移动终端中android会对ro.bootmode,sys.android.reboot等系统属性进行设置,只要判断这些属性的值就可以判断android是否发生了重启、死机。anr异常、crash异常等是移动终端的应用程序中常见异常类型,由于activitymanagerservice是应用程序的核心管理模块,出现anr异常或crash异常时,activitymanagerservice会对出现anr异常或crash异常的应用进行相应的处理。即当发生异常事件时,移动终端将获取异常事件对应的log。进一步地,所述一个或者多个程序通过无线保真(wireless-fidelity,wifi)方式,将所述用户数据分区中的离线日志上传至所述预先设置的服务器。用户也可以通过usb(universalserialbus)存储设备拷贝的方式,将用户数据分区中的日志上传至预先设置的服务器。需要说明的是,在移动终端用于生产发货的正式软件版本中,离线日志是不能默认开启的,因为离线日志打开不仅会导致移动终端功耗增大,还会导致系统兼容性认证无法通过,当离线日志堆积过多时,还会占用过多的系统内存和文件区,进而导致系统内存不足或系统空间不够用。同时,恢复出厂设置操作,是生产流程的每个阶段的最后一道工序,特别是进行样机出厂包装前的最后一道工序。因此,通过在移动终端恢复出厂设置时,关闭离线日志抓取功能,可以保证到达用户手中的正式软件版本中,离线日志已经被关闭。在本发明一实施例中,在所述关闭离线日志的步骤之后,所述一个或者多个程序还可被所述一个或者多个处理器执行,以实现以下步骤:移动终端每次开机时,检测移动终端的离线日志是否已关闭;如果没有关闭,关闭离线日志,以减少离线日志意外开启对用户造成影响的风险。在本发明一实施例中,在所述关闭离线日志的步骤之后,所述一个或者多个程序还可被所述一个或者多个处理器执行,以实现以下步骤:移动终端升级之后首次开机时,检测移动终端的离线日志是否已关闭;如果没有关闭,关闭离线日志。具体地,所述的移动终端升级包括通过空中软件升级(firmwareover-the-air,fota)或通过sd(securedigital)存储卡本地升级。本发明的移动终端及其离线日志处理方法、计算机可读存储介质,通过在移动终端进入工程模式时,抓取离线日志并将抓取的离线日志保存至用户数据分区中,并在移动终端恢复出厂设置时,关闭离线日志抓取功能,当遇到生产问题时,可直接获取用户数据分区中的离线日志,能够提升生产问题分析定位的效率,降低问题复现和跟进分析所需的生产工时和人力成本。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,这些均属于本发明的保护之内。当前第1页12当前第1页12