一種安卓平臺的單任務(wù)模式實現(xiàn)方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及安卓設(shè)備技術(shù)領(lǐng)域,尤其涉及的是一種安卓平臺的單任務(wù)模式實現(xiàn)方法及系統(tǒng),尤其適用于硬件資源有限的場景。
【背景技術(shù)】
[0002]通常情況下安卓設(shè)備能良好的實現(xiàn)多任務(wù)處理,但隨著系統(tǒng)負荷不斷加大,用戶經(jīng)常會感受到設(shè)備變得卡頓。在這種情況下,用戶需要手動去結(jié)束一些應(yīng)用,使得系統(tǒng)恢復(fù)流暢的狀態(tài)。
[0003]另一方面,變頻技術(shù)已經(jīng)逐漸應(yīng)用到了安卓設(shè)備上。目前市場上的主流CPU都提供了對變頻技術(shù)的支持。從linux2.6開始,cpufreq子系統(tǒng)被引入到內(nèi)核。cpufreq子系統(tǒng)一共提供了五種基礎(chǔ)governors (即管理器)供用戶選擇使用,它們分別是userspace(用戶態(tài)模式),conservative (保守模式),ondemand (即時調(diào)整模式),powersave (節(jié)能模式)和performance (性能模式)。而后臺資源消耗的監(jiān)測領(lǐng)域已經(jīng)發(fā)展的較為成熟。故分析governors缺陷如下:
I)powersave、performance等靜態(tài)governors缺乏隨著系統(tǒng)負荷變化而調(diào)整的能力。
[0004]2) userspace這類動態(tài)的governors往往需要使用到一個采樣點,隨著采樣頻率的提高,其本身就消耗著系統(tǒng)資源。
[0005]3)現(xiàn)有的governors主要是針對CPU進行調(diào)節(jié),當(dāng)系統(tǒng)瓶頸為10或其他非CPU原因,并不能有效提高應(yīng)用響應(yīng)速度。
[0006]可見,這種變頻技術(shù)通常是被動的,大都脫離了用戶的實際使用場景。
[0007]因此,現(xiàn)有技術(shù)還有待于改進和發(fā)展。
【發(fā)明內(nèi)容】
[0008]鑒于上述現(xiàn)有技術(shù)的不足,本發(fā)明的目的在于提供一種安卓平臺的單任務(wù)模式實現(xiàn)方法及系統(tǒng),旨在解決現(xiàn)有技術(shù)中安卓設(shè)備在多任務(wù)同時處理時易卡頓,無法自動關(guān)閉部分進程,或無法自動使CPU工作頻率變頻到適應(yīng)于當(dāng)前系統(tǒng)負荷的缺陷。
[0009]本發(fā)明的技術(shù)方案如下:
一種安卓平臺的單任務(wù)模式實現(xiàn)方法,其中,包括步驟:
應(yīng)用開啟時,判斷該應(yīng)用是否已存在于資源消耗統(tǒng)計表中,并判斷該應(yīng)用是否為強資源消耗型應(yīng)用;
當(dāng)該應(yīng)用已存在于資源消耗統(tǒng)計表中且該應(yīng)用為強資源消耗型應(yīng)用時,則將當(dāng)前CPU設(shè)置為最高工作頻率,并在指定定時周期內(nèi)阻塞其他應(yīng)用的運行;
當(dāng)該應(yīng)用在最高工作頻率運行時間超過指定定時周期時,則執(zhí)行其他通信類應(yīng)用。
[0010]所述安卓平臺的單任務(wù)模式實現(xiàn)方法,其中,還包括:
當(dāng)該應(yīng)用在資源消耗統(tǒng)計表中不存在時,則將多核CPU的各CPU均置為最高頻率,并判斷當(dāng)前已啟動應(yīng)用中在資源消耗統(tǒng)計表中不存在的總個數(shù)是否大于或等于I ; 當(dāng)總個數(shù)等于I時,則獲取該應(yīng)用在指定定時周期內(nèi)的CPU消耗平均值,并將該應(yīng)用及與該應(yīng)用對應(yīng)的CPU消耗平均值增加至資源消耗統(tǒng)計表;
判斷該應(yīng)用的CPU消耗平均值是否超于預(yù)設(shè)的CPU頻率閾值,當(dāng)超出時則將資源消耗統(tǒng)計表中該應(yīng)用標(biāo)記為強資源消耗型應(yīng)用,并對應(yīng)更新資源消耗統(tǒng)計表。
[0011]所述安卓平臺的單任務(wù)模式實現(xiàn)方法,其中,還包括:
當(dāng)總個數(shù)大于I時,則阻塞已啟動應(yīng)用;
獲取該應(yīng)用在指定定時周期內(nèi)的CPU消耗平均值,并將該應(yīng)用及與該應(yīng)用對應(yīng)的CPU消耗平均值增加至資源消耗統(tǒng)計表;
判斷該應(yīng)用的CPU消耗平均值是否超于預(yù)設(shè)的CPU頻率閾值,當(dāng)超出時則將資源消耗統(tǒng)計表中該應(yīng)用標(biāo)記為強資源消耗型應(yīng)用,并對應(yīng)更新資源消耗統(tǒng)計表。
[0012]所述安卓平臺的單任務(wù)模式實現(xiàn)方法,其中,還包括:
當(dāng)該應(yīng)用在資源消耗統(tǒng)計表中存在且該應(yīng)用不為強資源消耗型應(yīng)用時,則獲取當(dāng)前CPU頻率,統(tǒng)計當(dāng)前用戶已啟動應(yīng)用,根據(jù)資源消耗統(tǒng)計表獲取所有已啟動應(yīng)用及所需CPU工作頻率總和;
若當(dāng)前CPU頻率大于所需CPU工作頻率總和時,則降低多核CPU頻率中最高值,直至多核CPU的頻率平均值達到所需CPU工作頻率總和對應(yīng)的平均值;
若當(dāng)前CPU頻率小于所需CPU工作頻率總和時,則增大多核CPU頻率中最低值,直至多核CPU的頻率平均值達到所需CPU工作頻率總和對應(yīng)的平均值。
[0013]所述安卓平臺的單任務(wù)模式實現(xiàn)方法,其中,所述資源消耗統(tǒng)計表中對每一應(yīng)用都進行APK名稱、APK對應(yīng)的線程、對應(yīng)各線程的狀態(tài)標(biāo)記位、APK的CPU消耗平均值、APK的CPU消耗當(dāng)前值、APK統(tǒng)計狀態(tài)標(biāo)志位、APK統(tǒng)計次數(shù)、APK統(tǒng)計時間、強資源消耗型應(yīng)用標(biāo)志位及通訊類應(yīng)用標(biāo)志位的記錄。
[0014]—種安卓平臺的單任務(wù)模式實現(xiàn)系統(tǒng),其中,包括:
應(yīng)用判斷模塊,用于應(yīng)用開啟時,判斷該應(yīng)用是否已存在于資源消耗統(tǒng)計表中,并判斷該應(yīng)用是否為強資源消耗型應(yīng)用;
應(yīng)用控制模塊,用于當(dāng)該應(yīng)用已存在于資源消耗統(tǒng)計表中且該應(yīng)用為強資源消耗型應(yīng)用時,則將當(dāng)前CPU頻率設(shè)置為最高工作頻率,并在指定定時周期內(nèi)阻塞其他應(yīng)用的運行;超時控制模塊,用于當(dāng)該應(yīng)用在CPU的最高工作頻率運行時間超過指定定時周期時,則執(zhí)行其他通信類應(yīng)用。
[0015]所述安卓平臺的單任務(wù)模式實現(xiàn)系統(tǒng),其中,還包括:
設(shè)置及判斷模塊,用于當(dāng)該應(yīng)用在資源消耗統(tǒng)計表中不存在時,則將多核CPU的各CPU均置為最高頻率,并判斷當(dāng)前已啟動應(yīng)用中在資源消耗統(tǒng)計表中不存在的總個數(shù)是否大于I;
第一新應(yīng)用統(tǒng)計模塊,用于當(dāng)總個數(shù)等于I時,則獲取該應(yīng)用在指定定時周期內(nèi)的CPU消耗平均值,并將該應(yīng)用及與該應(yīng)用對應(yīng)的CPU消耗平均值增加至資源消耗統(tǒng)計表;
第一統(tǒng)計表更新模塊,用于判斷該應(yīng)用的CPU消耗平均值是否超于預(yù)設(shè)的CPU頻率閾值,當(dāng)超出時則將資源消耗統(tǒng)計表中該應(yīng)用標(biāo)記為強資源消耗型應(yīng)用,并對應(yīng)更新資源消耗統(tǒng)計表。
[0016]所述安卓平臺的單任務(wù)模式實現(xiàn)系統(tǒng),其中,還包括: 應(yīng)用阻塞控制模塊,用于當(dāng)總個數(shù)大于I時,則阻塞其他已啟動應(yīng)用;
第二新應(yīng)用統(tǒng)計模塊,用于獲取該應(yīng)用在指定定時周期內(nèi)的CPU消耗平均值,并將該應(yīng)用及與該應(yīng)用對應(yīng)的CPU消耗平均值增加至資源消耗統(tǒng)計表;
第二統(tǒng)計表更新模塊,用于判斷該應(yīng)用的CPU消耗平均值是否超于預(yù)設(shè)的CPU頻率閾值,當(dāng)超出時則將資源消耗統(tǒng)計表中該應(yīng)用標(biāo)記為強資源消耗型應(yīng)用,并對應(yīng)更新資源消耗統(tǒng)計表。
[0017]所述安卓平臺的單任務(wù)模式實現(xiàn)系統(tǒng),其中,還包括:
工作頻率獲取模塊,用于當(dāng)該應(yīng)用在資源消耗統(tǒng)計表中存在且該應(yīng)用不為強資源消耗型應(yīng)用時,則獲取當(dāng)前CPU頻率,統(tǒng)計當(dāng)前用戶已啟動應(yīng)用,根據(jù)資源消耗統(tǒng)計表獲取所有已啟動應(yīng)用及所需CPU工作頻率總和;
降頻模塊,用于若當(dāng)前CPU頻率大于所需CPU工作頻率總和時,則降低多核CPU頻率中最高值,直至多核CPU的頻率平均值達到所需CPU工作頻率總和對應(yīng)的平均值;
升頻模塊,用于若當(dāng)前CPU頻率小于所需CPU工作頻率總和時,則增大多核CPU頻率中最低值,直至多核CPU的頻率平均值達到所需CPU工作頻率總和對應(yīng)的平均值。
[0018]所述安卓平臺的單任務(wù)模式實現(xiàn)系統(tǒng),其中,所述資源消耗統(tǒng)計表中對每一應(yīng)用都進行APK名稱、APK對應(yīng)的線程、對應(yīng)各線程的狀態(tài)標(biāo)記位、APK的CPU消耗平均值、APK的CPU消耗當(dāng)前值、APK統(tǒng)計狀態(tài)標(biāo)志位、APK統(tǒng)計次數(shù)、APK統(tǒng)計時間、強資源消耗型應(yīng)用標(biāo)志位及通訊類應(yīng)用標(biāo)志位的記錄。
[0019]有益效果:本發(fā)明對安卓設(shè)備中已安裝應(yīng)用進行分析,判斷其資源消耗的類別及程度,并在統(tǒng)計結(jié)果穩(wěn)定之后,由啟動的應(yīng)用來確定當(dāng)前需要的CPU頻率。當(dāng)判斷有強資源消耗型應(yīng)用的情況下將停止其他任務(wù)的處理工作,單獨運行該具有強資源消耗型應(yīng)用標(biāo)識的應(yīng)用,提高了當(dāng)前應(yīng)用的運行流暢程度。
【附圖說明】
[0020]圖1為本發(fā)明所述安卓平臺的單任務(wù)模式實現(xiàn)方法較佳實施例的流程圖;
圖2為本發(fā)明所述安卓平臺的單任務(wù)模式實現(xiàn)方法具體實施例的流程圖;
圖3為本發(fā)明所述安卓平臺的單任務(wù)模式實現(xiàn)系統(tǒng)較佳實施例的結(jié)構(gòu)框圖。
【具體實施方式】
[0021]本發(fā)明提供一種安卓平臺的單任務(wù)模式實現(xiàn)方法及系統(tǒng),為使本發(fā)明的目的、技術(shù)方案及效果更加清楚、明確,以下對本發(fā)明進一步詳細說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0022]請參見圖1,圖1是本發(fā)明所述安卓平臺的單任務(wù)模式實現(xiàn)方法較佳實施例的流程圖。如圖1所示,其包括以下步驟:
步驟S101、應(yīng)用開啟時,判斷該應(yīng)用是否已存在于資源消耗統(tǒng)計表中