一種移動終端cpu占用率監(jiān)測方法、裝置及移動終端的制作方法
【專利摘要】本發(fā)明公開了一種移動終端CPU占用率監(jiān)測方法、裝置及移動終端。所述方法包括:接收用戶發(fā)送的顯示CPU占用率的指示;根據(jù)所述顯示CPU占用率的指示之前最近的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程的CPU占用率;其中,所述采樣點為根據(jù)預(yù)設(shè)的采樣周期確定的對CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間的采樣時刻;顯示所述當前運行的每個進程和/或線程的CPU占用率。
【專利說明】—種移動終端CPU占用率監(jiān)測方法、裝置及移動終端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及移動終端【技術(shù)領(lǐng)域】,尤其涉及一種移動終端CPU占用率監(jiān)測方法、裝置及移動終端。
【背景技術(shù)】
[0002]隨著智能終端,如智能手機和平板電腦的普及和功能的增強,用戶對于智能手機的性能要求越來越高。智能手機的操作系統(tǒng)中提供對系統(tǒng)性能的分析功能,例如,可以對智能終端的中央處理器(Central Processing Unit, CPU)占用率進行統(tǒng)計。
[0003]但是,目前智能終端中,僅提供系統(tǒng)的總CPU占用率。用戶根據(jù)該系統(tǒng)的總CPU占用率無法得知到底是系統(tǒng)中哪個應(yīng)用在消耗CPU和電量。而智能終端上導(dǎo)致發(fā)熱、耗電高等問題的原因往往需要專業(yè)人士通過移動終端進行特殊處理才能獲知。對于用戶來說,體驗度較差。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供一種移動終端CPU占用率監(jiān)測方法、裝置及移動終端,用于實現(xiàn)戶清楚、準確、快速地找到導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因。
[0005]一種移動終端CPU占用率監(jiān)測方法,包括:
[0006]接收用戶發(fā)送的顯示CPU占用率的指示;
[0007]根據(jù)所述顯示CPU占用率的指示之前最近的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程的CPU占用率;其中,所述采樣點為根據(jù)預(yù)設(shè)的采樣周期確定的對CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間的采樣時刻;
[0008]顯示所述當前運行的每個進程和/或線程的CPU占用率。
[0009]本實施例中,通過計算操作系統(tǒng)中當前運行的每個進程和/或線程在一定時間段內(nèi)的CPU占用率,使得用戶可以清楚、準確、快速地找到導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因,避免由于某些應(yīng)用的高負荷運行導(dǎo)致移動終端電量的浪費以及發(fā)熱引起移動終端的損壞,延長移動終端的使用壽命。
[0010]優(yōu)選地,所述方法還包括:
[0011]根據(jù)所述預(yù)設(shè)的采樣周期采集所述CPU總運行時間,以及當前運行的每個進程和/或線程占用的CPU運行時間。
[0012]本實施例中,通過周期性地采集CPU總運行時間以及當前運行的每個進程和/或線程占用的CPU運行時間,使得在用戶需要時為用戶計算一定時間段內(nèi)CPU占用率,使得用戶可以清楚、準確、快速地找到導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因,避免由于某些應(yīng)用的高負荷運行導(dǎo)致移動終端電量的浪費以及發(fā)熱引起移動終端的損壞,延長移動終端的使用壽命。
[0013]優(yōu)選地,計算所述當前運行的每個進程和/或線程的CPU占用率,采用如下方式:[0014]計算所述兩個采樣點的CPU總運行時間差值及所述當前運行的每個進程和/或線程占用的CPU運行時間差值;
[0015]根據(jù)所述CPU總運行時間差值及所述當前運行的每個進程和/或線程占用的CPU運行時間差值,計算所述當前運行的每個進程和/或線程的CPU占用率。
[0016]本實施例中,通過計算當前運行的每個進程和/或線程在一定時間段內(nèi)的CPU占用率,使得用戶可以清楚、準確、快速地找到導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因,避免由于某些應(yīng)用的高負荷運行導(dǎo)致移動終端電量的浪費以及發(fā)熱引起移動終端的損壞,延長移動終端的使用壽命。
[0017]優(yōu)選地,根據(jù)所述CPU總運行時間差值及所述當前運行的每個進程和/或線程占用的CPU運行時間差值,計算所述當前運行的每個進程和/或線程的CPU占用率,采用如下方式:
[0018]通過將所述當前運行的每個進程和/或線程占用的CPU運行時間差值分別除以所述CPU總運行時間差值,計算所述當前運行的每個進程和/或線程的CPU占用率。
[0019]優(yōu)選地,所述方法還包括:
[0020]接收用戶發(fā)送的顯示CPU占用率的顯示周期;
[0021]獲取時間間隔為所述顯示周期的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間;
[0022]根據(jù)所述兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程在所述顯示周期內(nèi)的CPU占用率;
[0023]顯示所述當前運行的每個進程和/或線程在所述顯示周期內(nèi)的CPU占用率。
[0024]本實施例中,根據(jù)用戶設(shè)置的顯示周期,給用戶提供當前運行的進程和/或線程在顯示周期內(nèi)的CPU占用率,使得用戶可以獲得任意一段時間內(nèi)進程和/或線程的CPU占用率,進而能夠更加準確地找到導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因,避免由于某些應(yīng)用的高負荷運行導(dǎo)致移動終端電量的浪費以及發(fā)熱引起移動終端的損壞,延長移動終端的使用壽命。
[0025]優(yōu)選地,所述方法還包括:
[0026]對所述當前運行的每個進程和/或線程的CPU占用率進行排序;
[0027]顯示排序后的所述當前運行的每個進程和/或線程的CPU占用率。
[0028]本實施例中,通過對進程和/或線程的CPU占用率進行排序,使得每個進程和/或線程的CPU使用情況一目了然,用戶可以清楚、快速地獲知哪個進程和/或線程的CPU占用率較高,從而找到導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因。
[0029]一種移動終端CPU占用率監(jiān)測裝置,包括:
[0030]接收模塊,用于接收用戶發(fā)送的顯示CPU占用率的指示;
[0031]CPU占用率計算模塊,用于根據(jù)所述顯示CPU占用率的指示之前最近的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程的CPU占用率;其中,所述采樣點為根據(jù)預(yù)設(shè)的采樣周期確定的對CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間的采樣時刻;[0032]顯示模塊,用于顯示所述當前運行的每個進程和/或線程的CPU占用率。
[0033]優(yōu)選地,所述裝置還包括:
[0034]采樣模塊,用于根據(jù)所述預(yù)設(shè)的采樣周期采集所述CPU總運行時間,以及當前運行的每個進程和/或線程占用的CPU運行時間。
[0035]優(yōu)選地,所述CPU占用率計算模塊,用于計算所述兩個采樣點的CPU總運行時間差值及所述當前運行的每個進程和/或線程占用的CPU運行時間差值;根據(jù)所述CPU總運行時間差值及所述當前運行的每個進程和/或線程占用的CPU運行時間差值,計算所述當前運行的每個進程和/或線程的CPU占用率。
[0036]優(yōu)選地,所述CPU占用率計算模塊,用于通過將所述當前運行的每個進程和/或線程占用的CPU運行時間差值分別除以所述CPU總運行時間差值,計算所述當前運行的每個進程和/或線程的CPU占用率。
[0037]優(yōu)選地,所述接收模塊,還用于接收用戶發(fā)送的顯示CPU占用率的顯示周期;
[0038]所述CPU占用率計算模塊,用于獲取時間間隔為所述顯示周期的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間;根據(jù)所述兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程在所述顯示周期內(nèi)的CPU占用率;
[0039]所述顯示模塊,用于顯示所述當前運行的每個進程和/或線程在所述顯示周期內(nèi)的CPU占用率。
[0040]優(yōu)選地,所述裝置還包括:
[0041]排序模塊,用于對所述當前運行的每個進程和/或線程的CPU占用率進行排序;
[0042]顯示模塊,用于顯示排序后的所述當前運行的每個進程和/或線程的CPU占用率。
[0043]—種移動終端,包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令:
[0044]接收用戶發(fā)送的顯示CPU占用率的指示;
[0045]根據(jù)所述顯示CPU占用率的指示之前最近的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程的CPU占用率;其中,所述采樣點為根據(jù)預(yù)設(shè)的采樣周期確定的對CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間的采樣時刻;
[0046]顯示所述當前運行的每個進程和/或線程的CPU占用率。本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
[0047]下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
【專利附圖】
【附圖說明】
[0048]附圖用來提供對本發(fā)明的進一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明的實施例一起用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0049]圖1為本發(fā)明實施例中移動終端CPU占用率監(jiān)測方法的流程示意圖;[0050]圖2為本發(fā)明實施例中移動終端CPU占用率監(jiān)測方法的另一流程示意圖;
[0051]圖3為本發(fā)明實施例中移動終端CPU占用率監(jiān)測方法的再一流程示意圖;
[0052]圖4為本發(fā)明實施例中各個進程和/或線程的CPU占用率顯示示意圖;
[0053]圖5為本發(fā)明實施例中各個進程和/或線程的CPU占用率另一顯示示意圖;
[0054]圖6為本發(fā)明實施例中移動終端CPU占用率監(jiān)測裝置的結(jié)構(gòu)示意圖;
[0055]圖7為本發(fā)明實施例中移動終端的結(jié)構(gòu)示意圖。
【具體實施方式】
[0056]以下結(jié)合附圖對本發(fā)明的優(yōu)選實施例進行說明,應(yīng)當理解,此處所描述的優(yōu)選實施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0057]移動終端只能查看所有進程和/或線程的CPU總占用率,且該CPU總占用率是實時的,對于用戶來說,無法根據(jù)實時的CPU總占用率準確地分析操作系統(tǒng)內(nèi)各個進程和/或線程的CPU使用情況,更無法獲知具體是哪個進程和/或線程導(dǎo)致了移動終端的發(fā)熱、耗電量高等問題。其中,進程和/或線程表示:進程和線程中至少一個。
[0058]本發(fā)明實施例中,為了使移動終端用戶能夠清楚地獲知究竟是哪個進程和/或線程導(dǎo)致了移動終端的發(fā)熱、耗電量高等問題,在移動終端的操作系統(tǒng)運行過程中,根據(jù)預(yù)設(shè)的采樣周期對操作系統(tǒng)的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間進行采集。根據(jù)用戶設(shè)定的顯示周期計算操作系統(tǒng)在一定顯示周期內(nèi)每個進程和/或線程的CPU使用情況,。其中,顯示周期應(yīng)為采樣周期的整數(shù)倍,如果采樣周期為5分鐘,則顯示周期可以為5分鐘、10分鐘、15分鐘、20分鐘、30分鐘、60分鐘等,顯示周期由用戶根據(jù)實際需要指定。移動終端用戶可以通過查看操作系統(tǒng)一定顯示周期內(nèi)每個進程和/或線程的CPU使用情況,清楚準確地獲知導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因。
[0059]如圖1所示,本發(fā)明實施例提供一種移動終端CPU占用率監(jiān)測方法,包括以下步驟:
[0060]步驟102,接收用戶發(fā)送的顯示CPU占用率的指示;
[0061]步驟104,根據(jù)顯示CPU占用率的指示之前最近的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算當前運行的每個進程和/或線程的CPU占用率;
[0062]其中,采樣點為根據(jù)預(yù)設(shè)的采樣周期確定的對CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間的采樣時刻;
[0063]步驟106,顯示當前運行的每個進程和/或線程的CPU占用率。
[0064]優(yōu)選地,該方法還包括:根據(jù)預(yù)設(shè)的采樣周期采集CPU總運行時間,以及當前運行的每個進程和/或線程占用的CPU運行時間。
[0065]優(yōu)選地,步驟104中,計算當前運行的每個進程和/或線程的CPU占用率,采用如下方式:
[0066]計算兩個采樣點的CPU總運行時間差值及當前運行的每個進程和/或線程占用的CPU運行時間差值;
[0067]根據(jù)CPU總運行時間差值及當前運行的每個進程和/或線程占用的CPU運行時間差值,計算當前運行的每個進程和/或線程的CPU占用率。[0068]優(yōu)選地,根據(jù)CPU總運行時間差值及當前運行的每個進程和/或線程占用的CPU運行時間差值,計算當前運行的每個進程和/或線程的CPU占用率,采用如下方式:
[0069]通過將當前運行的每個進程和/或線程占用的CPU運行時間差值分別除以CPU總運行時間差值,計算當前運行的每個進程和/或線程的CPU占用率。
[0070]本實施例中,通過計算操作系統(tǒng)中當前運行的每個進程和/或線程在一定統(tǒng)計周期內(nèi)的CPU占用率,使得用戶可以清楚、準確、快速地找到導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因,避免由于某些應(yīng)用的高負荷運行導(dǎo)致移動終端電量的浪費以及發(fā)熱引起移動終端的損壞,延長移動終端的使用壽命。
[0071 ] 優(yōu)選地,如圖2所示,該方法還包括:
[0072]步驟202,接收用戶發(fā)送的顯示CPU占用率的顯示周期;
[0073]步驟204,獲取時間間隔為顯示周期的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占 用的CPU運行時間;
[0074]步驟206,根據(jù)兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算當前運行的每個進程和/或線程在顯示周期內(nèi)的CPU占用率;
[0075]步驟208,顯示當前運行的每個進程和/或線程在顯示周期內(nèi)的CPU占用率。
[0076]本實施例中,根據(jù)用戶設(shè)置的顯示周期,給用戶提供當前運行的進程和/或線程在顯示周期內(nèi)的CPU占用率,使得用戶可以獲得任意一段時間內(nèi)進程和/或線程的CPU占用率,進而能夠更加準確地找到導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因,避免由于某些應(yīng)用的高負荷運行導(dǎo)致移動終端電量的浪費以及發(fā)熱引起移動終端的損壞,延長移動終端的使用壽命。
[0077]優(yōu)選地,本實施例的方法還包括:
[0078]對當前運行的每個進程和/或線程在統(tǒng)計周期內(nèi)的CPU占用率進行排序;
[0079]顯示排序后的當前運行的每個進程和/或線程在統(tǒng)計周期內(nèi)的CPU占用率。
[0080]本實施例中,通過對進程和/或線程的CPU占用率進行排序,使得每個進程和/或線程的CPU使用情況一目了然,用戶可以清楚、快速地獲知哪個進程和/或線程的CPU占用率較高,從而找到導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因。
[0081]如圖3所示,以計算進程pid650system_server的CPU占用率為例,本發(fā)明實施例的移動終端CPU占用率監(jiān)測方法包括以下步驟:
[0082]步驟302,讀取進程pid650system_server在5分鐘前占用的CPU運行時間T1和CPU總運行時間T111,以及當前進程pid650system_server占用的CPU運行時間T’!和CPU總運行時間T’m。
[0083]步驟304,計算進程pid650system_server占用的CPU運行時間差值Tldif= IT1-T'! I,CPU 總運行時間差值 Tmdif= I Tffl-T'm I。
[0084]步驟306,計算進程pid650system_server在5分鐘內(nèi)的CPU占用率為Tldif/Tmdif。
[0085]以下對本發(fā)明實施例的實際實現(xiàn)方式進行具體說明。
[0086]首先,通過一個統(tǒng)計類記錄操作系統(tǒng)中所有進程和/或線程占用的CPU運行時間及CPU總運行時間,例如可以采用Android系統(tǒng)的ProcessStats類(統(tǒng)計各進程CPU使用情況的類)等。以下用PeriodStats類指代上述統(tǒng)計類。[0087]PeriodStats類具有記錄操作系統(tǒng)中所有進程和/或線程占用的CPU運行時間及CPU總運行時間的功能。PeriodStats類還提供update (更新)函數(shù)。在PeriodStats類初始化時,從/proc文件系統(tǒng)(/proc文件系統(tǒng)為Linux系統(tǒng)中提供運行信息、各進程和/或線程信息的文件系統(tǒng))讀取所有進程和/或線程占用的CPU運行時間及CPU總運行時間,并到PeriodStats類對象中保存。
[0088]在調(diào)用update函數(shù)時,依然從/proc文件系統(tǒng)讀取CPU總運行時間、各個進程和/或線程占用的CPU運行時間,計算本次讀取和上次讀取之間的CPU總運行時間差值、各個進程和/或線程占用的CPU運行時間差值,并將PeriodStats類對象中保存的CPU總運行時間、各個進程和/或線程占用的CPU運行時間更新當前讀到的值。
[0089]然后,在BatteryStatsImpl類(Android系統(tǒng)中用來計算電量信息的類)中,添加用于記錄各個統(tǒng)計周期的統(tǒng)計類。例如,要統(tǒng)計5分鐘、10分鐘、30分鐘,60分鐘的CPU占用率,則提供PeriodStats類的四個對象,分別為periodStatsl, periodStats2,periodStats6, periodStatsl2。在BatterStatsImpl類的初始化過程中加入這四個對象的初始化。在BatterStatsImpl類的消息隊列中每隔5分鐘(為各個統(tǒng)計周期的最小公約數(shù))發(fā)送一個消息,例如發(fā)MSG_UPDATE_STATS消息。在消息處理中,判斷當前是第幾個統(tǒng)計周期,如果是第一個周期,則執(zhí)行periodStatsl的update操作,如果是第二個周期,則執(zhí)行periodStats2的update操作,以此類推。
[0090]如圖4和圖5所示,在移動終端操作系統(tǒng)的系統(tǒng)設(shè)置_》電量_》電量使用情況界面中,提供一個CPU使用情況的選項,在點擊該選項時,從BatteryStatsImpl各個統(tǒng)計周期,如5分鐘、10分鐘內(nèi)CPU總運行時間差值、各進程和/或線程占用的CPU運行時間差值,用進程和/或線程占用的CPU運行時間差值除以CPU總運行時間差值得到該統(tǒng)計周期內(nèi)各個進程和/或線程的CPU利用率。然后對各個進程和/或線程的CPU利用率信息進行排序,將結(jié)果以列表的形式顯示給用戶。
[0091]其中,本實施例中,由于已關(guān)閉的進程和/或線程實際對當前CPU的運行情況沒有影響,也不會造成當前移動終端的發(fā)熱或耗電,因此,僅計算當前正在運行的進程和/或線程的CPU占用率,對于已經(jīng)關(guān)閉的進程和/或線程則不予統(tǒng)計。
[0092]本實施例中,對于PeriodStats類對象也可以不放在BatteryStatsImpl類對象中,而是另外實現(xiàn)一個Service (Android的組件之一,可以一直在后臺運行)或者放置在其他可提供周期性運行的代碼中。
[0093]本實施例中,對于CPU占用率的顯示,也可以不放在系統(tǒng)設(shè)置界面中,而是在另外一個應(yīng)用顯示或者生成一個用戶界面友好的文件。
[0094]基于同一發(fā)明構(gòu)思,本發(fā)明實施例還提供一種移動終端CPU占用率監(jiān)測裝置,如圖6所示,該裝置包括:
[0095]接收模塊61,用于接收用戶發(fā)送的顯示CPU占用率的指示;
[0096]CPU占用率計算模塊62,用于根據(jù)顯示CPU占用率的指示之前最近的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算當前運行的每個進程和/或線程的CPU占用率;其中,采樣點為根據(jù)預(yù)設(shè)的采樣周期確定的對CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間的采樣時刻;
[0097]顯示模塊63,用于顯示當前運行的每個進程和/或線程的CPU占用率。[0098]優(yōu)選地,該裝置還包括:
[0099]采樣模塊64,用于根據(jù)預(yù)設(shè)的采樣周期采集CPU總運行時間,以及當前運行的每個進程和/或線程占用的CPU運行時間。
[0100]優(yōu)選地,CPU占用率計算模塊62,用于計算兩個采樣點的CPU總運行時間差值及當前運行的每個進程和/或線程占用的CPU運行時間差值;根據(jù)CPU總運行時間差值及當前運行的每個進程和/或線程占用的CPU運行時間差值,計算當前運行的每個進程和/或線程的CPU占用率。
[0101]優(yōu)選地,CPU占用率計算模塊62,用于通過將當前運行的每個進程和/或線程占用的CPU運行時間差值分別除以CPU總運行時間差值,計算當前運行的每個進程和/或線程的CPU占用率。
[0102]優(yōu)選地,接收模塊61,還用于接收用戶發(fā)送的顯示CPU占用率的顯示周期;
[0103]CPU占用率計算模塊62,用于獲取時間間隔為顯示周期的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間;根據(jù)兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算當前運行的每個進程和/或線程在顯示周期內(nèi)的CPU占用率;
[0104]顯示模塊63,用于顯示當前運行的每個進程和/或線程在顯示周期內(nèi)的CPU占用率。優(yōu)選地,該裝置還包括:
[0105]排序模塊65,用于對當前運行的每個進程和/或線程的CPU占用率進行排序;
[0106]顯示模塊63,用于顯示排序后的當前運行的每個進程和/或線程的CPU占用率。
[0107]圖7是本發(fā)明實施例提供的一種移動終端結(jié)構(gòu)示意圖。如圖7所示,該移動終端可以用于實施上述實施例中提供的移動終端CPU占用率監(jiān)測方法。其中,該移動終端可以為手機、平板電腦pad、穿戴式移動設(shè)備(如智能手表)等。優(yōu)先的:
[0108]移動終端700可以包括通信單元110、包括有一個或一個以上計算機可讀存儲介質(zhì)的存儲器120、輸入單元130、顯示單元140、傳感器150、音頻電路160、WiFi (wirelessfidelity,無線保真)模塊170、包括有一個或者一個以上處理核心的處理器180、以及電源190等部件。本領(lǐng)域技術(shù)人員可以理解,圖7中示出的移動終端結(jié)構(gòu)并不構(gòu)成對移動終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
[0109]通信單元110可用于收發(fā)信息或通話過程中,信號的接收和發(fā)送,該通信單元110可以為RF (Radio Frequency,射頻)電路、路由器、調(diào)制解調(diào)器、等網(wǎng)絡(luò)通信設(shè)備。特別地,當通信單元110為RF電路時,將基站的下行信息接收后,交由一個或者一個以上處理器180處理;另外,將涉及上行的數(shù)據(jù)發(fā)送給基站。通常,作為通信單元的RF電路包括但不限于天線、至少一個放大器、調(diào)諧器、一個或多個振蕩器、用戶身份模塊(SIM)卡、收發(fā)信機、耦合器、LNA (Low Noise Amplifier,低噪聲放大器)、雙工器等。此外,通信單元110還可以通過無線通信與網(wǎng)絡(luò)和其他設(shè)備通信。無線通信可以使用任一通信標準或協(xié)議,包括但不限于 GSM(Global System of Mobile communication,全球移動通訊系統(tǒng))、GPRS (GeneralPacket Radio Service,通用分組無線服務(wù))、CDMA (Code Division Multiple Access,石馬分多址)、WCDMA(Wideband Code Division Multiple Access,寬帶碼分多址)、LTE (LongTerm Evolution,長期演進)、電子郵件、SMS (Short Messaging Service,短消息服務(wù))等。存儲器120可用于存儲軟件程序以及模塊,處理器180通過運行存儲在存儲器120的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器120可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)移動終端700的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器120可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。相應(yīng)地,存儲器120還可以包括存儲器控制器,以提供處理器180和輸入單元130對存儲器120的訪問。
[0110]輸入單元130可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標、操作桿、光學或者軌跡球信號輸入。優(yōu)選地,輸入單元130可包括觸敏表面131以及其他輸入設(shè)備132。觸敏表面131,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面131上或在觸敏表面131附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動相應(yīng)的連接裝置??蛇x的,觸敏表面131可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標,再送給處理器180,并能接收處理器180發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸敏表面131。除了觸敏表面131,輸入單元130還可以包括其他輸入設(shè)備132。優(yōu)選地,其他輸入設(shè)備132可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。
[0111]顯示單元140可用于顯示由用戶輸入的信息或提供給用戶的信息以及移動終端700的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標、視頻和其任意組合來構(gòu)成。顯示單元140可包括顯示面板141,可選的,可以采用IXD (Liquid Crystal Display,液晶顯示器)、OLED (Organic Light-Emitting Diode,有機發(fā)光二極管)等形式來配置顯示面板141。進一步的,觸敏表面131可覆蓋顯示面板141,當觸敏表面131檢測到在其上或附近的觸摸操作后,傳送給處理器180以確定觸摸事件的類型,隨后處理器180根據(jù)觸摸事件的類型在顯示面板141上提供相應(yīng)的視覺輸出。雖然在圖7中,觸敏表面131與顯示面板141是作為兩個獨立的部件來實現(xiàn)輸入和輸入功能,但是在某些實施例中,可以將觸敏表面131與顯示面板141集成而實現(xiàn)輸入和輸出功能。
[0112]移動終端700還可包括至少一種傳感器150,比如光傳感器、運動傳感器以及其他傳感器。優(yōu)選地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板141的亮度,接近傳感器可在移動終端700移動到耳邊時,關(guān)閉顯示面板141和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計姿態(tài)校準)、振動識別相關(guān)功能(比如計步器、敲擊)等;至于移動終端700還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
[0113]音頻電路160、揚聲器161,傳聲器162可提供用戶與移動終端700之間的音頻接口。音頻電路160可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號,傳輸?shù)綋P聲器161,由揚聲器161轉(zhuǎn)換為聲音信號輸出;另一方面,傳聲器162將收集的聲音信號轉(zhuǎn)換為電信號,由音頻電路160接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器180處理后,經(jīng)RF電路110以發(fā)送給比如另一移動終端,或者將音頻數(shù)據(jù)輸出至存儲器120以便進一步處理。音頻電路160還可能包括耳塞插孔,以提供外設(shè)耳機與移動終端700的通信。
[0114]為了實現(xiàn)無線通信,該移動終端上可以配置有無線通信單元170,該無線通信單元170可以為WiFi模塊。WiFi屬于短距離無線傳輸技術(shù),移動終端700通過無線通信單元170可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁和訪問流式媒體等,它為用戶提供了無線的寬帶互聯(lián)網(wǎng)訪問。雖然圖7示出了無線通信單元170,但是可以理解的是,其并不屬于移動終端700的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
[0115]處理器180是移動終端700的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執(zhí)行存儲在存儲器120內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器120內(nèi)的數(shù)據(jù),執(zhí)行移動終端700的各種功能和處理數(shù)據(jù),從而對手機進行整體監(jiān)控??蛇x的,處理器180可包括一個或多個處理核心;優(yōu)選的,處理器180可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器180中。
[0116]移動終端700還包括給各個部件供電的電源190 (比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器180邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。電源190還可以包括一個或一個以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
[0117]盡管未示出,移動終端700還可以包括攝像頭、藍牙模塊等,在此不再贅述。
[0118]具體在本實施例中,移動終端的顯示單元是觸摸屏顯示器,移動終端還包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行一個或者一個以上程序包含用于進行以下操作的指令:
[0119]接收用戶發(fā)送的顯示CPU占用率的指示;
[0120]根據(jù)顯示CPU占用率的指示之前最近的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算當前運行的每個進程和/或線程的CPU占用率;其中,采樣點為根據(jù)預(yù)設(shè)的采樣周期確定的對CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間的采樣時刻;
[0121]顯示當前運行的每個進程和/或線程的CPU占用率。
[0122]較佳的,還包含用于進行以下操作的指令:
[0123]根據(jù)預(yù)設(shè)的采樣周期采集CPU總運行時間,以及當前運行的每個進程和/或線程占用的CPU運行時間。較佳的,還包含用于進行以下操作的指令:
[0124]計算兩個采樣點的CPU總運行時間差值及當前運行的每個進程和/或線程占用的CPU運行時間差值;
[0125]根據(jù)CPU總運行時間差值及當前運行的每個進程和/或線程占用的CPU運行時間差值,計算當前運行的每個進程和/或線程的CPU占用率。
[0126]較佳的,還包含用于進行以下操作的指令:[0127]通過將當前運行的每個進程和/或線程占用的CPU運行時間差值分別除以CPU總運行時間差值,計算當前運行的每個進程和/或線程的CPU占用率。
[0128]較佳的,還包含用于進行以下操作的指令:
[0129]接收用戶發(fā)送的顯示CPU占用率的顯示周期;
[0130]獲取時間間隔為顯示周期的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間;
[0131]根據(jù)兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算當前運行的每個進程和/或線程在顯示周期內(nèi)的CPU占用率;
[0132]顯示當前運行的每個進程和/或線程在顯示周期內(nèi)的CPU占用率。
[0133]較佳的,還包含用于進行以下操作的指令:
[0134]對當前運行的每個進程和/或線程的CPU占用率進行排序;
[0135]顯示排序后的當前運行的每個進程和/或線程的CPU占用率。本實施例中,通過計算操作系統(tǒng)中當前運行的每個進程和/或線程在一定統(tǒng)計周期內(nèi)的CPU占用率,使得用戶可以清楚、準確、快速地找到導(dǎo)致移動終端的發(fā)熱、耗電量高等問題的原因,避免由于某些應(yīng)用的高負荷運行導(dǎo)致移動終端電量的浪費以及發(fā)熱引起移動終端的損壞,延長移動終端的使用壽命。
[0136]本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結(jié)合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(zhì)(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產(chǎn)品的形式。
[0137]本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設(shè)備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
[0138]這些計算機程序指令也可存儲在能引導(dǎo)計算機或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
[0139]這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計算機或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設(shè)備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
[0140]顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
【權(quán)利要求】
1.一種移動終端CPU占用率監(jiān)測方法,其特征在于,包括: 接收用戶發(fā)送的顯示CPU占用率的指示; 根據(jù)所述顯示CPU占用率的指示之前最近的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程的CPU占用率;其中,所述采樣點為根據(jù)預(yù)設(shè)的采樣周期確定的對CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間的采樣時刻; 顯示所述當前運行的每個進程和/或線程的CPU占用率。
2.根據(jù)權(quán)利要求1所示的方法,其特征在于,所述方法還包括: 根據(jù)所述預(yù)設(shè)的采樣周期采集所述CPU總運行時間,以及當前運行的每個進程和/或線程占用的CPU運行時間。
3.根據(jù)權(quán)利要求1所示的方法,其特征在于,計算所述當前運行的每個進程和/或線程的CPU占用率,采用如下方式: 計算所述兩個采樣點的CPU總運行時間差值及所述當前運行的每個進程和/或線程占用的CPU運行時間 差值; 根據(jù)所述CPU總運行時間差值及所述當前運行的每個進程和/或線程占用的CPU運行時間差值,計算所述當前運行的每個進程和/或線程的CPU占用率。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,根據(jù)所述CPU總運行時間差值及所述當前運行的每個進程和/或線程占用的CPU運行時間差值,計算所述當前運行的每個進程和/或線程的CPU占用率,采用如下方式: 通過將所述當前運行的每個進程和/或線程占用的CPU運行時間差值分別除以所述CPU總運行時間差值,計算所述當前運行的每個進程和/或線程的CPU占用率。
5.根據(jù)權(quán)利要求1所示的方法,其特征在于,所述方法還包括: 接收用戶發(fā)送的顯示CPU占用率的顯示周期; 獲取時間間隔為所述顯示周期的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間; 根據(jù)所述兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程在所述顯示周期內(nèi)的CPU占用率; 顯示所述當前運行的每個進程和/或線程在所述顯示周期內(nèi)的CPU占用率。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括: 對所述當前運行的每個進程和/或線程的CPU占用率進行排序; 顯示排序后的所述當前運行的每個進程和/或線程的CPU占用率。
7.一種移動終端CPU占用率監(jiān)測裝置,其特征在于,包括: 接收模塊,用于接收用戶發(fā)送的顯示CPU占用率的指示; CPU占用率計算模塊,用于根據(jù)所述顯示CPU占用率的指示之前最近的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程的CPU占用率;其中,所述采樣點為根據(jù)預(yù)設(shè)的采樣周期確定的對CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間的采樣時刻;顯示模塊,用于顯示所述當前運行的每個進程和/或線程的CPU占用率。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 采樣模塊,用于根據(jù)所述預(yù)設(shè)的采樣周期采集所述CPU總運行時間,以及當前運行的每個進程和/或線程占用的CPU運行時間。
9.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述CPU占用率計算模塊,用于計算所述兩個采樣點的CPU總運行時間差值及所述當前運行的每個進程和/或線程占用的CPU運行時間差值;根據(jù)所述CPU總運行時間差值及所述當前運行的每個進程和/或線程占用的CPU運行時間差值,計算所述當前運行的每個進程和/或線程的CPU占用率。
10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,所述CPU占用率計算模塊,用于通過將所述當前運行的每個進程和/或線程占用的CPU運行時間差值分別除以所述CPU總運行時間差值,計算所述當前運行的每個進程和/或線程的CPU占用率。
11.根據(jù)權(quán)利要求9所述的裝置,其特征在于, 所述接收模塊,還用于接收用戶發(fā)送的顯示CPU占用率的顯示周期; 所述CPU占用率計算模塊,用于獲取時間間隔為所述顯示周期的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間;根據(jù)所述兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程在所述顯示周期內(nèi)的CPU占用率; 所述顯示模塊,用于顯示所述當前運行的每個進程和/或線程在所述顯示周期內(nèi)的CPU占用率。`
12.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括: 排序模塊,用于對所述當前運行的每個進程和/或線程的CPU占用率進行排序; 所述顯示模塊,用于顯示排序后的所述當前運行的每個進程和/或線程的CPU占用率。
13.—種移動終端,其特征在于,包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行所述一個或者一個以上程序包含用于進行以下操作的指令: 接收用戶發(fā)送的顯示CPU占用率的指示; 根據(jù)所述顯示CPU占用率的指示之前最近的兩個采樣點采集到的CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間,計算所述當前運行的每個進程和/或線程的CPU占用率;其中,所述采樣點為根據(jù)預(yù)設(shè)的采樣周期確定的對CPU總運行時間及當前運行的每個進程和/或線程占用的CPU運行時間的采樣時刻; 顯示所述當前運行的每個進程和/或線程的CPU占用率。
【文檔編號】G06F11/30GK103455407SQ201310395879
【公開日】2013年12月18日 申請日期:2013年9月3日 優(yōu)先權(quán)日:2013年9月3日
【發(fā)明者】梁金祥, 孫鵬, 袁軍, 李明浩 申請人:小米科技有限責任公司