本發(fā)明涉及終端
技術領域:
:,尤指一種移動終端及其離線日志處理方法、計算機可讀存儲介質(zhì)。
背景技術:
::目前,移動終端的離線日志(log)抓取功能在整個生產(chǎn)過程中都是默認關閉的。當需要跟蹤或復現(xiàn)生產(chǎn)異常問題時,需要手動輸入工程碼,進入工程模式,進入離線log菜單界面,手動進行開啟離線log后,才能啟動離線log抓取功能;并且只有在用戶手動關閉離線log功能后,才會把離線log批量拷貝到用戶數(shù)據(jù)(userdata)分區(qū)中,容易造成有效log的丟失。由于離線log功能默認是關閉的,當在生產(chǎn)過程中遇到生產(chǎn)問題時,無法及時的獲取有效log。為了復現(xiàn)并抓取離線log,必須手動開啟離線log功能并重復執(zhí)行出現(xiàn)問題時的生產(chǎn)流程。因此,現(xiàn)有的離線日志處理方法,既浪費生產(chǎn)工時和成本,也影響問題定位的速度和準確性;如果是嚴重問題,甚至可能會造成停線停產(chǎn),造成生產(chǎn)工時和生產(chǎn)成本的嚴重浪費;當所述生產(chǎn)問題為概率性事件時,需要多次重復生產(chǎn)流程才能復現(xiàn),并且通常需要多位研發(fā)同事跟線分析定位,導致軟件研發(fā)成本的浪費。技術實現(xiàn)要素:為了解決上述技術問題,本發(fā)明提供了一種移動終端及其離線日志處理方法、計算機可讀存儲介質(zhì),能夠提升生產(chǎn)問題分析定位的效率、降低研發(fā)成本。為了達到本發(fā)明目的,本發(fā)明實施例的技術方案是這樣實現(xiàn)的:本發(fā)明實施例提供了一種移動終端的離線日志處理方法,所述方法包括:移動終端檢測自身是否進入工程模式或進行恢復出廠設置操作;如果所述移動終端檢測到自身進入工程模式,則:所述移動終端檢測離線日志是否已開啟;如果離線日志已開啟,則所述移動終端抓取離線日志并將抓取到的離線日志寫入內(nèi)存緩存或臨時文件;所述移動終端將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中,以免所述內(nèi)存緩存或臨時文件到達最大上限時,內(nèi)存緩存或臨時文件中的離線日志被移動終端最新抓取的離線日志所覆蓋;如果移動終端檢測到自身進行恢復出廠設置操作,則:所述移動終端關閉離線日志。進一步地,所述移動終端將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟,具體包括:所述移動終端周期性地將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中。進一步地,所述移動終端將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟,具體包括:所述移動終端預先設置離線日志上限值;當所述內(nèi)存緩存或所述臨時文件中的離線日志的大小到達所述離線日志上限值時,所述移動終端將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中。進一步地,在所述移動終端將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟之后且所述移動終端檢測到自身進行恢復出廠設置操作的步驟之前,所述方法還包括:所述移動終端檢測自身是否發(fā)生異常事件;當所述移動終端檢測到自身發(fā)生異常事件時,將所述用戶數(shù)據(jù)分區(qū)中的所述離線日志上傳至預先設置的服務器。進一步地,所述異常事件包括應用程序無響應異常、程序崩潰異常、重啟異常和死機異常。本發(fā)明實施例還提供了一種移動終端,所述移動終端包括處理器、存儲器及通信總線,所述處理器和所述存儲器通過所述通信總線通信連接;其中,所述存儲器用于存儲離線日志處理程序;所述處理器用于調(diào)用所述存儲器中存儲的離線日志處理程序,并執(zhí)行以下步驟:檢測移動終端是否進入工程模式或進行恢復出廠設置操作;如果檢測到移動終端進入工程模式,則:檢測離線日志是否已開啟;如果離線日志已開啟,則抓取離線日志并將抓取到的離線日志寫入內(nèi)存緩存或臨時文件;將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中,以免所述內(nèi)存緩存或臨時文件到達最大上限時,內(nèi)存緩存或臨時文件中的離線日志被移動終端最新抓取的離線日志所覆蓋;如果檢測到移動終端進行恢復出廠設置操作,則關閉離線日志。進一步地,所述處理器用于將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中具體包括:周期性地將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中。進一步地,所述處理器用于將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中具體包括:當所述內(nèi)存緩存或所述臨時文件中的離線日志的大小到達預先設置的離線日志上限值時,將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中。本發(fā)明實施例還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執(zhí)行,以實現(xiàn)以下步驟:檢測移動終端是否進入工程模式或進行恢復出廠設置操作;如果檢測到移動終端進入工程模式,則:檢測離線日志是否已開啟;如果離線日志已開啟,則抓取離線日志并將抓取到的離線日志寫入內(nèi)存緩存或臨時文件;將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中,以免所述內(nèi)存緩存或臨時文件到達最大上限時,內(nèi)存緩存或臨時文件中的離線日志被移動終端最新抓取的離線日志所覆蓋;如果檢測到移動終端進行恢復出廠設置操作,則關閉離線日志。進一步地,在所述將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟之后,且所述檢測到移動終端進行恢復出廠設置操作的步驟之前,所述一個或者多個程序還可被所述一個或者多個處理器執(zhí)行,以實現(xiàn)以下步驟:檢測所述移動終端是否發(fā)生異常事件;當所述移動終端發(fā)生異常事件時,將所述用戶數(shù)據(jù)分區(qū)中的離線日志上傳至預先設置的服務器。本發(fā)明提出的移動終端及其離線日志處理方法、計算機可讀存儲介質(zhì),通過在移動終端進入工程模式時,抓取離線日志并將抓取的離線日志保存至用戶數(shù)據(jù)分區(qū)中,并在移動終端恢復出廠設置時,關閉離線日志抓取功能,當遇到生產(chǎn)問題時,可直接獲取用戶數(shù)據(jù)分區(qū)中的離線日志,提升了生產(chǎn)問題分析定位的效率,降低了問題復現(xiàn)和跟進分析所需的生產(chǎn)工時和人力成本。附圖說明此處所說明的附圖用來提供對本發(fā)明的進一步理解,構成本申請的一部分,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:圖1為實現(xiàn)本發(fā)明各個實施例的移動終端的硬件結構示意圖;圖2為支持本發(fā)明移動終端之間進行通信的通信系統(tǒng)的示意圖;圖3為本發(fā)明實施例的一種移動終端的離線日志處理方法的流程示意圖;圖4為本發(fā)明實施例的一種移動終端的結構示意圖。具體實施方式下面將結合附圖及實施例對本發(fā)明的技術方案進行更詳細的說明。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身沒有特定的意義。因此,“模塊”、“部件”或“單元”可以混合地使用。終端可以以各種形式來實施。例如,本發(fā)明中描述的終端可以包括諸如手機、平板電腦、筆記本電腦、掌上電腦、個人數(shù)字助理(personaldigitalassistant,pda)、便捷式媒體播放器(portablemediaplayer,pmp)、導航裝置、可穿戴設備、智能手環(huán)、計步器等移動終端,以及諸如數(shù)字tv、臺式計算機等固定終端。后續(xù)描述中將以移動終端為例進行說明,本領域技術人員將理解的是,除了特別用于移動目的的元件之外,根據(jù)本發(fā)明的實施方式的構造也能夠應用于固定類型的終端。請參閱圖1,其為實現(xiàn)本發(fā)明各個實施例的一種移動終端的硬件結構示意圖,該移動終端100可以包括:rf(radiofrequency,射頻)單元101、wifi模塊102、音頻輸出單元103、a/v(音頻/視頻)輸入單元104、傳感器105、顯示單元106、用戶輸入單元107、接口單元108、存儲器109、處理器110、以及電源111等部件。本領域技術人員可以理解,圖1中示出的移動終端結構并不構成對移動終端的限定,移動終端可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。下面結合圖1對移動終端的各個部件進行具體的介紹:射頻單元101可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,具體的,將基站的下行信息接收后,給處理器110處理;另外,將上行的數(shù)據(jù)發(fā)送給基站。通常,射頻單元101包括但不限于天線、至少一個放大器、收發(fā)信機、耦合器、低噪聲放大器、雙工器等。此外,射頻單元101還可以通過無線通信與網(wǎng)絡和其他設備通信。上述無線通信可以使用任一通信標準或協(xié)議,包括但不限于gsm(globalsystemofmobilecommunication,全球移動通訊系統(tǒng))、gprs(generalpacketradioservice,通用分組無線服務)、cdma2000(codedivisionmultipleaccess2000,碼分多址2000)、wcdma(widebandcodedivisionmultipleaccess,寬帶碼分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,時分同步碼分多址)、fdd-lte(frequencydivisionduplexing-longtermevolution,頻分雙工長期演進)和tdd-lte(timedivisionduplexing-longtermevolution,分時雙工長期演進)等。wifi屬于短距離無線傳輸技術,移動終端通過wifi模塊102可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖1示出了wifi模塊102,但是可以理解的是,其并不屬于移動終端的必須構成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。音頻輸出單元103可以在移動終端100處于呼叫信號接收模式、通話模式、記錄模式、語音識別模式、廣播接收模式等等模式下時,將射頻單元101或wifi模塊102接收的或者在存儲器109中存儲的音頻數(shù)據(jù)轉(zhuǎn)換成音頻信號并且輸出為聲音。而且,音頻輸出單元103還可以提供與移動終端100執(zhí)行的特定功能相關的音頻輸出(例如,呼叫信號接收聲音、消息接收聲音等等)。音頻輸出單元103可以包括揚聲器、蜂鳴器等等。a/v輸入單元104用于接收音頻或視頻信號。a/v輸入單元104可以包括圖形處理器(graphicsprocessingunit,gpu)1041和麥克風1042,圖形處理器1041對在視頻捕獲模式或圖像捕獲模式中由圖像捕獲裝置(如攝像頭)獲得的靜態(tài)圖片或視頻的圖像數(shù)據(jù)進行處理。處理后的圖像幀可以顯示在顯示單元106上。經(jīng)圖形處理器1041處理后的圖像幀可以存儲在存儲器109(或其它存儲介質(zhì))中或者經(jīng)由射頻單元101或wifi模塊102進行發(fā)送。麥克風1042可以在電話通話模式、記錄模式、語音識別模式等等運行模式中經(jīng)由麥克風1042接收聲音(音頻數(shù)據(jù)),并且能夠?qū)⑦@樣的聲音處理為音頻數(shù)據(jù)。處理后的音頻(語音)數(shù)據(jù)可以在電話通話模式的情況下轉(zhuǎn)換為可經(jīng)由射頻單元101發(fā)送到移動通信基站的格式輸出。麥克風1042可以實施各種類型的噪聲消除(或抑制)算法以消除(或抑制)在接收和發(fā)送音頻信號的過程中產(chǎn)生的噪聲或者干擾。移動終端100還包括至少一種傳感器105,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板1061的亮度,接近傳感器可在移動終端100移動到耳邊時,關閉顯示面板1061和/或背光。作為運動傳感器的一種,加速計傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態(tài)的應用(比如橫豎屏切換、相關游戲、磁力計姿態(tài)校準)、振動識別相關功能(比如計步器、敲擊)等;至于手機還可配置的指紋傳感器、壓力傳感器、虹膜傳感器、分子傳感器、陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。顯示單元106用于顯示由用戶輸入的信息或提供給用戶的信息。顯示單元106可包括顯示面板1061,可以采用液晶顯示器(liquidcrystaldisplay,lcd)、有機發(fā)光二極管(organiclight-emittingdiode,oled)等形式來配置顯示面板1061。用戶輸入單元107可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與移動終端的用戶設置以及功能控制有關的鍵信號輸入。具體地,用戶輸入單元107可包括觸控面板1071以及其他輸入設備1072。觸控面板1071,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板1071上或在觸控面板1071附近的操作),并根據(jù)預先設定的程式驅(qū)動相應的連接裝置。觸控面板1071可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標,再送給處理器110,并能接收處理器110發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸控面板1071。除了觸控面板1071,用戶輸入單元107還可以包括其他輸入設備1072。具體地,其他輸入設備1072可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種,具體此處不做限定。進一步的,觸控面板1071可覆蓋顯示面板1061,當觸控面板1071檢測到在其上或附近的觸摸操作后,傳送給處理器110以確定觸摸事件的類型,隨后處理器110根據(jù)觸摸事件的類型在顯示面板1061上提供相應的視覺輸出。雖然在圖1中,觸控面板1071與顯示面板1061是作為兩個獨立的部件來實現(xiàn)移動終端的輸入和輸出功能,但是在某些實施例中,可以將觸控面板1071與顯示面板1061集成而實現(xiàn)移動終端的輸入和輸出功能,具體此處不做限定。接口單元108用作至少一個外部裝置與移動終端100連接可以通過的接口。例如,外部裝置可以包括有線或無線頭戴式耳機端口、外部電源(或電池充電器)端口、有線或無線數(shù)據(jù)端口、存儲卡端口、用于連接具有識別模塊的裝置的端口、音頻輸入/輸出(i/o)端口、視頻i/o端口、耳機端口等等。接口單元108可以用于接收來自外部裝置的輸入(例如,數(shù)據(jù)信息、電力等等)并且將接收到的輸入傳輸?shù)揭苿咏K端100內(nèi)的一個或多個元件或者可以用于在移動終端100和外部裝置之間傳輸數(shù)據(jù)。存儲器109可用于存儲軟件程序以及各種數(shù)據(jù)。存儲器109可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)手機的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器109可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。處理器110是移動終端的控制中心,利用各種接口和線路連接整個移動終端的各個部分,通過運行或執(zhí)行存儲在存儲器109內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器109內(nèi)的數(shù)據(jù),執(zhí)行移動終端的各種功能和處理數(shù)據(jù),從而對移動終端進行整體監(jiān)控。處理器110可包括一個或多個處理單元;優(yōu)選的,處理器110可集成應用處理器和調(diào)制解調(diào)處理器,其中,應用處理器主要處理操作系統(tǒng)、用戶界面和應用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器110中。移動終端100還可以包括給各個部件供電的電源111(比如電池),優(yōu)選的,電源111可以通過電源管理系統(tǒng)與處理器110邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。盡管圖1未示出,移動終端100還可以包括藍牙模塊等,在此不再贅述。為了便于理解本發(fā)明實施例,下面對本發(fā)明的移動終端所基于的通信網(wǎng)絡系統(tǒng)進行描述。請參閱圖2,圖2為本發(fā)明實施例提供的一種通信網(wǎng)絡系統(tǒng)架構圖,該通信網(wǎng)絡系統(tǒng)為通用移動通信技術的lte系統(tǒng),該lte系統(tǒng)包括依次通訊連接的ue(userequipment,用戶設備)201,e-utran(evolvedumtsterrestrialradioaccessnetwork,演進式umts陸地無線接入網(wǎng))202,epc(evolvedpacketcore,演進式分組核心網(wǎng))203和運營商的ip業(yè)務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,服務網(wǎng)關)2034,pgw(pdngateway,分組數(shù)據(jù)網(wǎng)絡網(wǎng)關)2035和pcrf(policyandchargingrulesfunction,政策和資費功能實體)2036等。其中,mme2031是處理ue201和epc203之間信令的控制節(jié)點,提供承載和連接管理。hss2032用于提供一些寄存器來管理諸如歸屬位置寄存器(圖中未示)之類的功能,并且保存有一些有關服務特征、數(shù)據(jù)速率等用戶專用的信息。所有用戶數(shù)據(jù)都可以通過sgw2034進行發(fā)送,pgw2035可以提供ue201的ip地址分配以及其它功能,pcrf2036是業(yè)務數(shù)據(jù)流和ip承載資源的策略與計費控制策略決策點,它為策略與計費執(zhí)行功能單元(圖中未示)選擇及提供可用的策略和計費控制決策。ip業(yè)務204可以包括因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、ims(ipmultimediasubsystem,ip多媒體子系統(tǒng))或其它ip業(yè)務等。雖然上述以lte系統(tǒng)為例進行了介紹,但本領域技術人員應當知曉,本發(fā)明不僅僅適用于lte系統(tǒng),也可以適用于其他無線通信系統(tǒng),例如gsm、cdma2000、wcdma、td-scdma以及未來新的網(wǎng)絡系統(tǒng)等,此處不做限定。基于上述移動終端硬件結構以及通信網(wǎng)絡系統(tǒng),提出本發(fā)明方法各個實施例。參考圖3,根據(jù)本發(fā)明實施例的一種移動終端的離線日志處理方法,包括如下步驟:步驟301:移動終端檢測自身是否進入工程模式或進行恢復出廠設置操作;本實施例中,移動終端的類型可根據(jù)實際需要進行設置,例如,移動終端可為手機、平板電腦等,以下將以移動終端的系統(tǒng)為安卓(android)系統(tǒng)為例進行詳細說明。本發(fā)明中所述的工程模式,指的是專業(yè)手機工程師調(diào)試用的一種模式。工程模式功能作為生產(chǎn)流程中檢測硬件外設和查看生產(chǎn)相關信息的必備操作菜單和功能,幾乎在所有生產(chǎn)流程中都會用到。但工程模式對普通用戶來說,是不可見的,幾乎所有的用戶都不會關心和進入該模式。步驟302:如果所述移動終端檢測到自身進入工程模式,則:所述移動終端檢測離線日志是否已開啟;可理解的是,在程序開發(fā)過程中,日志(log)是廣泛使用的用來記錄程序執(zhí)行過程的機制。本發(fā)明中所述的離線日志,也可以稱為生產(chǎn)日志,指的是移動終端產(chǎn)生的、供研發(fā)人員檢查移動終端狀態(tài)并進行問題定位的日志??梢酝ㄟ^設置日志的等級(如詳細verbose,調(diào)試debug,信息info,告警warn,錯誤error)或日志的抓取范圍(如顯示屏相關日志)來配置抓取的離線日志的范圍。步驟303:如果離線日志已開啟,則所述移動終端抓取離線日志并將抓取到的離線日志寫入內(nèi)存緩存或臨時文件;具體地,在步驟303中,所述離線日志可以由用戶手動開啟,也可以由工程模式自動開啟。通過在移動終端進入工程模式時,開啟移動終端的離線日志抓取功能,使得在生產(chǎn)過程中的大部分流程中,離線日志是打開的,從而可以及時抓取有效的離線日志。需要說明的是,在安卓系統(tǒng)中,移動終端產(chǎn)生的日志會同時存儲于內(nèi)存緩存和系統(tǒng)臨時文件夾(默認為/dev/log)中,并且當產(chǎn)生的日志過多導致所述內(nèi)存緩存或臨時文件到達最大上限時,內(nèi)存緩存或臨時文件中現(xiàn)有的離線日志會被移動終端最新抓取的離線日志所覆蓋。步驟304:所述移動終端將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中,以免所述內(nèi)存緩存或臨時文件到達最大上限時,內(nèi)存緩存或臨時文件中的離線日志被移動終端最新抓取的離線日志所覆蓋;進一步地,所述步驟304具體包括:所述移動終端周期性地將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中,以免所述內(nèi)存緩存或臨時文件到達最大上限時,內(nèi)存緩存或臨時文件中的離線日志被移動終端最新抓取的離線日志所覆蓋。在本發(fā)明一實施例中,所述移動終端可以以30秒為一個周期,周期性地將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中。進一步地,所述步驟304具體包括:所述移動終端預先設置離線日志上限值;當所述內(nèi)存緩存或所述臨時文件中的離線日志的大小到達所述離線日志上限值時,所述移動終端將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中。進一步地,在步驟304中,所述移動終端將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟之前,對所述離線日志進行打包壓縮。在本發(fā)明一實施例中,在步驟304中,所述移動終端將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中時,生成的文件以當前時間戳和當前操作的菜單功能說明作為文件名標識符。在本發(fā)明一實施例中,在所述步驟304之后,所述方法還包括:所述移動終端檢測自身是否退出工程模式;當移動終端檢測到自身退出工程模式時,將內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中。進一步地,在所述步驟304之后,所述方法還包括:所述移動終端檢測自身是否發(fā)生異常事件;當移動終端檢測到自身發(fā)生異常事件時,將用戶數(shù)據(jù)分區(qū)中的日志上傳至預先設置的服務器。具體地,所述異常事件包括應用程序無響應(applicationnotresponding,anr)異常、程序崩潰(即crash)異常、重啟異常、死機異常等。重啟異常、死機異常等是移動終端的系統(tǒng)常見的異常類型,當發(fā)生重啟異?;蛩罊C異常等異常類型時,移動終端中android會對ro.bootmode,sys.android.reboot等系統(tǒng)屬性進行設置,只要判斷這些屬性的值就可以判斷android是否發(fā)生了重啟、死機。anr異常、crash異常等是移動終端的應用程序中常見異常類型,由于activitymanagerservice是應用程序的核心管理模塊,出現(xiàn)anr異?;騝rash異常時,activitymanagerservice會對出現(xiàn)anr異?;騝rash異常的應用進行相應的處理。即當發(fā)生異常事件時,移動終端將獲取異常事件對應的log。進一步地,通過無線保真(wireless-fidelity,wifi)方式,將用戶數(shù)據(jù)分區(qū)中的離線日志上傳至預先設置的服務器。用戶也可以通過usb(universalserialbus)存儲設備拷貝的方式,將用戶數(shù)據(jù)分區(qū)中的日志上傳至預先設置的服務器。步驟305:如果移動終端檢測到自身進行恢復出廠設置操作,則:所述移動終端關閉離線日志。需要說明的是,在移動終端用于生產(chǎn)發(fā)貨的正式軟件版本中,離線日志是不能默認開啟的,因為離線日志打開不僅會導致移動終端功耗增大,還會導致系統(tǒng)兼容性認證無法通過,當離線日志堆積過多時,還會占用過多的系統(tǒng)內(nèi)存和文件區(qū),進而導致系統(tǒng)內(nèi)存不足或系統(tǒng)空間不夠用。同時,恢復出廠設置操作,是生產(chǎn)流程的每個階段的最后一道工序,特別是進行樣機出廠包裝前的最后一道工序。因此,通過在移動終端恢復出廠設置時,關閉離線日志抓取功能,可以保證到達用戶手中的正式軟件版本中,離線日志已經(jīng)被關閉。進一步地,在所述步驟305之后,所述方法還包括:移動終端每次開機時,檢測自身的離線日志是否已關閉;如果沒有關閉,關閉離線日志,以減少離線日志意外開啟對用戶造成影響的風險。在本發(fā)明一實施例中,在所述步驟305之后,所述方法還包括:移動終端升級之后首次開機時,檢測自身的離線日志是否已關閉;如果沒有關閉,關閉離線日志。具體地,所述的移動終端升級包括通過空中軟件升級(firmwareover-the-air,fota)或通過sd(securedigital)存儲卡本地升級。參照圖4,本發(fā)明實施例還提供了一種移動終端400,所述移動終端400包括處理器401、存儲器402及通信總線403,所述處理器401和所述存儲器402通過所述通信總線403通信連接;其中,所述存儲器用于存儲離線日志處理程序;所述處理器401用于調(diào)用所述存儲器402中存儲的離線日志處理程序,并執(zhí)行以下步驟:檢測移動終端是否進入工程模式或進行恢復出廠設置操作;如果檢測到移動終端進入工程模式,則:檢測離線日志是否已開啟;如果離線日志已開啟,則抓取離線日志并將抓取到的離線日志寫入內(nèi)存緩存或臨時文件;將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中,以免所述內(nèi)存緩存或臨時文件到達最大上限時,內(nèi)存緩存或臨時文件中的離線日志被移動終端最新抓取的離線日志所覆蓋;如果檢測到移動終端進行恢復出廠設置操作,則關閉離線日志。本實施例中,移動終端的類型可根據(jù)實際需要進行設置,例如,移動終端可為手機、平板電腦等,以下將以移動終端的系統(tǒng)為安卓(android)系統(tǒng)為例進行詳細說明。本發(fā)明中所述的工程模式,指的是專業(yè)手機工程師調(diào)試用的一種模式。工程模式功能作為生產(chǎn)流程中檢測硬件外設和查看生產(chǎn)相關信息的必備操作菜單和功能,幾乎在所有生產(chǎn)流程中都會用到。但工程模式對普通用戶來說,是不可見的,幾乎所有的用戶都不會關心和進入該模式??衫斫獾氖?,在程序開發(fā)過程中,日志(log)是廣泛使用的用來記錄程序執(zhí)行過程的機制。本發(fā)明中所述的離線日志,也可以稱為生產(chǎn)日志,指的是移動終端產(chǎn)生的、供研發(fā)人員檢查移動終端狀態(tài)并進行問題定位的日志??梢酝ㄟ^設置日志的等級(如詳細verbose,調(diào)試debug,信息info,告警warn,錯誤error)或日志的抓取范圍(如顯示屏相關日志)來配置抓取的離線日志的范圍。具體地,所述離線日志可以由用戶手動開啟,也可以由工程模式自動開啟。通過在移動終端進入工程模式時,開啟移動終端的離線日志,使得在生產(chǎn)過程中的大部分流程中,離線日志是打開的,從而可以及時抓取有效的離線日志。需要說明的是,在安卓系統(tǒng)中,移動終端產(chǎn)生的日志會同時存儲于內(nèi)存緩存和系統(tǒng)臨時文件夾(默認為/dev/log)中,并且當產(chǎn)生的日志過多導致所述內(nèi)存緩存或臨時文件到達最大上限時,內(nèi)存緩存或臨時文件中現(xiàn)有的離線日志會被移動終端最新抓取的離線日志所覆蓋。進一步地,所述處理器401用于將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中,具體包括:周期性地將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中。在本發(fā)明一實施例中,可以以30秒為一個周期,周期性地將內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中。進一步地,所述處理器401用于將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中,具體包括:預先設置離線日志上限值;當所述內(nèi)存緩存或所述臨時文件中的離線日志的大小到達所述離線日志上限值時,將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中。在本發(fā)明一實施例中,在所述將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟之前,所述處理器401還用于調(diào)用所述離線日志處理程序,并執(zhí)行以下步驟:對所述離線日志進行打包壓縮。在本發(fā)明一實施例中,在所述將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟中,所述用戶數(shù)據(jù)分區(qū)中生成的文件,以當前時間戳和當前操作的菜單功能說明作為文件名標識符。在本發(fā)明一實施例中,在所述將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟之后,所述處理器401還用于調(diào)用所述離線日志處理程序,并執(zhí)行以下步驟:檢測移動終端是否退出工程模式;當檢測到移動終端退出工程模式時,將內(nèi)存緩存或臨時文件中的日志保存至用戶數(shù)據(jù)分區(qū)中。在本發(fā)明一實施例中,在所述將內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟之后,所述處理器401還用于調(diào)用所述離線日志處理程序,并執(zhí)行以下步驟:檢測移動終端是否發(fā)生異常事件;當檢測到移動終端發(fā)生異常事件時,將用戶數(shù)據(jù)分區(qū)中的日志上傳至預先設置的服務器。具體地,所述異常事件包括應用程序無響應(applicationnotresponding,anr)異常、程序崩潰(即crash)異常、重啟異常、死機異常等。重啟異常、死機異常等是移動終端的系統(tǒng)常見的異常類型,當發(fā)生重啟異?;蛩罊C異常等異常類型時,移動終端中android會對ro.bootmode,sys.android.reboot等系統(tǒng)屬性進行設置,只要判斷這些屬性的值就可以判斷android是否發(fā)生了重啟、死機。anr異常、crash異常等是移動終端的應用程序中常見異常類型,由于activitymanagerservice是應用程序的核心管理模塊,出現(xiàn)anr異?;騝rash異常時,activitymanagerservice會對出現(xiàn)anr異常或crash異常的應用進行相應的處理。即當發(fā)生異常事件時,移動終端將獲取異常事件對應的log。進一步地,通過無線保真(wireless-fidelity,wifi)方式,將所述用戶數(shù)據(jù)分區(qū)中的離線日志上傳至所述預先設置的服務器。用戶也可以通過usb(universalserialbus)存儲設備拷貝的方式,將用戶數(shù)據(jù)分區(qū)中的日志上傳至預先設置的服務器。需要說明的是,在移動終端用于生產(chǎn)發(fā)貨的正式軟件版本中,離線日志是不能默認開啟的,因為離線日志打開不僅會導致移動終端功耗增大,還會導致系統(tǒng)兼容性認證無法通過,當離線日志堆積過多時,還會占用過多的系統(tǒng)內(nèi)存和文件區(qū),進而導致系統(tǒng)內(nèi)存不足或系統(tǒng)空間不夠用。同時,恢復出廠設置操作,是生產(chǎn)流程的每個階段的最后一道工序,特別是進行樣機出廠包裝前的最后一道工序。因此,通過在移動終端恢復出廠設置時,關閉離線日志抓取功能,可以保證到達用戶手中的正式軟件版本中,離線日志已經(jīng)被關閉。在本發(fā)明一實施例中,在所述關閉離線日志的步驟之后,所述處理器401還用于調(diào)用所述離線日志處理程序,并執(zhí)行以下步驟:每次移動終端開機時,檢測移動終端的離線日志是否已關閉;如果沒有關閉,關閉離線日志,以減少離線日志意外開啟對用戶造成影響的風險。在本發(fā)明一實施例中,在所述關閉離線日志的步驟之后,所述處理器401還用于調(diào)用所述離線日志處理程序,并執(zhí)行以下步驟:移動終端升級之后首次開機時,檢測移動終端的離線日志是否已關閉;如果沒有關閉,關閉離線日志。具體地,所述的移動終端升級包括通過空中軟件升級(firmwareover-the-air,fota)或通過sd(securedigital)存儲卡本地升級。本發(fā)明實施例還提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有一個或者多個程序,所述一個或者多個程序可被一個或者多個處理器執(zhí)行,以實現(xiàn)以下步驟:檢測移動終端是否進入工程模式或進行恢復出廠設置操作;如果檢測到移動終端進入工程模式,則:檢測離線日志是否已開啟;如果離線日志已開啟,則抓取離線日志并將抓取到的離線日志寫入內(nèi)存緩存或臨時文件;將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中,以免所述內(nèi)存緩存或臨時文件到達最大上限時,內(nèi)存緩存或臨時文件中的離線日志被移動終端最新抓取的離線日志所覆蓋;如果檢測到移動終端進行恢復出廠設置操作,則關閉離線日志??衫斫獾氖牵诔绦蜷_發(fā)過程中,日志(log)是廣泛使用的用來記錄程序執(zhí)行過程的機制。本發(fā)明中所述的離線日志,也可以稱為生產(chǎn)日志,指的是移動終端產(chǎn)生的、供研發(fā)人員檢查移動終端狀態(tài)并進行問題定位的日志??梢酝ㄟ^設置日志的等級(如詳細verbose,調(diào)試debug,信息info,告警warn,錯誤error)或日志的抓取范圍(如顯示屏相關日志)來配置抓取的離線日志的范圍。本發(fā)明中所述的工程模式,指的是專業(yè)手機工程師調(diào)試用的一種模式。工程模式功能作為生產(chǎn)流程中檢測硬件外設和查看生產(chǎn)相關信息的必備操作菜單和功能,幾乎在所有生產(chǎn)流程中都會用到。但工程模式對普通用戶來說,是不可見的,幾乎所有的用戶都不會關心和進入該模式。所述離線日志可以由用戶手動開啟,也可以由工程模式自動開啟。通過在移動終端進入工程模式時,開啟移動終端的離線日志,使得在生產(chǎn)過程中的大部分流程中,離線日志是打開的,從而可以及時抓取有效的離線日志。需要說明的是,在安卓系統(tǒng)中,移動終端產(chǎn)生的日志會同時存儲于內(nèi)存緩存和系統(tǒng)臨時文件夾(默認為/dev/log)中,并且當產(chǎn)生的日志過多導致所述內(nèi)存緩存或臨時文件到達最大上限時,內(nèi)存緩存或臨時文件中現(xiàn)有的離線日志會被移動終端最新抓取的離線日志所覆蓋。進一步地,所述將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟,具體包括:周期性地將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中。在本發(fā)明一實施例中,所述一個或者多個程序可以以30秒為一個周期,周期性地將內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中。進一步地,所述將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟,具體包括:預先設置離線日志上限值;當所述內(nèi)存緩存或所述臨時文件中的離線日志的大小到達所述離線日志上限值時,將所述內(nèi)存緩存或所述臨時文件中的離線日志保存至所述用戶數(shù)據(jù)分區(qū)中。在本發(fā)明一實施例中,在所述將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟之前,所述處理器還用于執(zhí)行所述離線日志處理程序,以實現(xiàn)以下步驟:對所述離線日志進行打包壓縮。在本發(fā)明一實施例中,在所述將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟中,所述用戶數(shù)據(jù)分區(qū)中生成的文件,以當前時間戳和當前操作的菜單功能說明作為文件名標識符。在本發(fā)明一實施例中,在所述將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟之后,所述一個或者多個程序還可被所述一個或者多個處理器執(zhí)行,以實現(xiàn)以下步驟:檢測移動終端是否退出工程模式;當檢測到移動終端退出工程模式時,將內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中。在本發(fā)明一實施例中,在所述將所述內(nèi)存緩存或臨時文件中的離線日志保存至用戶數(shù)據(jù)分區(qū)中的步驟之后,所述一個或者多個程序還可被所述一個或者多個處理器執(zhí)行,以實現(xiàn)以下步驟:檢測移動終端是否發(fā)生異常事件;當檢測到移動終端發(fā)生異常事件時,將用戶數(shù)據(jù)分區(qū)中的離線日志上傳至預先設置的服務器。具體地,所述異常事件包括應用程序無響應(applicationnotresponding,anr)異常、程序崩潰(即crash)異常、重啟異常、死機異常等。重啟異常、死機異常等是移動終端的系統(tǒng)常見的異常類型,當發(fā)生重啟異?;蛩罊C異常等異常類型時,移動終端中android會對ro.bootmode,sys.android.reboot等系統(tǒng)屬性進行設置,只要判斷這些屬性的值就可以判斷android是否發(fā)生了重啟、死機。anr異常、crash異常等是移動終端的應用程序中常見異常類型,由于activitymanagerservice是應用程序的核心管理模塊,出現(xiàn)anr異常或crash異常時,activitymanagerservice會對出現(xiàn)anr異?;騝rash異常的應用進行相應的處理。即當發(fā)生異常事件時,移動終端將獲取異常事件對應的log。進一步地,所述一個或者多個程序通過無線保真(wireless-fidelity,wifi)方式,將所述用戶數(shù)據(jù)分區(qū)中的離線日志上傳至所述預先設置的服務器。用戶也可以通過usb(universalserialbus)存儲設備拷貝的方式,將用戶數(shù)據(jù)分區(qū)中的日志上傳至預先設置的服務器。需要說明的是,在移動終端用于生產(chǎn)發(fā)貨的正式軟件版本中,離線日志是不能默認開啟的,因為離線日志打開不僅會導致移動終端功耗增大,還會導致系統(tǒng)兼容性認證無法通過,當離線日志堆積過多時,還會占用過多的系統(tǒng)內(nèi)存和文件區(qū),進而導致系統(tǒng)內(nèi)存不足或系統(tǒng)空間不夠用。同時,恢復出廠設置操作,是生產(chǎn)流程的每個階段的最后一道工序,特別是進行樣機出廠包裝前的最后一道工序。因此,通過在移動終端恢復出廠設置時,關閉離線日志抓取功能,可以保證到達用戶手中的正式軟件版本中,離線日志已經(jīng)被關閉。在本發(fā)明一實施例中,在所述關閉離線日志的步驟之后,所述一個或者多個程序還可被所述一個或者多個處理器執(zhí)行,以實現(xiàn)以下步驟:移動終端每次開機時,檢測移動終端的離線日志是否已關閉;如果沒有關閉,關閉離線日志,以減少離線日志意外開啟對用戶造成影響的風險。在本發(fā)明一實施例中,在所述關閉離線日志的步驟之后,所述一個或者多個程序還可被所述一個或者多個處理器執(zhí)行,以實現(xiàn)以下步驟:移動終端升級之后首次開機時,檢測移動終端的離線日志是否已關閉;如果沒有關閉,關閉離線日志。具體地,所述的移動終端升級包括通過空中軟件升級(firmwareover-the-air,fota)或通過sd(securedigital)存儲卡本地升級。本發(fā)明的移動終端及其離線日志處理方法、計算機可讀存儲介質(zhì),通過在移動終端進入工程模式時,抓取離線日志并將抓取的離線日志保存至用戶數(shù)據(jù)分區(qū)中,并在移動終端恢復出廠設置時,關閉離線日志抓取功能,當遇到生產(chǎn)問題時,可直接獲取用戶數(shù)據(jù)分區(qū)中的離線日志,能夠提升生產(chǎn)問題分析定位的效率,降低問題復現(xiàn)和跟進分析所需的生產(chǎn)工時和人力成本。需要說明的是,在本文中,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。通過以上的實施方式的描述,本領域的技術人員可以清楚地了解到上述實施例方法可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可以通過硬件,但很多情況下前者是更佳的實施方式?;谶@樣的理解,本發(fā)明的技術方案本質(zhì)上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)(如rom/ram、磁碟、光盤)中,包括若干指令用以使得一臺終端(可以是手機,計算機,服務器,空調(diào)器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。上面結合附圖對本發(fā)明的實施例進行了描述,但是本發(fā)明并不局限于上述的具體實施方式,上述的具體實施方式僅僅是示意性的,而不是限制性的,本領域的普通技術人員在本發(fā)明的啟示下,在不脫離本發(fā)明宗旨和權利要求所保護的范圍情況下,還可做出很多形式,這些均屬于本發(fā)明的保護之內(nèi)。當前第1頁12當前第1頁12