令獲取線程,并基于所述指令獲取線程獲取所述終端接收到的操作指令信息;調(diào)用終端的日志進(jìn)程獲取終端執(zhí)行所述操作指令的調(diào)試信息;將所述操作指令信息和所述調(diào)試信息記錄到所述日志文件中。相較于現(xiàn)有技術(shù),本發(fā)明能夠提供終端的日志文件供工程人員分析,以提高定位終端BUG的準(zhǔn)確度。
[0047]進(jìn)一步地,基于第一實施例,提出本發(fā)明日志記錄方法的第二實施例,參照圖2,在本實施例中,上述步驟SlO之前,所述日志記錄方法還包括:
[0048]S50,在偵測到終端進(jìn)入工廠模式時,觸發(fā)日志記錄指令。
[0049]需要說明的是,廠商在對終端進(jìn)行可行性測試以及其他種類的測試時,均是在一個特殊的模式下進(jìn)行:工廠模式(又稱P-mode或P模式)。本實施例中,日志記錄進(jìn)程在偵測到終端進(jìn)入工廠模式時,自動生成日志記錄指令,以開始記錄日志文件。
[0050]具體地,日志記錄進(jìn)程作為Android系統(tǒng)自啟動服務(wù),在Android系統(tǒng)啟動過程中自行啟動的。日志記錄進(jìn)程在完成啟動后,立即注冊“進(jìn)入工廠模式廣播”和“退出工廠模式廣播”。其中,所述進(jìn)入工廠模式廣播和退出工廠模式廣播均由工廠應(yīng)用程序發(fā)出,所述工廠應(yīng)用程序基于Android系統(tǒng)運行,用于實現(xiàn)終端與工程人員之間的交互,并協(xié)調(diào)整個測試流程。當(dāng)工廠應(yīng)用程序觸發(fā)了進(jìn)入工廠模式時,工廠應(yīng)用程序發(fā)出進(jìn)入工廠模式廣播;當(dāng)工廠應(yīng)用程序觸發(fā)了退出工廠模式時,工廠應(yīng)用程序發(fā)出退出工廠模式廣播。本實施例通過針對性的記錄終端在特定工作模式的日志文件,能夠提供定位終端BUG的效率。
[0051]進(jìn)一步地,基于第二實施例,提出本發(fā)明日志記錄方法的第三實施例,在本實施例中,上述步驟S40之后,所述日志記錄方法還包括:
[0052]在偵測到終端退出工廠模式時,終止所述指令獲取線程,并刪除所述日志文件。
[0053]本實施例中,日志記錄進(jìn)程在接收到工廠應(yīng)用程序發(fā)出的退出工廠模式廣播時,識別到終端退出工廠模式(完成了相應(yīng)的測試流程),終止創(chuàng)建的所述指令獲取線程,以及停止對1gcat進(jìn)程的調(diào)用,以停止記錄日志文件;刪除記錄的所述日志文件。例如,在進(jìn)行終端的適應(yīng)性測試時,日志記錄進(jìn)程除了注冊進(jìn)入工廠模式廣播和退出工廠模式廣播之夕卜,還需要注冊“適應(yīng)性通過廣播”和“適應(yīng)性未通過廣播”,所述適應(yīng)性通過廣播和所述適應(yīng)性未通過廣播均由工廠應(yīng)用程序發(fā)出。日志記錄進(jìn)程在接收到工廠應(yīng)用程序發(fā)出的退出工廠模式廣播或者適應(yīng)性通過廣播時,識別該次適應(yīng)性測試是正常的、成功的;終止創(chuàng)建的所述指令獲取線程,以及停止對1gcat進(jìn)程的調(diào)用,并刪除記錄的所述日志文件,以避免造成工程人員的困惑。此外,刪除記錄的日志文件,還可以避免浪費終端的存儲資源。
[0054]進(jìn)一步地,基于第一實施例,提出本發(fā)明日志記錄方法的第四實施例,在本實施例中,上述步驟S40之后,所述日志記錄方法還包括:
[0055]將所述日志文件發(fā)送至預(yù)設(shè)服務(wù)器。
[0056]本實施例中,在完成日志文件的記錄后,自動將記錄的日志文件發(fā)送至預(yù)設(shè)服務(wù)器,以供工程人員查看、分析。具體地,在將所述操作指令信息和所述調(diào)試信息記錄到所述日志文件中之后,日志記錄進(jìn)程獲取終端的唯一標(biāo)識信息,將記錄的日志文件與所述唯一標(biāo)識信息關(guān)聯(lián)后發(fā)送至預(yù)設(shè)服務(wù)器。所述唯一標(biāo)識信息可以包括終端的設(shè)備標(biāo)識碼、終端內(nèi)置通訊模塊(無線通訊模塊和/或有線通訊模塊)的MAC地址等。
[0057]進(jìn)一步地,在將日志文件發(fā)送至所述預(yù)設(shè)服務(wù)器之后,還可以刪除終端本地儲存的日志文件,避免浪費終端的存儲資源。
[0058]進(jìn)一步地,基于第一實施例,提出本發(fā)明日志記錄方法的第五實施例,在本實施例中,所述日志文件包括第一日志文件和第二日志文件,上述步驟S40包括:
[0059]將所述操作指令信息記錄到所述第一日志文件中,將所述調(diào)試信息記錄到所述第二日志文件。
[0060]為方便管理日志,避免引起工程人員的誤解,本實施例中,日志記錄進(jìn)程在偵測到基于終端的日志記錄指令時,分別創(chuàng)建第一日志文件和第二日志文件。具體地,日志記錄進(jìn)程在偵測到基于終端的日志記錄指令時,根據(jù)偵測到所述日志記錄指令的時間點對創(chuàng)建的日志文件進(jìn)行命名操作,例如,日志記錄進(jìn)程在08:00偵測到所述日志記錄指令,日志記錄進(jìn)程采用預(yù)設(shè)的算法基于前述時間點計算得到數(shù)值1000(所述時間點為對應(yīng)的終端的系統(tǒng)時間,由于系統(tǒng)時間精確到毫秒,每次計算結(jié)果將不同),則日志記錄進(jìn)程可將創(chuàng)建的所述第一日志文件命名為1000.cdx,可將創(chuàng)建的所述第二日志文件命名為1000.1crec。在獲取到終端接收的操作指令信息時,將所述操作指令信息記錄到所述第一日志文件中,例如上述名為1000.cdx的日志文件;在獲取到終端執(zhí)行所述操作指令的調(diào)試信息時,將所述調(diào)試信息記錄到所述第二日志文件中,例如上述名為1000.1crec的日志文件。
[0061]本發(fā)明還提供一種日志記錄裝置,參照圖3,在本發(fā)明日志記錄裝置的第一實施例中,所述日志記錄裝置包括:
[0062]創(chuàng)建模塊10,用于在偵測到基于終端的日志記錄指令時,創(chuàng)建日志文件;
[0063]本實施例中,創(chuàng)建模塊10在偵測到基于終端的日志記錄指令時,創(chuàng)建日志文件。其中,所述日志記錄指令可由工程人員手動下達(dá),也可由日志記錄裝置根據(jù)終端的工作模式自動生成。其中,創(chuàng)建模塊10可根據(jù)偵測到所述日志記錄指令的時間點對創(chuàng)建的日志文件進(jìn)行命名,例如,創(chuàng)建模塊10在08:00偵測到所述日志記錄指令,采用預(yù)設(shè)的算法基于前述時間點計算得到數(shù)值1000(所述時間點為對應(yīng)的終端的系統(tǒng)時間,由于系統(tǒng)時間精確到毫秒,每次計算結(jié)果將不同),則創(chuàng)建模塊10將創(chuàng)建的所述日志文件命名為1000.1og0
[0064]本領(lǐng)域技術(shù)人員可以理解是,創(chuàng)建模塊10還可以直接將偵測到所述日志記錄指令的時間點作為所述日志文件的名稱。需要說明的是,本發(fā)明并不限制采取何種命名方法,只要能夠區(qū)分不同的日志文件,并表征對應(yīng)的日志文件即可。
[0065]需要說明的是,本發(fā)明提及的終端均基于Android系統(tǒng)運行,例如,基于Android系統(tǒng)的智能電視。
[0066]第一獲取模塊20,用于創(chuàng)建指令獲取線程,并基于所述指令獲取線程獲取所述終端接收到的操作指令信息;
[0067]本實施例中,第一獲取模塊20創(chuàng)建指令獲取線程,并基于所述指令獲取線程獲取所述終端接收到的操作指令信息。其中,所述操作指令信息包括所述終端接收到的操作指令以及對應(yīng)所述操作指令的附加信息,所述附加信息包括終端接收到所述操作指令的時間點以及所述操作指令的類型等。
[0068]具體地,在Android系統(tǒng)的按鍵輸入流程(phonewindowmanager)和串口輸入流程(調(diào)試串口模塊)中添加消息發(fā)送代碼,按鍵輸入流程和串口輸入流程在接收到操作指令時,將其接收到的操作指令添加對應(yīng)的附加信息(接收到操作指令的時間和操作指令的類型)作為操作指令信息發(fā)送至指令獲取線程。
[0069]第二獲取模塊30,用于調(diào)用終端的日志進(jìn)程獲取終端執(zhí)行所述操作指令的調(diào)試信息;
[0070]本實施例中,第二獲取模塊30通過Android系統(tǒng)提供的運行時接口(Runtime)調(diào)用Android系統(tǒng)自帶的日志進(jìn)程,即1gcat進(jìn)程。需要說明的是,1gcat是Android系統(tǒng)中一個命令行工具,為系統(tǒng)進(jìn)程,可用于實時獲取終端執(zhí)行操作指令的調(diào)試信息。例如,通過執(zhí)行代碼Runtime.getRuntime ().exec (〃logcat〃)即可實現(xiàn)對1gcat進(jìn)程的調(diào)用。
[0071]本領(lǐng)域技術(shù)人員可以理解的是,所述調(diào)試信息包括終端執(zhí)行其接收到所述操作指令進(jìn)行的操作、執(zhí)行所述操作指令時各項運行參數(shù)以及執(zhí)行所述操作指令的結(jié)果等信息。
[0072]記錄模塊40,用于將所述操作指令信息和所述調(diào)試信息記錄到所述日志文件中。
[0073]本實施例中,記錄模塊40將所述操作指令信息和所述調(diào)試信息一一對應(yīng)后,記錄到所述日志文件中。例如,記錄模塊40將終端接收到的A操作指令信息與終端執(zhí)行A操作指令的調(diào)試信息對應(yīng)后記錄到前述生成的名為1000.log的日志文件中;記錄模塊40將終端接收到的B操作指令信息與終端執(zhí)行B操作指令的調(diào)試信息對應(yīng)后記錄到前述生成的名為1000.log的日志文件中,以此類推。
[0074]本發(fā)明實施例提供的日志記錄裝置,在偵測到基于終端的日志記錄指令時,創(chuàng)建日志文件;創(chuàng)建指令獲取線程,并基于所述指令獲取線程獲取所述