本發(fā)明涉及終端應用領(lǐng)域,尤其涉及一種后臺應用管理裝置、終端及后臺應用管理方法。
背景技術(shù):
現(xiàn)有終端,例如基于Android系統(tǒng)的手機,由于Android系統(tǒng)開源,并且Android眾多面向應用層API給Android應用開發(fā)者帶了巨大的自由發(fā)揮空間,這使得用戶可以安裝大量的APK在手機上,應用開發(fā)者在應用層面,對系統(tǒng)的資源,尤其是內(nèi)存和計算資源的合理使用方面重視度不夠,或者出于其他原因,如為了應用背后的商家消息推送,惡意的用戶信息搜集,長時間占用系統(tǒng)資源而不釋放。雖然用戶知道這些應用對設(shè)備使用造成了困擾,但是束手無策。
應用長時間的駐留,對系統(tǒng)資源造成了嚴重的浪費,同時也可能對用戶的隱私造成威脅。Android原生機制無法解決這種問題?,F(xiàn)有基于Android系統(tǒng)的手機,其手機內(nèi)存管理方案采用被動管理方式,一般在以下三種條件下才會去觸發(fā)內(nèi)存回收機制:可用內(nèi)存到達閥值,觸發(fā)LowMemoryKiller進行進程級別的內(nèi)存回收;應用內(nèi)部報出運行時異?;蛘咂渌?qū)е碌倪M程死亡,對其子進程進行的被動回收;應用退出或者存在長時間閑置的內(nèi)存占用對象,進程內(nèi)部產(chǎn)生垃圾,通過GC(Garbage Collection)對這些垃圾進行回收。
技術(shù)實現(xiàn)要素:
本發(fā)明實施例提供一種后臺應用管理裝置、終端及后臺應用管理方法,以解決現(xiàn)有技術(shù)無法主動對終端后臺程序進行管理的問題。
為解決上述技術(shù)問題,本發(fā)明實施例采用以下技術(shù)方案:
一種后臺應用管理裝置,包括:
檢測模塊,用于檢測是否滿足清理后臺應用的清理條件;
清理模塊,用于若滿足清理條件,則根據(jù)清理名單,對后臺運行的應用進行清理。
進一步地,清理條件包括終端待機持續(xù)時長大于閾值;檢測模塊用于檢測終端的待機持續(xù)時長,判斷待機持續(xù)時長是否大于閾值,若大于,則滿足清理條件。
進一步地,還包括計時器,計時器用于在終端進入待機狀態(tài)時開始計時,檢測模塊用于檢測計時器的計時結(jié)果確定待機持續(xù)時長。
進一步地,清理模塊用于通過屬性設(shè)置的方式,對后臺運行應用中屬于清理名單的應用進行進程級別內(nèi)存回收。
一種終端,其包括本發(fā)明實施例提供的后臺應用管理裝置。
一種后臺應用管理方法,包括:
檢測是否滿足清理后臺應用的清理條件;
若滿足清理條件,則根據(jù)清理名單,對后臺運行的應用進行清理。
進一步地,清理條件包括終端待機持續(xù)時長大于閾值;檢測是否滿足清理后臺應用的清理條件包括:
檢測終端的待機持續(xù)時長;
判斷待機持續(xù)時長是否大于閾值;
若待機持續(xù)時長大于閾值,則滿足清理條件;
若待機持續(xù)時長小于閾值,則不滿足清理條件。
進一步地,檢測終端的待機持續(xù)時長包括:
在終端進入待機狀態(tài)時,激活計時器開始計時;
檢測計時器的計時結(jié)果確定待機持續(xù)時長。
進一步地,檢測是否滿足清理后臺應用的清理條件包括:
在終端進入待機狀態(tài)時,激活喚醒鬧鐘,喚醒鬧鐘用于觸發(fā)清理后臺應用;
判斷喚醒鬧鐘是否到期;
若喚醒鬧鐘到期,則滿足清理條件;
若喚醒鬧鐘沒有到期,則不滿足清理條件。
進一步地,對后臺運行的應用進行清理包括:
根據(jù)清理名單確定后臺運行應用中需要被清理的目標應用;
通過屬性設(shè)置的方式,對目標應用進行進程級別內(nèi)存回收。
本發(fā)明實施例提供的后臺應用管理方法,檢測是否滿足清理后臺應用的清理條件,若滿足清理條件,則根據(jù)清理名單,對后臺運行的應用進行清理,這樣,用戶可以通過設(shè)置清理名單來對后臺應用進行管理,即本發(fā)明提出一種主動回收的方式對內(nèi)存進行回收,解決了現(xiàn)有技術(shù)無法主動對終端后臺程序進行管理的問題,殺掉非必須駐留的應用,釋放系統(tǒng)資源,同時保護了用戶的隱私,防止現(xiàn)在大量的第三方低質(zhì)量Android應用拉低系統(tǒng)性能,導致不良的用戶體驗。
附圖說明
圖1為本發(fā)明實施例一提供的后臺應用管理方法的流程圖;
圖2為本發(fā)明實施例二提供的后臺應用管理裝置的示意圖;
圖3為本發(fā)明實施例三提供的后臺應用管理方法的流程圖;
圖4為本發(fā)明實施例三提供的清理名單的效果圖。
具體實施方式
本發(fā)明適用于所有終端,包括PC、手機、PAD等。下面通過具體實施方式結(jié)合附圖對本發(fā)明作進一步詳細說明。
實施例一:
圖1為本發(fā)明實施例一提供的后臺應用管理方法的流程圖,請參考圖1,包括如下流程:
S101:檢測是否滿足清理后臺應用的清理條件;
S102:若滿足清理條件,則根據(jù)清理名單,對后臺運行的應用進行清理。在一實施例中,上述實施例的清理條件包括終端待機持續(xù)時長大于閾值;檢測是否滿足清理后臺應用的清理條件包括:
檢測終端的待機持續(xù)時長;
判斷待機持續(xù)時長是否大于閾值;
若待機持續(xù)時長大于閾值,則滿足清理條件;
若待機持續(xù)時長小于閾值,則不滿足清理條件。
在一實施例中,上述實施例的檢測終端的待機持續(xù)時長包括:
在終端進入待機狀態(tài)時,激活計時器開始計時;
檢測計時器的計時結(jié)果確定待機持續(xù)時長。
在一實施例中,上述實施例的檢測是否滿足清理后臺應用的清理條件包括:
在終端進入待機狀態(tài)時,激活喚醒鬧鐘,喚醒鬧鐘用于觸發(fā)清理后臺應用;
判斷喚醒鬧鐘是否到期;
若喚醒鬧鐘到期,則滿足清理條件;
若喚醒鬧鐘沒有到期,則不滿足清理條件。
在一實施例中,上述實施例的對后臺運行的應用進行清理包括:
根據(jù)清理名單確定后臺運行應用中需要被清理的目標應用;
通過屬性設(shè)置的方式,對目標應用進行進程級別內(nèi)存回收。
實施例二:
圖2為本發(fā)明實施例二提供的后臺應用管理裝置的示意圖,如圖2所示,本實施例提供的后臺應用管理裝置包括:
檢測模塊21,用于檢測是否滿足清理后臺應用的清理條件;
清理模塊22,用于若滿足清理條件,則根據(jù)清理名單,對后臺運行的應用進行清理。
在一實施例中,上述實施例的清理條件包括終端待機持續(xù)時長大于閾值;檢測模塊21用于檢測終端的待機持續(xù)時長,判斷待機持續(xù)時長是否大于閾值,若大于,則滿足清理條件。
在一實施例中,上述實施例的后臺應用管理裝置還包括計時器,計時器用于在終端進入待機狀態(tài)時開始計時,檢測模塊21用于檢測計時器的計時結(jié)果確定待機持續(xù)時長。
在一實施例中,上述實施例的清理模塊22用于通過屬性設(shè)置的方式,對后臺運行應用中屬于清理名單的應用進行進程級別內(nèi)存回收。
對應的,本發(fā)明提供了一種終端,其包括本發(fā)明實施例提供的后臺應用管理裝置。
在一些實施例,上述所有實施例中的功能模塊,如檢測模塊21及清理模塊22都可以由處理器實現(xiàn),處理器的實現(xiàn)方式包括但不局限于可編程器件、處理器芯片與存儲器的組合等方式。
實施例三:
現(xiàn)結(jié)合具體應用場景對本發(fā)明做進一步的詮釋說明。
本實施例提供一種在待機過程中通過進程級別內(nèi)存回收來釋放系統(tǒng)資源,保護用戶隱私,同時提升用戶的使用體驗。在待機過程中,對那些用戶可感知度差的應用進行強制退出,回收內(nèi)存,釋放其占用的系統(tǒng)資源。同時為用戶提供可配置應用名單,理解用戶意圖,建立回收優(yōu)先級。
作為獨立的內(nèi)存管理模塊,需要設(shè)定其功能觸發(fā)的時機和制訂回收策略,關(guān)于用戶可配置名單,即清理名單等,需要提供單獨的人機交互界面,系統(tǒng)或者系統(tǒng)預置管理類應用在data(數(shù)據(jù))分區(qū)創(chuàng)建文件記錄。
如圖3所示,本實施例提供的后臺應用管理方法包括:終端進入待機狀態(tài)后,如滅屏10分鐘后開始按照該名單提供的信息進行進程級別的內(nèi)存回收,采用的方式直接發(fā)kill信號給改進程,其具體步驟不再贅述。
關(guān)于清理名單的配置界面:
如圖4所示,清理名單的配置界面可以包括終端內(nèi)所有的非系統(tǒng)應用,用戶可以根據(jù)需要選擇部分或全部應用作為清理對象,用戶配置清理名單,系統(tǒng)將名單中的包名保存存在data分區(qū),保證當用戶通過OTA(Over-the-Air,空中下載)的方式升級后該數(shù)據(jù)不會被擦除。新安裝的第三方應用會默認加入此名單,當系統(tǒng)判定滿足清理條件時,會參考此名單完成開始清理。名單設(shè)計,每條只需向用戶展示應用icon,應用名稱,一個單選框讓用戶選擇是否加入。
關(guān)于清理過程:
由于清理動作在滅屏十分鐘之后開始觸發(fā),但是一般系統(tǒng)在滅屏無操作一分鐘之內(nèi)會進入待機狀態(tài),待機下的CPU是不會進行計算的,所以使用鬧鐘的方式,將啟動時間放在滅屏后的10分鐘,這時申請一個wakelock,保證喚醒設(shè)備開始執(zhí)行清理任務時,設(shè)備不會因為沒有用戶輸入事件而再次進入待機狀態(tài)。
如果在滅屏開始后的10min之內(nèi),設(shè)備屏幕電量,待機結(jié)束,那么在滅屏時的清理計劃應該被取消,否則在用戶使用中進行原有的清理動作,可能會導致用戶使用設(shè)備過程中點擊Launcher中的應用被拉起后閃退現(xiàn)象。因此需要在此階段如果接到亮屏事件,則將鬧鐘移除,取消計劃,等待下一次滅屏重新設(shè)置鬧鐘。
關(guān)于清理動作:
由于清理過程耗時要求足夠短暫,使用frameworks層的接口進行清理,如AMS的forceStopPackage(String)通常很耗時,這樣在清理時間會持續(xù)很久,如果在清理過程中用戶選擇亮屏,并且開始操作設(shè)備,那么很有可能出現(xiàn)閃退現(xiàn)象。鑒于此,我們可以使用shell腳本的形式,直接使用native層的指令對應用的進程進行操作。然后將此shell腳本在rc中聲明為一個服務,采用屬性(ctl.start)觸發(fā)的形式啟動此服務執(zhí)行操作。如果亮屏,那么可以同樣使用屬性設(shè)置的方式隨時終止。
通過以上實施例的實施可知,本發(fā)明實施例提供的方法具備以下有益效果:
本發(fā)明實施例提供的后臺應用管理方法,檢測是否滿足清理后臺應用的清理條件,若滿足清理條件,則根據(jù)清理名單,對后臺運行的應用進行清理,這樣,用戶可以通過設(shè)置清理名單來對后臺應用進行管理,即本發(fā)明提出一種主動回收的方式對內(nèi)存進行回收,解決了現(xiàn)有技術(shù)無法主動對終端后臺程序進行管理的問題,殺掉非必須駐留的應用,釋放系統(tǒng)資源,同時保護了用戶的隱私,防止現(xiàn)在大量的第三方低質(zhì)量Android應用拉低系統(tǒng)性能,導致不良的用戶體驗。
以上內(nèi)容是結(jié)合具體的實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的保護范圍。