本發(fā)明涉及通信技術(shù)領(lǐng)域,具體而言,涉及一種進(jìn)程處理方法、裝置、移動(dòng)終端及計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)。
背景技術(shù):
現(xiàn)有的諸如android、ios等操作系統(tǒng)中,在系統(tǒng)的內(nèi)存過低(系統(tǒng)的內(nèi)存低于某個(gè)臨界值)的時(shí)候,會(huì)通過lowmemorykiller組件將系統(tǒng)內(nèi)的進(jìn)程kill掉。如果進(jìn)程的服務(wù)尚未完成,則會(huì)將進(jìn)程重啟,而進(jìn)程的重啟,尤其是進(jìn)程過多的時(shí)候,會(huì)導(dǎo)致系統(tǒng)再次處于內(nèi)存過低的狀態(tài),則lowmemorykiller組件再次將系統(tǒng)的進(jìn)程kill掉,這個(gè)無限循環(huán)的動(dòng)作會(huì)對系統(tǒng)造成多余的負(fù)擔(dān),影響了cpu和系統(tǒng)的內(nèi)存,進(jìn)而影響了功耗和性能。
技術(shù)實(shí)現(xiàn)要素:
有鑒于此,本發(fā)明實(shí)施例的目的在于提供一種進(jìn)程處理方法、裝置、移動(dòng)終端及計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì),以改善上述缺點(diǎn)。
第一方面,本發(fā)明實(shí)施例提供了一種進(jìn)程處理方法,該方法包括:在終端的系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況下,當(dāng)檢測到目標(biāo)進(jìn)程被關(guān)閉時(shí),判斷所述進(jìn)程是否滿足預(yù)設(shè)重啟標(biāo)準(zhǔn);將滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)的所述進(jìn)程重啟。
第二方面,本發(fā)明實(shí)施例提供了一種進(jìn)程處理裝置,包括:判斷單元和執(zhí)行單元。判斷單元用于在終端的系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況下,當(dāng)檢測到目標(biāo)進(jìn)程被關(guān)閉時(shí),判斷所述進(jìn)程是否滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)。執(zhí)行單元用于將滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)的所述進(jìn)程重啟。
第三方面,本發(fā)明實(shí)施例提供了一種移動(dòng)終端,包括:處理器和存儲(chǔ)器,所述處理器與所述存儲(chǔ)器耦合。所述存儲(chǔ)器用于存儲(chǔ)程序。所述處理器用于調(diào)用存儲(chǔ)在所述存儲(chǔ)器中的程序,執(zhí)行上述方法。
第四方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)。所述可讀取存儲(chǔ)介質(zhì)存儲(chǔ)有處理器可執(zhí)行的程序代碼于計(jì)算機(jī)內(nèi)。所述可讀取存儲(chǔ)介質(zhì)包括多條指令,所述程序代碼和多條指令被配置成使所述處理器執(zhí)行上述方法。
本發(fā)明實(shí)施例中,在終端的系統(tǒng)內(nèi)存低于預(yù)設(shè)閾值的情況下,即系統(tǒng)處于低內(nèi)存的情況下,當(dāng)目標(biāo)進(jìn)程被關(guān)閉時(shí),在將目標(biāo)進(jìn)程重啟之前,先判斷目標(biāo)進(jìn)程是否滿足預(yù)設(shè)的重啟標(biāo)準(zhǔn),如果滿足,則將目標(biāo)進(jìn)程重啟。因此,相比于現(xiàn)有技術(shù),能夠通過預(yù)設(shè)重啟標(biāo)準(zhǔn)對在系統(tǒng)低內(nèi)存被關(guān)閉的進(jìn)程的重啟操作做一個(gè)篩選,能夠有效避免所有的進(jìn)程全部重啟之后,使得系統(tǒng)再次處于低內(nèi)存的情況下,能夠有效減少對功耗和性能的影響。
本發(fā)明實(shí)施例的其他特征和優(yōu)點(diǎn)將在隨后的說明書闡述,并且,部分地從說明書中變得顯而易見,或者通過實(shí)施本發(fā)明實(shí)施例而了解。本發(fā)明實(shí)施例的目的和其他優(yōu)點(diǎn)可通過在所寫的說明書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來實(shí)現(xiàn)和獲得。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。通過附圖所示,本發(fā)明的上述及其它目的、特征和優(yōu)勢將更加清晰。
圖1為本發(fā)明實(shí)施例提供的移動(dòng)終端的方框圖;
圖2為本發(fā)明第一實(shí)施例提供的進(jìn)程處理方法的步驟流程圖;
圖3為本發(fā)明第一實(shí)施例提供的進(jìn)程處理方法的步驟201的詳細(xì)步驟流程圖;
圖4為本發(fā)明第二實(shí)施例提供的進(jìn)程處理方法的步驟流程圖;
圖5為本發(fā)明第三實(shí)施例提供的進(jìn)程處理方法的步驟流程圖;
圖6為本發(fā)明第一實(shí)施例提供的進(jìn)程處理裝置的模塊框圖;
圖7為本發(fā)明第二實(shí)施例提供的進(jìn)程處理裝置的模塊框圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。因此,以下對在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。同時(shí),在本發(fā)明的描述中,術(shù)語“第一”、“第二”等僅用于區(qū)分描述,而不能理解為指示或暗示相對重要性。
現(xiàn)有android原生機(jī)制在于如果有進(jìn)程因?yàn)閘owmemorykiller給kill掉以后,如果進(jìn)程有尚未完成的服務(wù)會(huì)重啟,但是重啟之后,這些進(jìn)程又占用了內(nèi)存,如果使用者安裝了大量的應(yīng)用,而這些應(yīng)用都有服務(wù)在后臺(tái)執(zhí)行,那么當(dāng)系統(tǒng)在系統(tǒng)低內(nèi)存的時(shí)候,會(huì)驅(qū)使lowmemorykiller去kill進(jìn)程來釋放內(nèi)存,但是kill掉之后,如果應(yīng)用用stick的方式起服務(wù),又會(huì)被叫起來執(zhí)行,使系統(tǒng)又進(jìn)入了低內(nèi)存狀態(tài)而導(dǎo)致一直使系統(tǒng)處于低內(nèi)存狀態(tài),使系統(tǒng)卡頓,使用此技術(shù)可以有效阻擋使用者不在意的應(yīng)用的服務(wù)重啟進(jìn)而優(yōu)化系統(tǒng)整體內(nèi)存,并提升系統(tǒng)效能。因此,為了克服這個(gè)缺陷,本發(fā)明實(shí)施提供了一種進(jìn)程的處理方法及裝置。
請參閱圖1,示出了一種移動(dòng)終端100。具有多點(diǎn)觸摸能力的移動(dòng)終端100可以包括存儲(chǔ)器接口102、一個(gè)或多個(gè)處理器104以及外圍接口106。
存儲(chǔ)器接口102、一個(gè)或多個(gè)處理器104和/或外圍接口106既可以是分立元件,也可以集成在一個(gè)或多個(gè)集成電路中。在移動(dòng)終端100中,各種元件可以通過一條或多條通信總線或信號(hào)線來耦合。傳感器、設(shè)備和子系統(tǒng)可以耦合到外圍接口106,以便幫助實(shí)現(xiàn)多種功能。例如,運(yùn)動(dòng)傳感器110、光傳感器112和距離傳感器114可以耦合到外圍接口106,以方便定向、照明和測距等功能。一個(gè)或多個(gè)其他傳感器116同樣可以與外圍接口106相連,例如定位系統(tǒng)(例如gps接收機(jī))、溫度傳感器、生物測定傳感器或其他感測設(shè)備,由此可以幫助實(shí)施相關(guān)的功能。
相機(jī)子系統(tǒng)120和光學(xué)傳感器122可以用于方便諸如記錄照片和視頻剪輯的相機(jī)功能的實(shí)現(xiàn),其中所述相機(jī)子系統(tǒng)和光學(xué)傳感器例如可以是電荷耦合器件(ccd)或互補(bǔ)金屬氧化物半導(dǎo)體(cmos)光學(xué)傳感器。
可以通過一個(gè)或多個(gè)無線通信子系統(tǒng)124來幫助實(shí)現(xiàn)通信功能,其中無線通信子系統(tǒng)可以包括射頻接收機(jī)和發(fā)射機(jī)和/或光(例如紅外)接收機(jī)和發(fā)射機(jī)。無線通信子系統(tǒng)124的特定設(shè)計(jì)和實(shí)施方式可以取決于移動(dòng)終端100所支持的一個(gè)或多個(gè)通信網(wǎng)絡(luò)。例如,移動(dòng)終端100可以包括被設(shè)計(jì)成支持gsm網(wǎng)絡(luò)、gprs網(wǎng)絡(luò)、edge網(wǎng)絡(luò)、wi-fi或wimax網(wǎng)絡(luò)以及blueboothtm網(wǎng)絡(luò)的無線通信子系統(tǒng)124。
音頻子系統(tǒng)126可以與揚(yáng)聲器128以及麥克風(fēng)130相耦合,以便幫助實(shí)施啟用語音的功能,例如語音識(shí)別、語音復(fù)制、數(shù)字記錄和電話功能。
i/o子系統(tǒng)140可以包括觸摸屏控制器142和/或一個(gè)或多個(gè)其他輸入控制器144。
觸摸屏控制器142可以耦合到觸摸屏146。舉例來說,該觸摸屏146和觸摸屏控制器142可以使用多種觸摸感測技術(shù)中的任何一種來檢測與之進(jìn)行的接觸和移動(dòng)或是暫停,其中感測技術(shù)包括但不局限于電容性、電阻性、紅外和表面聲波技術(shù)。
一個(gè)或多個(gè)其他輸入控制器144可以耦合到其他輸入/控制設(shè)備148,例如一個(gè)或多個(gè)按鈕、搖桿開關(guān)、拇指旋輪、紅外端口、usb端口、和/或指示筆之類的指點(diǎn)設(shè)備。一個(gè)或多個(gè)按鈕(未顯示)可以包括用于控制揚(yáng)聲器128和/或麥克風(fēng)130音量的向上/向下按鈕。
存儲(chǔ)器接口102可以與存儲(chǔ)器150相耦合。該存儲(chǔ)器150可以包括高速隨機(jī)存取存儲(chǔ)器和/或非易失性存儲(chǔ)器,例如一個(gè)或多個(gè)磁盤存儲(chǔ)設(shè)備,一個(gè)或多個(gè)光學(xué)存儲(chǔ)設(shè)備,和/或閃存存儲(chǔ)器(例如nand,nor)。
存儲(chǔ)器150可以是,但不限于,隨機(jī)存取存儲(chǔ)器(randomaccessmemory,ram),只讀存儲(chǔ)器(readonlymemory,rom),可編程只讀存儲(chǔ)器(programmableread-onlymemory,prom),可擦除只讀存儲(chǔ)器(erasableprogrammableread-onlymemory,eprom),電可擦除只讀存儲(chǔ)器(electricerasableprogrammableread-onlymemory,eeprom)等。其中,存儲(chǔ)器150用于存儲(chǔ)程序,所述處理器104在接收到執(zhí)行指令后,執(zhí)行所述程序,后續(xù)本發(fā)明實(shí)施例任一實(shí)施例揭示的流程定義的移動(dòng)終端100所執(zhí)行的方法可以應(yīng)用于處理器104中,或者由處理器104實(shí)現(xiàn)。另外,存儲(chǔ)器150可以存儲(chǔ)操作系統(tǒng)152,例如android、ios或是windowsphone之類的操作系統(tǒng)。該操作系統(tǒng)152可以包括用于處理基本系統(tǒng)服務(wù)以及執(zhí)行依賴于硬件的任務(wù)的指令。存儲(chǔ)器150還可以存儲(chǔ)各種應(yīng)用154。在移動(dòng)設(shè)備運(yùn)行時(shí),會(huì)從存儲(chǔ)器150中加載操作系統(tǒng)152,并且由處理器104執(zhí)行。應(yīng)用154在運(yùn)行時(shí),也會(huì)從存儲(chǔ)器150中加載,并由處理器104執(zhí)行。應(yīng)用154運(yùn)行在操作系統(tǒng)之上,利用操作系統(tǒng)以及底層硬件提供的接口實(shí)現(xiàn)各種用戶期望的功能,如即時(shí)通信、網(wǎng)頁瀏覽、圖片管理等。應(yīng)用可以是獨(dú)立于操作系統(tǒng)提供的,也可以是操作系統(tǒng)自帶的。
處理器104可以是一種集成電路芯片,具有信號(hào)的處理能力。上述的處理器104可以是通用處理器,包括中央處理器(centralprocessingunit,簡稱cpu)、網(wǎng)絡(luò)處理器(networkprocessor,簡稱np)等;還可以是數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)成可編程門陣列(fpga)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件。可以實(shí)現(xiàn)或者執(zhí)行本發(fā)明實(shí)施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等,例如,數(shù)據(jù)處理器、圖像處理器和/或中央處理單元。
請參閱圖2,示出了本發(fā)明實(shí)施例同的一種進(jìn)程處理方法。該方法包括:s201和s202,于本發(fā)明實(shí)施例中,該方法應(yīng)用于移動(dòng)終端,該移動(dòng)終端的系統(tǒng)可以是android、ios或者windowsphone等操作系統(tǒng),作為一種實(shí)施例,該方法應(yīng)用于android系統(tǒng)的移動(dòng)終端,具體地,結(jié)合圖2,為本發(fā)明實(shí)施例提供的方法的實(shí)施過程進(jìn)行具體描述。
s201:在終端的系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況下,當(dāng)檢測到目標(biāo)進(jìn)程被關(guān)閉時(shí),判斷所述進(jìn)程是否滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)。
其中,系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值表示系統(tǒng)進(jìn)入了低內(nèi)存的狀態(tài),此時(shí)終端的應(yīng)用程序運(yùn)行緩慢,甚至系統(tǒng)卡頓。在系統(tǒng)內(nèi)存過低的時(shí)候,通過關(guān)閉(也稱為殺死)一些進(jìn)程,釋放系統(tǒng)的一部分內(nèi)存,能夠緩解系統(tǒng)內(nèi)存過低的狀況。而系統(tǒng)內(nèi),都有在系統(tǒng)內(nèi)存過低的情況下,按照一定策略關(guān)閉進(jìn)程的組件。例如,android系統(tǒng)內(nèi)的lowmemorykiller組件。
具體地,android是一個(gè)多任務(wù)系統(tǒng),也就是說可以同時(shí)運(yùn)行多個(gè)程序。一般來說,啟動(dòng)運(yùn)行一個(gè)程序是有一定的時(shí)間開銷的,因此為了加快運(yùn)行速度,當(dāng)退出一個(gè)程序時(shí),android系統(tǒng)并不會(huì)立即殺掉它,這樣下次再運(yùn)行該程序時(shí),可以很快的啟動(dòng)。隨著系統(tǒng)中保留的程序越來越多,內(nèi)存肯定會(huì)出現(xiàn)不足,lowmemorykiller就是在系統(tǒng)內(nèi)存低于某值時(shí),清除相關(guān)的程序,保障系統(tǒng)保持擁有一定數(shù)量的空閑內(nèi)存。而此處的系統(tǒng)內(nèi)存低于某值,與前述的系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況相同,即表示系統(tǒng)處于低內(nèi)存情況下。
因此,當(dāng)系統(tǒng)在低內(nèi)存的情況下,檢測到系統(tǒng)內(nèi)的目標(biāo)進(jìn)程被關(guān)閉時(shí),在準(zhǔn)備重啟該目標(biāo)進(jìn)程的階段,判斷該進(jìn)程是否滿足預(yù)設(shè)的重啟標(biāo)準(zhǔn)。其中,該預(yù)設(shè)的重啟標(biāo)準(zhǔn)為用戶根據(jù)實(shí)際使用情況而設(shè)定的。例如,該進(jìn)程所對應(yīng)的應(yīng)用程序的需求度,這個(gè)需求度可取決于用戶的使用需求或者興趣等。當(dāng)然,該預(yù)設(shè)的重啟標(biāo)準(zhǔn)也可以是進(jìn)程的使用頻率,即經(jīng)常使用的應(yīng)用程序的進(jìn)程優(yōu)先重啟,對于那些自安裝在終端之后幾乎很少使用的應(yīng)用程序?qū)?yīng)的進(jìn)程,可以選擇在當(dāng)前內(nèi)存過低的情況下不重啟。
具體地,當(dāng)預(yù)設(shè)的重啟標(biāo)準(zhǔn)與進(jìn)程對應(yīng)的應(yīng)用程序的使用頻率有關(guān)的情況下,步驟s201具體可以包括:s2011和s2012。
s2011:獲取所述第一應(yīng)用程序的使用頻率。
第一應(yīng)用程序?yàn)樵撃繕?biāo)進(jìn)程對應(yīng)的應(yīng)用程序,安裝在上述終端上。作為一種實(shí)施方式,該目標(biāo)進(jìn)程為第一應(yīng)用程序?qū)?yīng)的在系統(tǒng)后臺(tái)運(yùn)行的后臺(tái)進(jìn)程。
該第一應(yīng)用程序的使用頻率可以根據(jù)第一應(yīng)用程序自安裝在終端上之后,使用的次數(shù)或者時(shí)間統(tǒng)計(jì)而獲得,也可以是設(shè)定在一個(gè)時(shí)間段內(nèi),統(tǒng)計(jì)該時(shí)間段內(nèi)第一應(yīng)用程序的使用情況。
作為一種實(shí)施方式,第一應(yīng)用程序的使用頻率可以通過以下方式獲得:
獲取所述第一應(yīng)用程序在預(yù)設(shè)時(shí)間段內(nèi)被使用的階段累積時(shí)間,以及所述第一應(yīng)用程序自安裝于所述終端之后被使用的總累積時(shí)間。其中,預(yù)設(shè)時(shí)間段可以是以當(dāng)前時(shí)刻之前的一段時(shí)間內(nèi)。例如,第一應(yīng)用程序在當(dāng)前一個(gè)周內(nèi),則預(yù)設(shè)時(shí)間段為7天,第一應(yīng)用程序被使用了4次,第一次5個(gè)小時(shí),第二次3小時(shí),第三次2小時(shí),第四次4小時(shí),則預(yù)設(shè)時(shí)間段內(nèi),第一應(yīng)用程序被使用4次,被使用了14小時(shí),則使用的次數(shù)(即4次)可以作為第一應(yīng)用程序的使用頻率,也可以將使用的時(shí)間(即14小時(shí))作為第一應(yīng)用程序的使用頻率。具體的,使用次數(shù)和使用的時(shí)間長度,可以通過對操作系統(tǒng)架構(gòu)層的用于應(yīng)用程序啟動(dòng)的api接口的監(jiān)控來獲取。其中,應(yīng)用程序被使用是指應(yīng)用程序響應(yīng)用戶的點(diǎn)擊等指令,在終端的前景打開。例如,微信app,統(tǒng)計(jì)微信app響應(yīng)用戶的點(diǎn)擊操作而被調(diào)用在前景所持續(xù)的時(shí)間,當(dāng)用戶退回到桌面或?qū)⑵渌腶pp調(diào)用在前景時(shí),該統(tǒng)計(jì)時(shí)間的動(dòng)作就停止,即沒在前景時(shí)候的時(shí)間不算在使用時(shí)間的統(tǒng)計(jì)上,也不能作為階段累積時(shí)間的一部分。
然后,再獲取第一應(yīng)用程序自安裝于所述終端之后被使用的總累積時(shí)間。根據(jù)所述第一應(yīng)用程序的階段累積時(shí)間和總累積時(shí)間獲取所述第一應(yīng)用程序的使用頻率。具體地,可以是階段累積時(shí)間和總累積時(shí)間的比值作為使用頻率。
s2012:判斷所述第一應(yīng)用程序的使用頻率是否大于預(yù)設(shè)值,如果所述第一應(yīng)用程序的使用頻率大于預(yù)設(shè)值,則判定所述進(jìn)程滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)。
預(yù)設(shè)值可以根據(jù)用戶的實(shí)際使用情況而定,用于表明用戶在預(yù)設(shè)時(shí)間段內(nèi)經(jīng)常使用第一應(yīng)用程序,即第一應(yīng)用程序是用戶感興趣或關(guān)心的應(yīng)用程序,在系統(tǒng)低內(nèi)存的清下,具有優(yōu)先重啟的必要。
s202:將滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)的所述進(jìn)程重啟。
在判定所述目標(biāo)進(jìn)程滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)的情況下,將所述目標(biāo)進(jìn)程重啟,具體地,可以采用stick的方式啟動(dòng)進(jìn)程,例如,start_sticky。如果不滿足重啟標(biāo)準(zhǔn),可以在系統(tǒng)的低內(nèi)存情況排除之后,再將進(jìn)程啟動(dòng)。具體地,進(jìn)程在系統(tǒng)低內(nèi)存的時(shí)候被關(guān)閉,即殺死后由內(nèi)存中被清除,再啟動(dòng)該進(jìn)程的時(shí)候,可以通過重新創(chuàng)建該進(jìn)程并啟動(dòng)的方式。
請參閱圖4,示出了本發(fā)明實(shí)施例提供的一種進(jìn)程處理方法,包括:步驟s401至步驟s407,下面本發(fā)明實(shí)施例提供的方法的實(shí)施過程進(jìn)行具體描述。
s401:在終端的系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況下,當(dāng)檢測到目標(biāo)進(jìn)程被關(guān)閉時(shí),獲取所述第一應(yīng)用程序在預(yù)設(shè)時(shí)間段內(nèi)被使用的階段累積時(shí)間,以及所述第一應(yīng)用程序自安裝于所述終端之后被使用的總累積時(shí)間。
s402:根據(jù)所述第一應(yīng)用程序的階段累積時(shí)間和總累積時(shí)間獲取所述第一應(yīng)用程序的使用頻率。
s403:獲取每個(gè)第二應(yīng)用程序在預(yù)設(shè)時(shí)間段內(nèi)被使用的階段累積時(shí)間,以及該第二應(yīng)用程序自安裝于所述終端之后被使用的總累積時(shí)間。
其中,步驟s401、402和403的具體實(shí)施過程可以參考前述實(shí)施例,在此,不再贅述。
s404:根據(jù)每個(gè)所述第二應(yīng)用程序的階段累積時(shí)間和總累積時(shí)間獲取每個(gè)所述第二應(yīng)用程序的使用頻率。
其中,每個(gè)所述第二應(yīng)用程序?yàn)樵谒鱿到y(tǒng)低內(nèi)存的情況下被關(guān)閉的所有進(jìn)程中,除目標(biāo)進(jìn)程之外的每個(gè)進(jìn)程對應(yīng)的應(yīng)用程序。
具體的獲取第二應(yīng)用程序的使用頻率的方式可以參考前述針對第一應(yīng)用程序的使用頻率的獲取方式。并且,第一應(yīng)用程序和第二應(yīng)用程序并不限定應(yīng)用程序的數(shù)量為2個(gè),而是用于將第一應(yīng)用程序與在系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況下被關(guān)閉的進(jìn)程對應(yīng)的其他應(yīng)用程序區(qū)分開。
s405:將所述第一應(yīng)用程序的使用頻率和所有所述第二應(yīng)用程序的使用頻率按照由高至低的順序排序獲取優(yōu)先權(quán)序列。
由此,將系統(tǒng)低內(nèi)存的情況下,關(guān)閉的所有的進(jìn)程對應(yīng)的應(yīng)用程序的使用頻率一起排序,按照使用頻率由高到底的順序進(jìn)行排序,構(gòu)成一個(gè)序列,即優(yōu)先權(quán)序列。在該序列內(nèi),排位靠前的表示使用頻率越高,即表示用戶越經(jīng)常使用的應(yīng)用程序。
s406:判斷所述第一應(yīng)用程序在優(yōu)先權(quán)序列的排位是否大于預(yù)設(shè)標(biāo)準(zhǔn)。
預(yù)設(shè)標(biāo)準(zhǔn)為用戶根據(jù)實(shí)際需要而設(shè)定,例如,將優(yōu)先權(quán)序列內(nèi)排位在前4的作為用戶經(jīng)常使用的應(yīng)用程序,則判斷第一應(yīng)用程序在優(yōu)先權(quán)序列的排位是否大于4,如果是,則表示滿足預(yù)設(shè)重啟標(biāo)準(zhǔn),則執(zhí)行步驟s407。
s407:將滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)的所述進(jìn)程重啟。
具體地,步驟s407的實(shí)施方式可以參考前述實(shí)施例,在此不再贅述。
另外,本發(fā)明實(shí)施例提供的進(jìn)程處理方法還用于控制對多個(gè)進(jìn)程的重啟的篩選,具體,請參閱圖5,示出了一種進(jìn)程處理方法,包括:
s501:在終端的系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況下,獲取所有被關(guān)閉的進(jìn)程對應(yīng)的應(yīng)用程序;
假設(shè),在系統(tǒng)低內(nèi)存的情況下關(guān)閉了6個(gè)進(jìn)程,并且6個(gè)進(jìn)程對應(yīng)了6個(gè)不同的應(yīng)用程序,則假設(shè)這6個(gè)應(yīng)用程序分別為app1、app2、app3、app4、app5和app6。
s502:獲取每個(gè)應(yīng)用程序在預(yù)設(shè)時(shí)間段內(nèi)被使用的階段累積時(shí)間和自安裝于終端之后被使用的總累積時(shí)間;
獲取階段累積時(shí)間和總累積時(shí)間可參考前述實(shí)施例,假設(shè)在最近的3天內(nèi),各應(yīng)用程序的階段累積時(shí)間和階段累積時(shí)間如下表所示:
表1
s503:獲取每個(gè)應(yīng)用程序的使用頻率;
則將每個(gè)app的階段累積時(shí)間與總累積時(shí)間相比,得到的每個(gè)應(yīng)用程序的使用頻率的結(jié)果為:app1,6.1%;app2,6.5%;app3,8.0%;app4,9.0%;app5,7.3%;app6,8.6%。其中,以百分比記錄階段累積時(shí)間與總累積時(shí)間的比值。
s504:將每個(gè)應(yīng)用進(jìn)程的使用頻率按照由高至低的順序排序獲取優(yōu)先權(quán)序列;
將上述的結(jié)果按照由高至低的順序排序,則由高至低的順序?yàn)椋篴pp4,app6,app3,app5,app2,app1。則優(yōu)先權(quán)序列為(app4,app6,app3,app5,app2,app1)。
s505:將優(yōu)先權(quán)序列中,預(yù)設(shè)排位之前的應(yīng)用程序的進(jìn)程啟動(dòng)。
優(yōu)選地,將前三個(gè)應(yīng)用程序?qū)?yīng)的進(jìn)程啟動(dòng),即app4,app6,app3對應(yīng)的進(jìn)程重啟,其余的進(jìn)程可以在系統(tǒng)的內(nèi)存高于預(yù)設(shè)閾值,即系統(tǒng)排除低內(nèi)存狀態(tài)時(shí),再啟動(dòng)。因此,通過優(yōu)先權(quán)序列能夠找到用戶經(jīng)常使用的應(yīng)用程序,而往往這些應(yīng)用程序正式用戶真正在乎的應(yīng)用程序,則將這部分應(yīng)用程序?qū)?yīng)的進(jìn)程啟動(dòng),使得系統(tǒng)在低內(nèi)存的情況下的內(nèi)存得到合理的利用,并且也避免了所有的應(yīng)用程序的進(jìn)程都開啟之后,使得系統(tǒng)的內(nèi)存又進(jìn)入低內(nèi)存情況而造成無限循環(huán)地kill掉進(jìn)程和重啟,也避免系統(tǒng)卡頓而影響正常使用。
請參閱圖6,示出了本發(fā)明實(shí)施例提供的進(jìn)程處理裝置600,應(yīng)用于上述的移動(dòng)終端,該進(jìn)程處理裝置600包括:判斷單元601和執(zhí)行單元602。
判斷單元601,用于在終端的系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況下,當(dāng)檢測到目標(biāo)進(jìn)程被關(guān)閉時(shí),判斷所述進(jìn)程是否滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)。
執(zhí)行單元602,用于將滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)的所述進(jìn)程重啟。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
請參閱圖7,示出了本發(fā)明實(shí)施例提供的進(jìn)程處理裝置700,應(yīng)用于上述的移動(dòng)終端,該進(jìn)程處理裝置700包括:判斷單元701和執(zhí)行單元702。
判斷單元701,用于在終端的系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況下,當(dāng)檢測到目標(biāo)進(jìn)程被關(guān)閉時(shí),判斷所述進(jìn)程是否滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)。
具體地,判斷單元701包括:第一獲取子單元7011和判斷子單元7012。
第一獲取子單元7011,用于獲取所述第一應(yīng)用程序的使用頻率。具體地,獲取所述第一應(yīng)用程序在預(yù)設(shè)時(shí)間段內(nèi)被使用的階段累積時(shí)間,以及所述第一應(yīng)用程序自安裝于所述終端之后被使用的總累積時(shí)間;根據(jù)所述第一應(yīng)用程序的階段累積時(shí)間和總累積時(shí)間獲取所述第一應(yīng)用程序的使用頻率。
判斷子單元7012,用于判斷所述第一應(yīng)用程序的使用頻率是否大于預(yù)設(shè)值,如果所述第一應(yīng)用程序的使用頻率大于預(yù)設(shè)值,則判定所述進(jìn)程滿足預(yù)設(shè)重啟標(biāo)準(zhǔn)。
具體的,判斷單元702包括:第二獲取子單元7021、統(tǒng)計(jì)子單元7022、排序子單元7023和啟動(dòng)子單元7024。
第二獲取子單元7021,用于獲取每個(gè)第二應(yīng)用程序在預(yù)設(shè)時(shí)間段內(nèi)被使用的階段累積時(shí)間,以及該第二應(yīng)用程序自安裝于所述終端之后被使用的總累積時(shí)間,其中,每個(gè)所述第二應(yīng)用程序?yàn)樵谒鱿到y(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況下被關(guān)閉的所有進(jìn)程中,除目標(biāo)進(jìn)程之外的每個(gè)進(jìn)程對應(yīng)的應(yīng)用程序。
統(tǒng)計(jì)子單元7022,用于根據(jù)每個(gè)所述第二應(yīng)用程序的階段累積時(shí)間和總累積時(shí)間獲取每個(gè)所述第二應(yīng)用程序的使用頻率。
排序子單元7023,用于將所述第一應(yīng)用程序的使用頻率和所有所述第二應(yīng)用程序的使用頻率按照由高至低的順序排序獲取優(yōu)先權(quán)序列。
啟動(dòng)子單元7024,用于判斷所述第一應(yīng)用程序在優(yōu)先權(quán)序列的排位是否大于預(yù)設(shè)標(biāo)準(zhǔn),若所述第一應(yīng)用程序在優(yōu)先權(quán)序列的排位大于預(yù)設(shè)標(biāo)準(zhǔn),判定所述第一應(yīng)用程序的使用頻率大于預(yù)設(shè)值。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
綜上所述,本發(fā)明實(shí)施例中,在終端的系統(tǒng)內(nèi)存低于預(yù)設(shè)閾值的情況下,即系統(tǒng)處于低內(nèi)存的情況下,當(dāng)目標(biāo)進(jìn)程被關(guān)閉時(shí),在將目標(biāo)進(jìn)程重啟之前,先判斷目標(biāo)進(jìn)程是否滿足預(yù)設(shè)的重啟標(biāo)準(zhǔn),如果滿足,則將目標(biāo)進(jìn)程重啟。具體地,在終端的系統(tǒng)的內(nèi)存低于預(yù)設(shè)閾值的情況下,獲取所有被關(guān)閉的進(jìn)程對應(yīng)的應(yīng)用程序,獲取每個(gè)應(yīng)用程序在預(yù)設(shè)時(shí)間段內(nèi)被使用的階段累積時(shí)間和自安裝于終端之后被使用的總累積時(shí)間,將每個(gè)應(yīng)用進(jìn)程的使用頻率按照由高至低的順序排序獲取優(yōu)先權(quán)序列,根據(jù)優(yōu)先權(quán)序列選出用戶感興趣的應(yīng)用程序,即用戶真正在乎的應(yīng)用程序。因此,相比于現(xiàn)有技術(shù),能夠通過預(yù)設(shè)重啟標(biāo)準(zhǔn)對在系統(tǒng)低內(nèi)存被關(guān)閉的進(jìn)程的重啟操作做一個(gè)篩選,能夠有效避免所有的進(jìn)程全部重啟之后,使得系統(tǒng)再次處于低內(nèi)存的情況下,能夠有效減少對功耗和性能的影響。解決進(jìn)程因?yàn)閮?nèi)存低被kill掉,釋放掉內(nèi)存以后,系統(tǒng)又把這些進(jìn)程重啟,又使系統(tǒng)進(jìn)入低內(nèi)存然后這些剛被重啟的進(jìn)程又被lowmeomrykiller給kill掉,避免這個(gè)無限循環(huán)的動(dòng)作會(huì)對系統(tǒng)造成多余的負(fù)擔(dān),影響了內(nèi)存和cpu,進(jìn)而影響到功耗以及效能。
在本申請所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,也可以通過其它的方式實(shí)現(xiàn)。以上所描述的裝置實(shí)施例僅僅是示意性的,例如,附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個(gè)實(shí)施例的裝置、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)現(xiàn)的體系架構(gòu)、功能和操作。在這點(diǎn)上,流程圖或框圖中的每個(gè)方框可以代表一個(gè)模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個(gè)或多個(gè)用于實(shí)現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實(shí)現(xiàn)方式中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個(gè)連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時(shí)也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個(gè)方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)來實(shí)現(xiàn),或者可以用專用硬件與計(jì)算機(jī)指令的組合來實(shí)現(xiàn)。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能模塊可以集成在一起形成一個(gè)獨(dú)立的部分,也可以是各個(gè)模塊單獨(dú)存在,也可以兩個(gè)或兩個(gè)以上模塊集成形成一個(gè)獨(dú)立的部分。
所述功能如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。應(yīng)注意到:相似的標(biāo)號(hào)和字母在下面的附圖中表示類似項(xiàng),因此,一旦某一項(xiàng)在一個(gè)附圖中被定義,則在隨后的附圖中不需要對其進(jìn)行進(jìn)一步定義和解釋。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。