本發(fā)明屬于終端技術(shù)領(lǐng)域,尤其涉及一種耗電日志解析方法、裝置、移動終端和可讀存儲介質(zhì)。
背景技術(shù):
當用戶需要了解系統(tǒng)耗電詳情時,可以通過查看電池耗電日志來了解系統(tǒng)耗電表現(xiàn)。
現(xiàn)有技術(shù),是直接獲取android系統(tǒng)的耗電日志,以獲取系統(tǒng)軟硬件的狀態(tài)記錄、功耗表現(xiàn)等統(tǒng)計信息,但是只能得到歷史總時間的統(tǒng)計信息。例如,電池統(tǒng)計(batterystats)信息記錄了0時至23時,即,時間長度為23小時的統(tǒng)計信息。而不能有針對性地獲取到某一時間段的統(tǒng)計信息,無法完成對該段時間統(tǒng)計信息的分析,進而影響對移動終端的功耗大、發(fā)熱等問題的調(diào)查與解決。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種耗電日志解析方法、裝置、移動終端和可讀存儲介質(zhì),旨在解決不能分時間段獲取耗電日志的問題。
本發(fā)明實施例第一方面提供的一種耗電日志解析方法,包括:
每當檢測到保存電池統(tǒng)計信息的觸發(fā)事件時,將當前電池統(tǒng)計信息保存為耗電日志文件并重新統(tǒng)計所述電池統(tǒng)計信息;解析各所述耗電日志文件,得到各所述耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息;獲取查看耗電日志的時間段,并輸出所述時間段內(nèi)的各耗電對象的耗電信息。
本發(fā)明實施例第二方面提供的一種耗電日志解析裝置,包括:
保存模塊,用于每當檢測到保存電池統(tǒng)計信息的觸發(fā)事件時,將當前電池統(tǒng)計信息保存為耗電日志文件;統(tǒng)計模塊,用于重新統(tǒng)計所述電池統(tǒng)計信息;解析模塊,用于解析各所述耗電日志文件,得到各所述耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息;獲取模塊,用于獲取查看耗電日志的時間段;輸出模塊,用于輸出所述時間段內(nèi)的各耗電對象的耗電信息。
本發(fā)明實施例第三方面提供的一種移動終端,包括存儲器,處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)如本發(fā)明實施例第一方面提供的耗電日志解析方法。
本發(fā)明實施例第四方面提供的一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如本發(fā)明實施例第一方面提供的耗電日志解析方法。
本發(fā)明實施例第五方面提供的一種移動終端,包括顯示屏、存儲器、控制電路、處理器,所述處理器與顯示屏、存儲器、控制電路電性連接;所述處理器,用于每當檢測到保存電池統(tǒng)計信息的觸發(fā)事件時,將當前電池統(tǒng)計信息保存為耗電日志文件并重新統(tǒng)計所述電池統(tǒng)計信息;所述存儲器,用于保存所述耗電日志以及計算機程序;所述處理器,用于解析各所述耗電日志文件,得到各所述耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息;所述處理器,用于獲取查看耗電日志的時間段,并輸出所述時間段內(nèi)的各耗電對象的耗電信息;所述顯示屏,用于顯示輸出的所述耗電信息。
從上述本發(fā)明實施例可知,本發(fā)明提供的耗電日志解析方法、裝置、移動終端及計算機可讀存儲介質(zhì),通過將當前電池統(tǒng)計信息保存為耗電日志文件,并重新統(tǒng)計該電池統(tǒng)計信息,解析各耗電日志文件,得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息,從而可以根據(jù)查看耗電日志的時間段,輸出該時間段內(nèi)的耗電信息,即,可實現(xiàn)有針對性地獲取到某一時間段的耗電信息,提高獲取耗電信息的便捷性和靈活性,進而可有針對性地分析移動終端功耗大、發(fā)熱等問題的原因,提高解決此類問題的效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明第一實施例提供的耗電日志解析方法的流程示意圖;
圖2為本發(fā)明第二實施例提供的耗電日志解析方法的流程示意圖;
圖3為本發(fā)明實施例中第一鏈表結(jié)構(gòu)示意圖;
圖4為本發(fā)明實施例中第一鏈表結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例中顯示耗電對象的狀態(tài)信息的邏輯界面示意圖;
圖6為本發(fā)明第三實施例提供的耗電日志解析方法的流程示意圖;
圖7為本發(fā)明第四實施例提供的耗電日志解析裝置的結(jié)構(gòu)示意圖;
圖8為本發(fā)明第五實施例提供的耗電日志解析裝置的結(jié)構(gòu)示意圖
圖9為本發(fā)明中執(zhí)行耗電日志解析方法的移動終端硬件結(jié)構(gòu)圖。
具體實施方式
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而非全部實施例。基于本發(fā)明中的實施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明的實施例中的耗電日志解析方法可應(yīng)用在使用電池的移動終端中,其中移動終端可包括手機、平板電腦、相機、穿戴設(shè)備等。各實施例中的耗電日志是基于android系統(tǒng)的batterystats機制。電池統(tǒng)計信息是指通過batterystats統(tǒng)計的電池使用情況,可以反映耗電情況。
請參見圖1,圖1為本發(fā)明第一實施例提供的耗電日志解析方法的流程示意圖,該方法包括:
s101、每當檢測到保存電池統(tǒng)計信息的觸發(fā)事件時,將當前電池統(tǒng)計信息保存為耗電日志文件并重新統(tǒng)計該電池統(tǒng)計信息;
在終端開機后,創(chuàng)建名稱為bts_d的線程,用戶開啟獲取耗電日志的開關(guān)時,bts_d線程啟動,用戶關(guān)閉獲取耗電日志的開關(guān)時,bts_d線程暫停。bts_d線程可將電池統(tǒng)計(batterystats)信息保存為耗電日志文件。需要說明的是,bts_d線程在保存耗電日志文件的過程中,以當前時間作為文件的后綴,以便后期解析耗電日志文件時的拼接處理,耗電日志文件的命名規(guī)則示例如:bts_20170504221015.txt,或,bts_20170504221025.txt,其中各名稱中的數(shù)字部分則表示保存耗電日志文件的時間,例如,bts_20170504221015.txt的保存時間為2017年5月4日22點10分15秒。
每當檢測到保存電池統(tǒng)計信息的觸發(fā)事件時,將當前batterystats信息保存為耗電日志文件,耗電日志文件的格式為:bts_保存時間.txt,并重新統(tǒng)計batterystats信息,即,將之前的batterystats清零,從當前時刻重新統(tǒng)計batterystats信息。這樣,可將一長段時間內(nèi)的耗電日志文件,按照時間段分段保存為多個耗電日志文件,例如,將包含有10個小時的batterystats信息的耗電日志文件,分為60秒一段的600個耗電日志文件。
s102、解析各該耗電日志文件,得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息;
每個耗電日志文件中的各耗電對象的耗電信息,是一段統(tǒng)計時長內(nèi)的耗電信息,該段統(tǒng)計時長即為上一次將batterystats信息保存為耗電日志文件的時刻,到本次battery信息保存為耗電日志文件的時刻之間的時間。即,每個耗電日志文件只包含有在該統(tǒng)計時長內(nèi)的耗電信息。
耗電對象是指移動終端中耗電的硬件及軟件。例如,中央處理器(cpu,centralprocessingunit)屏幕、全球定位系統(tǒng)(gps,globalpositioningsystem)、無線網(wǎng)(wifi,wirelessfidelity)、正在運行的程序等。
耗電對象的耗電信息,是指表征耗電對象的耗電狀態(tài)的信息??砂ǎ汉碾妼ο蟮臓顟B(tài)信息和耗電對象的耗電統(tǒng)計信息。其中,該狀態(tài)信息是指反映耗電對象的當前工作狀態(tài)的信息,例如屏幕的開關(guān)狀態(tài)、gps的開關(guān)狀態(tài)、cpu運行狀態(tài)、電池電量等信息。該耗電統(tǒng)計信息是指在該耗電日志文件的統(tǒng)計時長內(nèi)耗電對象的耗電信息,例如屏幕的亮屏總時間、滅屏總時間、cpu的總執(zhí)行時間、每個app(application)執(zhí)行cpu的時間、每個app的耗電量等信息。
解析各該耗電日志文件,可得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的狀態(tài)信息和耗電統(tǒng)計信息。
s103、獲取查看耗電日志的時間段,并輸出該時間段內(nèi)的各耗電對象的耗電信息。
用戶可以在查看界面選擇查看耗電日志的時間段,具體地,在查看界面顯示選擇查看的起始時間和結(jié)束時間,用戶選擇完畢,點擊確定按鈕。獲取用戶選擇的獲取查看耗電日志的時間段,并輸出該時間段內(nèi)的各耗電對象的耗電信息??梢允褂脩舨榭丛诟骱碾娙罩疚募y(tǒng)計的時間段中,任意時段的各耗電對象的耗電信息。
進一步地,在查看界面顯示選擇查看的耗電對象,并根據(jù)用戶的選擇,顯示對應(yīng)的耗電對象的耗電信息??梢允褂脩舨榭丛诟骱碾娙罩疚募y(tǒng)計的范圍內(nèi),任意時段的任意耗電對象的耗電信息。
本發(fā)明實施例中,通過將當前電池統(tǒng)計信息保存為耗電日志文件,并重新統(tǒng)計該電池統(tǒng)計信息,解析各耗電日志文件,得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息,從而可以根據(jù)查看耗電日志的時間段,輸出該時間段內(nèi)的耗電信息,即,可實現(xiàn)有針對性地獲取到某一時間段的耗電信息,提高獲取耗電信息的便捷性和靈活性,進而可有針對性地分析移動終端功耗大、發(fā)熱等問題的原因,提高解決此類問題的效率。
請參見圖2,圖2為本發(fā)明第二實施例提供的耗電日志解析方法,可應(yīng)用于移動終端中,該方法包括:
s201、設(shè)置保存電池統(tǒng)計信息的保存周期;
保存周期可以預先在系統(tǒng)中設(shè)置,也可以是用戶在交互界面中設(shè)置耗電日志查看精度,單位為秒,例如,查看精度的可設(shè)置值范圍是[20,600],用戶可在此范圍內(nèi)任意設(shè)置查看精度,默認值是60,該查看精度即為該保存周期。通過設(shè)置耗電日志查看精度的方式,設(shè)置batterystats信息保存為耗電日志文件的保存周期??梢造`活地向用戶展示任意時間段內(nèi)的耗電日志,并且用戶可以設(shè)置查看精度。
s202、每當檢測到到達一個保存周期時,將當前電池統(tǒng)計信息保存為耗電日志文件,并重新統(tǒng)計該電池統(tǒng)計信息;
每到一個保存周期,將batterystats信息保存為耗電日志文件,并重新統(tǒng)計batterystats信息,即,將之前的batterystats信息清零,從當前時刻重新統(tǒng)計batterystats信息。
到下一個保存周期,再將batterystats信息保存為耗電日志文件,并將batterystats信息清零,從當前時刻重新統(tǒng)計batterystats信息。
s203、解析各耗電日志文件,得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息;
后臺創(chuàng)建bts_reader線程,將bts目錄下所有符合bts_*.txt命名規(guī)則的文件全部讀取,并按照文件名稱中的時間的先后順序存放在鏈表中,需要說明的是,時間可以還可以從文件中的關(guān)鍵行“reset:time:”中獲取,當從文件名稱中獲取的時間和從關(guān)鍵行reset:time:”中獲取的時間沖突時,以從關(guān)鍵行reset:time:”中獲取的時間為準。將所有文件符合bts_*.txt命名規(guī)則的文件全部存放在鏈表中后,觸發(fā)bts_parser線程,解析各耗電日志文件。
各耗電日志文件中的各耗電對象的耗電信息包括:各耗電對象的狀態(tài)信息和耗電統(tǒng)計信息。
其中,對于狀態(tài)信息,bts_parser線程建立第一鏈表來保存各狀態(tài)信息。具體地,遍歷各耗電日志文件,以查找所有的耗電對象的狀態(tài)信息,為各耗電日志文件中的每個耗電對象的狀態(tài)信息對應(yīng)建立一個第一鏈表,在每個第一鏈表內(nèi),按照耗電對象狀態(tài)改變的時間先后順序,保存耗電對象狀態(tài)改變的時間戳以及時間戳對應(yīng)的狀態(tài)。例如,遍歷各耗電日志,查找到耗電對象a的狀態(tài)信息尚未建立第一鏈表,則創(chuàng)建第一鏈表,查找到耗電對象b的狀態(tài)信息已經(jīng)建立了第一鏈表,則將新的狀態(tài)信息在已建立的第一鏈表尾部插入即可。第一鏈表的示例如圖3所示。耗電對象分為耗電對象a、耗電對象b、耗電對象c,每個耗電對象各自有一個第一鏈表,每個第一鏈表中保存有狀態(tài)變化的時間戳和與該時間戳對應(yīng)的狀態(tài)?!?.....”表示未示出的時間戳和當前狀態(tài)。讀取第一鏈表中的各耗電對象的狀態(tài)信息,可得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的狀態(tài)信息。
對于耗電統(tǒng)計信息,bts_parser線程建立第二鏈表來保存每個耗電對象的耗電統(tǒng)計信息。具體地,獲取各耗電日志文件中每個耗電對象的耗電統(tǒng)計信息,為每個耗電日志文件新建1個bts_win對象,bts_win對象包含了對應(yīng)的耗電日志文件中所有的耗電統(tǒng)計信息。并將bts_win對象,即每個耗電對象的耗電統(tǒng)計信息按照時間先后順序保存在第二鏈表中。此處的時間與耗電日志文件中獲取的統(tǒng)計時間相同。第二鏈表示例如圖4所示,bts_win對象a、bts_win對象b、bts_win對象c、bts_win對象d,按照時間順序構(gòu)成第二鏈表,圖4中的“......”表示為示出的bts_win對象。讀取該第二鏈表中的各耗電對象的耗電統(tǒng)計信息,可得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電統(tǒng)計信息。
由于耗電日志文件中包含的耗電對象比較多,為了減少硬件資源的負載,可以設(shè)定每個bts_win對象只解析部分耗電對象的耗電統(tǒng)計信息,例如,統(tǒng)計在耗電日志文件的統(tǒng)計時長內(nèi)的屏幕耗電、cpu耗電、撥打電話時間、移動網(wǎng)絡(luò)接收的數(shù)據(jù)量、移動網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)量、wifi接收的數(shù)據(jù)量、wifi發(fā)送的數(shù)據(jù)量、cpu用戶空間執(zhí)行時間、cpu內(nèi)核控件執(zhí)行時間、cpu使用時間占前15名的應(yīng)用程序、耗電前15名的應(yīng)用程序等。
s204、獲取查看耗電日志的時間段,并輸出該時間段內(nèi)的各耗電對象的耗電信息。
獲取用戶選擇的獲取查看耗電日志的時間段,并輸出該時間段內(nèi)的各耗電對象的耗電信息??梢允褂脩舨榭丛诟骱碾娙罩疚募y(tǒng)計的時間段中,任意時段的各耗電對象的耗電信息。
對于各耗電對象的狀態(tài)信息,經(jīng)過bts_parser線程的解析,獲取用戶選擇查看耗電日志的時間段,并按照時間先后順序,逐項分別顯示該時間段內(nèi)各耗電對象的狀態(tài)信息。即,每一個耗電對象的狀態(tài)信息都單獨顯示,根據(jù)時間先后順序描繪該耗電對象的狀態(tài)變化。
如圖5所示,耗電對象的狀態(tài)信息以屏幕狀態(tài)screenstate、電池電量(bt_level)為例,按照時間先后順序,逐項分別顯示該時間段內(nèi)各耗電對象的狀態(tài)信息,其中的長箭頭表示時間遞增的方向。圖5記錄的屏幕狀態(tài)的開(on)關(guān)(off)狀態(tài),電池電量在90%、89%和88%的狀態(tài)。需要說明的是,圖5僅實例顯示的邏輯界面示意圖,真實的示意圖界面可以有其他形式。
對于各耗電對象的耗電統(tǒng)計信息,獲取用戶選擇查看耗電日志的時間段后,統(tǒng)計該時間段內(nèi)的耗電統(tǒng)計信息,并以表格形式顯示統(tǒng)計結(jié)果。
具體地,根據(jù)用戶在交互界面輸入的查看耗電日志的時間范圍,在第二鏈表中查找位于該時間范圍內(nèi)的所有bts_win對象作為bts_win目標對象,如前面所述,bts_win目標對象可包括:統(tǒng)計在耗電日志文件的統(tǒng)計時長內(nèi)的屏幕耗電、cpu耗電、撥打電話時間、移動網(wǎng)絡(luò)接收的數(shù)據(jù)量、移動網(wǎng)絡(luò)發(fā)送的數(shù)據(jù)量、wifi接收的數(shù)據(jù)量、wifi發(fā)送的數(shù)據(jù)量、cpu用戶空間執(zhí)行時間、cpu內(nèi)核控件執(zhí)行時間、cpu使用時間占前15名的應(yīng)用程序、耗電前15名的應(yīng)用程序等,其中,對于可直接疊加的耗電統(tǒng)計信息,如:屏幕耗電、cpu耗電、撥打電話時間、移動網(wǎng)絡(luò)接收的數(shù)據(jù)量等,只需疊加計算即可。而對于cpu使用時間前15名的應(yīng)用程序、耗電前15名的應(yīng)用程序這類需要疊加后再次排序的耗電統(tǒng)計信息而言,需要將耗電統(tǒng)計信息進行疊加、排名之后,重新選擇cpu使用時間前15名的應(yīng)用程序和耗電前15名的應(yīng)用程序。對bts_win目標對象統(tǒng)計之后,得到bts_result對象,bts_result對象反映用戶設(shè)置的時間范圍內(nèi)的耗電統(tǒng)計信息,bts_result對象的內(nèi)部描述與bts_win對象完全一致。bts_result對象的內(nèi)容將直接以表格的形式顯示在用戶界面上,方便用戶查看某個時間范圍內(nèi)的耗電統(tǒng)計信息。
本發(fā)明實施例中,通過將當前電池統(tǒng)計信息保存為耗電日志文件,并重新統(tǒng)計該電池統(tǒng)計信息,解析各耗電日志文件,得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息,從而可以根據(jù)查看耗電日志的時間段,輸出該時間段內(nèi)的耗電信息,即,可實現(xiàn)有針對性地獲取到某一時間段的耗電信息,提高獲取耗電信息的便捷性和靈活性,進而可有針對性地分析移動終端功耗大、發(fā)熱等問題的原因,提高解決此類問題的效率。
請參見圖6,圖6為本發(fā)明第三實施例提供的耗電日志解析方法,可應(yīng)用于移動終端中,該方法包括:
s301、每當檢測到電池電量發(fā)生改變時,將當前電池統(tǒng)計信息保存為耗電日志文件,并重新統(tǒng)計該電池統(tǒng)計信息;
電池電量未發(fā)生變化時,統(tǒng)計耗電信息意義不大,因此,將電池電量發(fā)生變化作為觸發(fā)將當前電池統(tǒng)計信息保存為耗電日志文件的條件,可以在保存有意義的耗電日志文件的基礎(chǔ)上,降低工作線程的負載。
s302、解析各耗電日志文件,得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息;
各耗電日志文件中的各耗電對象的耗電信息包括:各耗電對象的狀態(tài)信息和耗電統(tǒng)計信息。
其中,對于狀態(tài)信息,bts_parser線程建立第一鏈表來保存各狀態(tài)信息。具體地,遍歷各耗電日志文件,以查找所有的耗電對象的狀態(tài)信息,為各耗電日志文件中的每個耗電對象的狀態(tài)信息對應(yīng)建立一個第一鏈表,在每個第一鏈表內(nèi),按照耗電對象狀態(tài)改變的時間先后順序,保存耗電對象狀態(tài)改變的時間戳以及時間戳對應(yīng)的狀態(tài)。
對于耗電統(tǒng)計信息,bts_parser線程建立第二鏈表來保存每個耗電對象的耗電統(tǒng)計信息。具體地,獲取各耗電日志文件中每個耗電對象的耗電統(tǒng)計信息,為每個耗電日志文件新建1個bts_win對象,bts_win對象包含了對應(yīng)的耗電日志文件中所有的耗電統(tǒng)計信息。并將bts_win對象,即每個耗電對象的耗電統(tǒng)計信息按照時間先后順序保存在第二鏈表中。
s303、獲取查看耗電日志的時間段,并輸出該時間段內(nèi)的各耗電對象的耗電信息。
獲取用戶選擇的獲取查看耗電日志的時間段,并輸出該時間段內(nèi)的各耗電對象的耗電信息??梢允褂脩舨榭丛诟骱碾娙罩疚募y(tǒng)計的時間段中,任意時段的各耗電對象的耗電信息。
對于各耗電對象的狀態(tài)信息,經(jīng)過bts_parser線程的解析,獲取用戶選擇查看耗電日志的時間段,并按照時間先后順序,逐項分別顯示該時間段內(nèi)各耗電對象的狀態(tài)信息。即,每一個耗電對象的狀態(tài)信息都單獨顯示,根據(jù)時間先后順序描繪該耗電對象的狀態(tài)變化。
對于各耗電對象的耗電統(tǒng)計信息,獲取用戶選擇查看耗電日志的時間段后,統(tǒng)計該時間段內(nèi)的耗電統(tǒng)計信息,并以表格形式顯示統(tǒng)計結(jié)果。
本發(fā)明實施例中,通過將當前電池統(tǒng)計信息保存為耗電日志文件,并重新統(tǒng)計該電池統(tǒng)計信息,解析各耗電日志文件,得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息,從而可以根據(jù)查看耗電日志的時間段,輸出該時間段內(nèi)的耗電信息,即,可實現(xiàn)有針對性地獲取到某一時間段的耗電信息,提高獲取耗電信息的便捷性和靈活性,進而可有針對性地分析移動終端功耗大、發(fā)熱等問題的原因,提高解決此類問題的效率。
請參見圖7,圖7為本發(fā)明第四實施例提供的耗電日志解析裝置,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。該裝置可內(nèi)置于移動終端中,該裝置包括:保存模塊401、統(tǒng)計模塊402、解析模塊403、獲取模塊404以及輸出模塊405。
保存模塊401,用于每當檢測到保存電池統(tǒng)計信息的觸發(fā)事件時,將當前電池統(tǒng)計信息保存為耗電日志文件;
每當檢測到保存電池統(tǒng)計信息的觸發(fā)事件時,將當前batterystats信息保存為耗電日志文件,耗電日志文件的格式為:bts_保存時間.txt。
統(tǒng)計模塊402,用于重新統(tǒng)計該電池統(tǒng)計信息;
重新統(tǒng)計batterystats信息,即,將之前的batterystats清零,從當前時刻重新統(tǒng)計batterystats信息。
解析模塊403,用于解析各耗電日志文件,得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息;
每個耗電日志文件中的各耗電對象的耗電信息,是一段統(tǒng)計時長內(nèi)的耗電信息,該段統(tǒng)計時長即為上一次將batterystats信息保存為耗電日志文件的時刻,到本次battery信息保存為耗電日志文件的時刻之間的時間。即,每個耗電日志文件只包含有在該統(tǒng)計時長內(nèi)的耗電信息。
耗電對象是指移動終端中耗電的硬件及軟件。例如,中央處理器(cpu,centralprocessingunit)屏幕、全球定位系統(tǒng)(gps,globalpositioningsystem)、無線網(wǎng)(wifi,wirelessfidelity)、正在運行的程序等。
耗電對象的耗電信息,是指表征耗電對象的耗電狀態(tài)的信息??砂ǎ汉碾妼ο蟮臓顟B(tài)信息和耗電對象的耗電統(tǒng)計信息。其中,該狀態(tài)信息是指反映耗電對象的當前工作狀態(tài)的信息,例如屏幕的開關(guān)狀態(tài)、gps的開關(guān)狀態(tài)、cpu運行狀態(tài)、電池電量等信息。該耗電統(tǒng)計信息是指在該耗電日志文件的統(tǒng)計時長內(nèi)耗電對象的耗電信息,例如屏幕的亮屏總時間、滅屏總時間、cpu的總執(zhí)行時間、每個app(application)執(zhí)行cpu的時間、每個app的耗電量等信息。
獲取模塊404,用于獲取查看耗電日志的時間段;
輸出模塊405,用于輸出該時間段內(nèi)的各耗電對象的耗電信息。
本發(fā)明實施例中的裝置用于執(zhí)行前述圖1所述實施例的方法,未描述的技術(shù)細節(jié)與前述圖1所示實施例相同,此處不再贅述。
本發(fā)明實施例中,通過將當前電池統(tǒng)計信息保存為耗電日志文件,并重新統(tǒng)計該電池統(tǒng)計信息,解析各耗電日志文件,得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息,從而可以根據(jù)查看耗電日志的時間段,輸出該時間段內(nèi)的耗電信息,即,可實現(xiàn)有針對性地獲取到某一時間段的耗電信息,提高獲取耗電信息的便捷性和靈活性,進而可有針對性地分析移動終端功耗大、發(fā)熱等問題的原因,提高解決此類問題的效率。
請參見圖8,圖8為本發(fā)明第五實施例提供的耗電日志解析裝置,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分。該裝置可內(nèi)置于移動終端中,本實施例所示的裝置與圖7所示的裝置不同之處在于:
該裝置還可以進一步包括:
設(shè)置模塊501,用于設(shè)置保存該電池統(tǒng)計信息的保存周期;
保存模塊401,還用于每當檢測到到達一個保存周期時,將當前電池統(tǒng)計信息保存為耗電日志文件;
保存模塊401,還用于每當檢測到電池電量發(fā)生改變時,將當前電池統(tǒng)計信息保存為耗電日志文件。
耗電信息包括狀態(tài)信息,則解析模塊403還可以進一步包括:
建立子模塊4031,用于遍歷各耗電日志文件,為各耗電日志文件中的每個耗電對象的狀態(tài)信息對應(yīng)建立一個第一鏈表;
保存子模塊4032,用于在每個第一鏈表內(nèi),按照耗電對象狀態(tài)改變的時間先后順序,保存耗電對象狀態(tài)改變的時間戳以及該時間戳對應(yīng)的狀態(tài);
獲取子模塊4033,用于獲取該第一鏈表中的各耗電對象的狀態(tài)信息。
耗電信息還包括耗電統(tǒng)計信息,則獲取子模塊4033,還用于獲取各耗電日志文件中每個耗電對象的該耗電統(tǒng)計信息;
建立子模塊4031,還用于建立第二鏈表,并將每個耗電對象的耗電統(tǒng)計信息按照時間先后順序保存在該第二鏈表中;
獲取子模塊4033,還用于獲取該第二鏈表中的各耗電對象的耗電統(tǒng)計信息。
進一步地,獲取模塊404,還用于獲取用戶選擇查看耗電日志的時間段。
輸出模塊405,還用于按照時間先后順序,逐項分別顯示該時間段內(nèi)各耗電對象的狀態(tài)信息。
統(tǒng)計模塊402,還用于統(tǒng)計該時間段內(nèi)的所述耗電統(tǒng)計信息;
輸出模塊405,還用于以表格形式顯示統(tǒng)計模塊502的統(tǒng)計結(jié)果。
本發(fā)明實施例中的未描述的技術(shù)細節(jié),參見前述圖1、圖6、圖7所示各實施例的描述,此處不再贅述。
本發(fā)明實施例中,通過將當前電池統(tǒng)計信息保存為耗電日志文件,并重新統(tǒng)計該電池統(tǒng)計信息,解析各耗電日志文件,得到各耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息,從而可以根據(jù)查看耗電日志的時間段,輸出該時間段內(nèi)的耗電信息,即,可實現(xiàn)有針對性地獲取到某一時間段的耗電信息,提高獲取耗電信息的便捷性和靈活性,進而可有針對性地分析移動終端功耗大、發(fā)熱等問題的原因,提高解決此類問題的效率。
圖9為本發(fā)明實施例提供的執(zhí)行耗電日志解析方法的移動終端結(jié)構(gòu)示意圖。
本實施例中所描述的移動終端,包括:
存儲器61;至少一個處理器62,例如中央處理器;以及,至少一個輸入設(shè)備63、至少一個輸出設(shè)備64。
上述存儲器61、處理器62、輸入設(shè)備63、輸出設(shè)備64通過總線65連接。
其中,輸入設(shè)備63具體可為攝像頭、觸控面板、物理按鍵或者鼠標等等。輸出設(shè)備64具體可為顯示屏。
存儲器61可以是高速隨機存取記憶體(ram,randomaccessmemory)存儲器,也可為非不穩(wěn)定的存儲器(non-volatilememory),例如磁盤存儲器。存儲器61用于存儲一組可執(zhí)行程序代碼,處理器62與存儲器61耦合,上述輸入設(shè)備63、輸出設(shè)備64和處理器62用于通過存儲器61中存儲的可執(zhí)行程序代碼,執(zhí)行如下操作:
通過處理器62執(zhí)行該代碼,執(zhí)行如前述圖1~圖6所示實施例中描述的耗電日志解析方法。
具體地,每當檢測到保存電池統(tǒng)計信息的觸發(fā)事件時,將當前電池統(tǒng)計信息保存為耗電日志文件并重新統(tǒng)計所述電池統(tǒng)計信息;解析各所述耗電日志文件,得到各所述耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息;獲取查看耗電日志的時間段,并輸出所述時間段內(nèi)的各耗電對象的耗電信息。
本發(fā)明實施例還提供了一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)如前述圖1~圖6所示實施例的耗電日志解析方法。該計算機可讀存儲介質(zhì)包括:u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
本發(fā)明實施例還提供了一種移動終端,包括顯示屏、存儲器、控制電路、處理器。
其中,該處理器與顯示屏、存儲器、控制電路電性連接;
該處理器,用于每當檢測到保存電池統(tǒng)計信息的觸發(fā)事件時,將當前電池統(tǒng)計信息保存為耗電日志文件并重新統(tǒng)計該電池統(tǒng)計信息;
該存儲器,用于保存該耗電日志以及計算機程序;
該處理器,用于解析各該耗電日志文件,得到各該耗電日志文件各自統(tǒng)計時長內(nèi)的各耗電對象的耗電信息;
該處理器,用于獲取查看耗電日志的時間段,并輸出該時間段內(nèi)的各耗電對象的耗電信息;
該顯示屏,用于顯示輸出的該耗電信息。
在本申請所提供的多個實施例中,應(yīng)該理解到,所揭露的方法和裝置,可以通過其它的方式實現(xiàn)。例如,以上所描述的裝置的實施例僅僅是示意性的,例如,所述模塊的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個模塊或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信鏈接可以是通過一些接口,裝置或模塊的間接耦合或通信鏈接,可以是電性,機械或其它的形式。
所述作為分離部件說明的模塊可以是或者也可以不是物理上分開的,作為模塊顯示的部件可以是或者也可以不是物理模塊,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)模塊上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一個處理模塊中,也可以是各個模塊單獨物理存在,也可以兩個或兩個以上模塊集成在一個模塊中。上述集成的模塊既可以采用硬件的形式實現(xiàn),也可以采用軟件功能模塊的形式實現(xiàn)。
所述集成的模塊如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。
需要說明的是,對于前述的各方法實施例,為了簡便描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因為依據(jù)本發(fā)明,某些步驟可以采用其它順序或者同時進行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實施例均屬于優(yōu)選實施例,所涉及的動作和模塊并不一定都是本發(fā)明所必須的。
在上述實施例中,對各個實施例的描述都各有側(cè)重,某個實施例中沒有詳述的部分,可以參見其它實施例的相關(guān)描述。
以上為對本發(fā)明所提供的耗電日志解析方法、耗電日志解析裝置、移動終端和計算機可讀存儲介質(zhì)的描述,對于本領(lǐng)域的技術(shù)人員,依據(jù)本發(fā)明實施例的思想,在具體實施方式及應(yīng)用范圍上均會有改變之處,綜上,本說明書內(nèi)容不應(yīng)理解為對本發(fā)明的限制。