本發(fā)明涉及信息安全技術(shù)領(lǐng)域,尤其涉及一種進(jìn)程保護(hù)的方法及其裝置。
背景技術(shù):隨著目前Android系統(tǒng)的相關(guān)智能產(chǎn)品越來越多。因Android系統(tǒng)友好的操作界面、豐富的擴(kuò)展應(yīng)用以及開源性質(zhì),使得目前Android系統(tǒng)在智能產(chǎn)品市場占用率上的遙遙領(lǐng)先于其他系統(tǒng)。但是隨著Android智能設(shè)備的增多,越來越多的Android智能設(shè)備,存在系統(tǒng)對一些產(chǎn)品的特性滿足度不夠的情況。比如Android系統(tǒng)在管理內(nèi)置應(yīng)用程序時,有其的進(jìn)程級別劃分和管理機(jī)制,即將不同的應(yīng)用程序劃分不同的進(jìn)程級別,進(jìn)程級別越高,越不容易被Android的Lowmemorykiller(低內(nèi)存時結(jié)束進(jìn)程)內(nèi)存管理機(jī)制結(jié)束。當(dāng)Android智能產(chǎn)品的內(nèi)存不夠時,Lowmemorykiller內(nèi)存管理機(jī)制自動結(jié)束一些應(yīng)用程序,且優(yōu)先將應(yīng)用程序的進(jìn)程級別低的應(yīng)用程序結(jié)束。但是,對于一些應(yīng)用進(jìn)程為產(chǎn)品的主打產(chǎn)品而應(yīng)用進(jìn)程對應(yīng)的進(jìn)程級別又不高時,Lowmemorykiller內(nèi)存管理機(jī)制不能識別這些應(yīng)用程序,會將這些對于智能產(chǎn)品很重要的程序自動結(jié)束。
技術(shù)實現(xiàn)要素:本發(fā)明的主要目的是提供一種進(jìn)程保護(hù)的方法及其裝置,旨在保護(hù)一些重要的進(jìn)程而不會輕易被內(nèi)存管理機(jī)制結(jié)束。為了達(dá)到上述目的,本發(fā)明提出一種進(jìn)程保護(hù)的方法,包括以下步驟:當(dāng)系統(tǒng)內(nèi)存值低于第一預(yù)設(shè)閥值時,判斷所有選中待結(jié)束的進(jìn)程是否屬于被保護(hù)的進(jìn)程;若所述進(jìn)程屬于被保護(hù)的進(jìn)程,則判斷所述進(jìn)程的進(jìn)程級別實時數(shù)值是否等于第二預(yù)設(shè)閥值;若所述進(jìn)程的進(jìn)程級別實時數(shù)值不等于第二預(yù)設(shè)閥值,則提高所述進(jìn)程的進(jìn)程級別;若所述進(jìn)程的進(jìn)程級別實時數(shù)值等于第二預(yù)設(shè)閥值,則結(jié)束所述進(jìn)程。優(yōu)選地,所述提高所述進(jìn)程的進(jìn)程級別的步驟之前還包括:判斷所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)是否等于第三預(yù)設(shè)閥值;若所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)等于第三預(yù)設(shè)閥值,則結(jié)束所述進(jìn)程;若所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)不等于第三預(yù)設(shè)閥值,則提高所述進(jìn)程的進(jìn)程級別,減少所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)。優(yōu)選地,所述判斷所述進(jìn)程的進(jìn)程級別實時數(shù)值是否等于第二預(yù)設(shè)閥值的步驟之前還包括:判斷所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)是否等于第三預(yù)設(shè)閥值;若所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)等于第三預(yù)設(shè)閥值,則結(jié)束所述進(jìn)程;若所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)不等于第三預(yù)設(shè)閥值,則判斷所述進(jìn)程的進(jìn)程級別實時數(shù)值是否等于第二預(yù)設(shè)閥值;當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值不等于第二預(yù)設(shè)閥值時,則提高所述進(jìn)程的進(jìn)程級別,減少所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù);當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值等于第二預(yù)設(shè)閥值時,則結(jié)束所述進(jìn)程。優(yōu)選地,所述減少所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)的步驟替換為:當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值提高到第二預(yù)設(shè)閥值時,設(shè)置所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)為第三預(yù)設(shè)閥值;當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值沒有提高到第二預(yù)設(shè)閥值時,減少所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)。優(yōu)選地,所述判斷進(jìn)程是否屬于被保護(hù)的進(jìn)程的的步驟之前還包括:預(yù)設(shè)所述被保護(hù)的進(jìn)程名稱與所述保護(hù)次數(shù)計數(shù)的映射關(guān)系。本發(fā)明進(jìn)一步還提出一種進(jìn)程保護(hù)的裝置,包括:第一判斷模塊,用于系統(tǒng)當(dāng)內(nèi)存值低于第一預(yù)設(shè)閥值時,判斷所有選中待結(jié)束的進(jìn)程是否屬于被保護(hù)的進(jìn)程;第二判斷模塊,用于當(dāng)判斷所述進(jìn)程屬于被保護(hù)的進(jìn)程時,判斷所述進(jìn)程的進(jìn)程級別實時數(shù)值是否等于第二預(yù)設(shè)閥值;進(jìn)程級別提高模塊,用于當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值不等于第二預(yù)設(shè)閥值時,提高所述進(jìn)程的進(jìn)程級別;進(jìn)程結(jié)束模塊,用于當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值等于第二預(yù)設(shè)閥值時,結(jié)束所述進(jìn)程。優(yōu)選地,所述進(jìn)程保護(hù)的裝置還包括:第三判斷模塊:用于判斷所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)是否等于第三預(yù)設(shè)閥值;保護(hù)次數(shù)計數(shù)更新模塊:用于減少所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)。所述進(jìn)程級別提高模塊還用于當(dāng)所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)不等于第三預(yù)設(shè)閥值時,提高所述進(jìn)程的進(jìn)程級別,所述進(jìn)程結(jié)束模塊還用于當(dāng)所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)等于第三預(yù)設(shè)閥值,結(jié)束所述進(jìn)程;優(yōu)選地,所述進(jìn)程結(jié)束模塊還用于當(dāng)所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)等于第三預(yù)設(shè)閥值時,結(jié)束所述進(jìn)程;所述第二判斷模塊還用于當(dāng)所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)不等于第三預(yù)設(shè)閥值時,判斷所述進(jìn)程的進(jìn)程級別實時數(shù)值是否等于第二預(yù)設(shè)閥值;所述進(jìn)程級別提高模塊還用于當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值不等于第二預(yù)設(shè)閥值時,提高所述進(jìn)程的進(jìn)程級別;所述進(jìn)程結(jié)束模塊還用于當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值等于第二預(yù)設(shè)閥值時時,結(jié)束所述進(jìn)程。優(yōu)選地,所述保護(hù)次數(shù)計數(shù)更新模塊還用于當(dāng)所述進(jìn)程的實時進(jìn)程級別數(shù)值提高到第二預(yù)設(shè)閥值時,設(shè)置所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)為第三預(yù)設(shè)閥值。優(yōu)選地,所述進(jìn)程保護(hù)的裝置還包括:保護(hù)次數(shù)計數(shù)預(yù)設(shè)模塊,用于預(yù)設(shè)所述被保護(hù)的進(jìn)程名稱與所述保護(hù)次數(shù)計數(shù)的映射關(guān)系。本發(fā)明提出的進(jìn)程保護(hù)的方法,通過提高進(jìn)程的進(jìn)程級別,達(dá)到保護(hù)一些比較重要進(jìn)程的目的。因為進(jìn)程級別越高,進(jìn)程就越不容易被Lowmemorykiller內(nèi)存管理機(jī)制所選中為待結(jié)束的進(jìn)程。這樣,即使有些對產(chǎn)品而言比較重要進(jìn)程被Android系統(tǒng)劃分的進(jìn)程等級不高,通過本方法逐步提高重要進(jìn)程的進(jìn)程級別,從而達(dá)到保護(hù)進(jìn)程的目的。同時,本發(fā)明設(shè)置了進(jìn)程級別提高的上限值,保證應(yīng)用程序的進(jìn)程不會對系統(tǒng)進(jìn)程進(jìn)行干擾,避免影響系統(tǒng)進(jìn)程的正常運行。另外,本發(fā)明提出的進(jìn)程保護(hù)的方法不會影響現(xiàn)有的系統(tǒng)平臺上其它進(jìn)程的正常運行,而且實現(xiàn)簡單、部署方便。附圖說明圖1為本發(fā)明進(jìn)程保護(hù)的方法第一實施例的流程示意圖;圖2為本發(fā)明進(jìn)程保護(hù)的方法第二實施例的流程示意圖;圖3為本發(fā)明進(jìn)程保護(hù)的方法第三實施例的流程示意圖;圖4為本發(fā)明進(jìn)程保護(hù)的方法第四實施例的流程示意圖;圖5為本發(fā)明進(jìn)程保護(hù)的方法第五實施例的流程示意圖;圖6為本發(fā)明進(jìn)程保護(hù)的裝置第一實施例的結(jié)構(gòu)示意圖。本發(fā)明目的的實現(xiàn)、功能特點及優(yōu)點將結(jié)合實施例,參照附圖做進(jìn)一步說明。具體實施方式下面結(jié)合附圖及具體實施例就本發(fā)明的技術(shù)方案做進(jìn)一步的說明。應(yīng)當(dāng)理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。參照圖1,圖1為本發(fā)明進(jìn)程保護(hù)的方法第一實施例的流程示意圖。本發(fā)明提出一種進(jìn)程保護(hù)的方法,包括以下步驟:步驟S10,當(dāng)系統(tǒng)內(nèi)存值低于第一預(yù)設(shè)閥值時,判斷所有選中待結(jié)束的進(jìn)程是否屬于被保護(hù)的進(jìn)程;若選中待結(jié)束進(jìn)程屬于被保護(hù)的進(jìn)程,執(zhí)行步驟S20,若所述選中待結(jié)束進(jìn)程不屬于被保護(hù)的進(jìn)程,執(zhí)行步驟S30。值得說明的是,在該步驟中,選中待結(jié)束的進(jìn)程可為多個或者單個,對于多個進(jìn)程的情形,按該步驟進(jìn)行逐一判斷即可。本發(fā)明以Android系統(tǒng)主要為例說明,并不限定本發(fā)明方法用于Android系統(tǒng)上,如本發(fā)明提出的進(jìn)程保護(hù)的方法也可用于iOS、Windows等操作系統(tǒng)。在Android系統(tǒng)中,Lowmemorykiller內(nèi)存管理機(jī)制生效時會選中一批程序進(jìn)程,并直接將選中的一批程序進(jìn)程結(jié)束掉。對于Android系統(tǒng)來說,進(jìn)程級別數(shù)值有1-15、0以及小于0等,并且所述進(jìn)程級別數(shù)值越低,級別越高,進(jìn)程級別數(shù)值為0或小于0屬于系統(tǒng)進(jìn)程。這些系統(tǒng)進(jìn)程由Android系統(tǒng)中的應(yīng)用機(jī)制persistent屬性來保護(hù),Android系統(tǒng)中的persistent屬性是將系統(tǒng)進(jìn)程保護(hù),使系統(tǒng)進(jìn)程永遠(yuǎn)都不會被Lowmemorykiller內(nèi)存管理機(jī)制所結(jié)束。Android進(jìn)程級別數(shù)值越高,進(jìn)程級別越低,進(jìn)程越容易被Lowmemorykiller內(nèi)存管理機(jī)制所結(jié)束。而本方法具體可設(shè)置一被保護(hù)的進(jìn)程的預(yù)置數(shù)據(jù)庫,將一些重要的進(jìn)程的名稱保存在預(yù)置數(shù)據(jù)庫中,并作為后續(xù)判斷進(jìn)程是否為被保護(hù)進(jìn)程的依據(jù)。在本實施例中,以Android系統(tǒng)為例,第一預(yù)設(shè)閥值可設(shè)置為總內(nèi)存的10%、20%、30%、40%或50%,即當(dāng)內(nèi)存剩余量低于總內(nèi)存的10%、20%、30%、40%或50%時,本發(fā)明的內(nèi)存管理機(jī)制開始生效,將按Lowmemorykiller內(nèi)存管理機(jī)制自動結(jié)束部分不被保護(hù)進(jìn)程,并按步驟S20處理被保護(hù)進(jìn)程。通過將當(dāng)前選中的待結(jié)束的進(jìn)程名稱與預(yù)置數(shù)據(jù)庫存儲的名稱進(jìn)行對比,判斷當(dāng)前的選中為待結(jié)束的進(jìn)程是否為被保護(hù)的進(jìn)程。若當(dāng)前的選中為待結(jié)束的進(jìn)程不是被保護(hù)的進(jìn)程時,直接結(jié)束該程序。步驟S20,判斷所述進(jìn)程的實時進(jìn)程級別數(shù)值是否等于第二預(yù)設(shè)閥值。若所述進(jìn)程的進(jìn)程級別實時數(shù)值不等于第二預(yù)設(shè)閥值,則執(zhí)行步驟S40;若所述進(jìn)程的進(jìn)程級別實時數(shù)值等于第二預(yù)設(shè)閥值,則執(zhí)行步驟S30;步驟S30,結(jié)束所述進(jìn)程。步驟S40,提高所述進(jìn)程的進(jìn)程級別;本實施例中,根據(jù)Android系統(tǒng)的進(jìn)程管理機(jī)制,第二預(yù)設(shè)閥值優(yōu)選設(shè)置為1,當(dāng)然第二預(yù)設(shè)閥值也可設(shè)置為其它值,本發(fā)明對此不作限定,如可設(shè)置為2、3等。同時優(yōu)選地,每次被選中為待結(jié)束的進(jìn)程時,則提高進(jìn)程的進(jìn)程級別一級,即進(jìn)程級別數(shù)值減1。因為當(dāng)應(yīng)用程序進(jìn)程的進(jìn)程級別數(shù)值等于1時,如果再次提高進(jìn)程級別,此時,進(jìn)程級別數(shù)值為0或0以下的數(shù)值。這時,這部分應(yīng)用程序的進(jìn)程級別與系統(tǒng)進(jìn)程的進(jìn)程級別相同,這部分進(jìn)程會占住系統(tǒng)進(jìn)程的內(nèi)存,從而影響系統(tǒng)進(jìn)程的正常運行。因此,當(dāng)進(jìn)程級別數(shù)值等于1時,就不再提高進(jìn)程級別,結(jié)束當(dāng)前進(jìn)程。當(dāng)前的選中為待結(jié)束的進(jìn)程為被保護(hù)的進(jìn)程時,每一次被選中為待結(jié)束的進(jìn)程時,通過本方法提高一級進(jìn)程級別,從而達(dá)到保護(hù)進(jìn)程的目的,且提高進(jìn)程級別的次數(shù)上限為第二預(yù)設(shè)閥值。即只要進(jìn)程級別沒有提高到第二預(yù)設(shè)閥值時,進(jìn)程每被選中為待結(jié)束的進(jìn)程就提高一次進(jìn)程級別。每提高一次進(jìn)程級別,該進(jìn)程在下次Lowmemorykiller內(nèi)存管理機(jī)制生效時,越不容易被選中為待結(jié)束的進(jìn)程,從而通過不斷提高進(jìn)程的級別達(dá)到逐級增強(qiáng)對進(jìn)程的保護(hù)的目的。本發(fā)明提出的進(jìn)程保護(hù)的方法,通過提高進(jìn)程的進(jìn)程級別,達(dá)到保護(hù)一些比較重要進(jìn)程的目的。因為進(jìn)程級別越高,進(jìn)程就越不容易被Lowmemorykiller內(nèi)存管理機(jī)制所選中為待結(jié)束的進(jìn)程。這樣,即使有些對產(chǎn)品而言比較重要進(jìn)程被Android系統(tǒng)劃分的進(jìn)程等級不高,通過本方法逐步提高重要進(jìn)程的進(jìn)程級別,從而達(dá)到保護(hù)進(jìn)程的目的。同時,本發(fā)明設(shè)置了進(jìn)程級別提高的上限值,保證應(yīng)用程序的進(jìn)程不會對系統(tǒng)進(jìn)程進(jìn)行干擾,避免影響系統(tǒng)進(jìn)程的正常運行。另外,本發(fā)明提出的進(jìn)程保護(hù)的方法不會影響現(xiàn)有的系統(tǒng)平臺上其它進(jìn)程的正常運行,而且實現(xiàn)簡單、部署方便。具體參照圖2,本發(fā)明提出進(jìn)程保護(hù)的方法的第二實施例,本實施例中與上述實施例不同的是,在步驟S40之前還包括:步驟S50,判斷所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)是否等于第三預(yù)設(shè)閥值;若所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)等于第三預(yù)設(shè)閥值,則執(zhí)行步驟S30,步驟S30,結(jié)束所述進(jìn)程;若所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)不等于第三預(yù)設(shè)閥值,則執(zhí)行步驟S40,執(zhí)行步驟S40后執(zhí)行步驟S60,步驟S40,提高所述進(jìn)程的進(jìn)程級別;步驟S60,減少所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)。具體地,本實施例中,通過對每個被保護(hù)的進(jìn)程對應(yīng)設(shè)置一保護(hù)次數(shù)計數(shù),即相當(dāng)于對進(jìn)程級別提高的次數(shù)進(jìn)行限定。本實施例中,優(yōu)選進(jìn)程級別每提高一級,相應(yīng)的保護(hù)次數(shù)計數(shù)就減少1,當(dāng)然也可設(shè)置其它進(jìn)程級別與保護(hù)次數(shù)計數(shù)的函數(shù)關(guān)系。本實施例中,以第三預(yù)設(shè)閥值設(shè)為0為例說明,即當(dāng)保護(hù)次數(shù)計數(shù)減少至0時,且對應(yīng)的實時的進(jìn)程級別未到1時,停止對進(jìn)程級別的提高。當(dāng)然第三預(yù)設(shè)閥值也可設(shè)置為其它值,本發(fā)明對此不作限定。具體舉例說明,設(shè)定進(jìn)程A的初始進(jìn)程級別數(shù)值為10,進(jìn)程B的初始進(jìn)程級別數(shù)值為10(初始進(jìn)程級別為Android系統(tǒng)對進(jìn)程A、B自動定義的進(jìn)程級別)。我們設(shè)定進(jìn)程A的保護(hù)次數(shù)計數(shù)為3,進(jìn)程B的保護(hù)次數(shù)計數(shù)為2,通過本方法對進(jìn)程A提高到進(jìn)程級別數(shù)值為8時不再提高,進(jìn)程B提高到進(jìn)程級別數(shù)值為7時不再提高,即對進(jìn)程B的保護(hù)級別優(yōu)于進(jìn)程A。另外,如果當(dāng)進(jìn)程C的初始進(jìn)程級別數(shù)值為10,而設(shè)定保護(hù)次數(shù)計數(shù)為15時,本方法將進(jìn)程C提高到進(jìn)程級別數(shù)值為1時,此時對應(yīng)的實時保護(hù)次數(shù)計數(shù)雖然沒有遞減到0,但是進(jìn)程級別已經(jīng)提高到1,本方法將不再提高進(jìn)程C的進(jìn)程,否則不斷提高進(jìn)程的級別會影響到系統(tǒng)進(jìn)程的正常運行。當(dāng)然,也可將所有被保護(hù)的進(jìn)程的保護(hù)次數(shù)計數(shù)設(shè)定為同一個值,從而避免了針對不同的進(jìn)程設(shè)定不同的保護(hù)次數(shù)計數(shù)的過程。本實施例提出的進(jìn)程保護(hù)的方法,可以對各個進(jìn)程的級別提高的次數(shù)限制,從而使本進(jìn)程保護(hù)的方法更加靈活。具體參照圖3,提出本進(jìn)程保護(hù)的方法的第三實施例。本實施例與上述第二實施例不同的是,本實施例中,步驟S50在步驟S20之前執(zhí)行,即步驟S30的判斷結(jié)果為待結(jié)束的進(jìn)程屬于被保護(hù)的進(jìn)程時,執(zhí)行步驟S50,若判斷所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)等于第三預(yù)設(shè)閥值,則執(zhí)行步驟S30,當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值不等于第二預(yù)設(shè)閥值時,則執(zhí)行步驟S40,和步驟S60;當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值等于第二預(yù)設(shè)閥值時,則執(zhí)行步驟S30。本實施例中,將判斷進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)等于第三預(yù)設(shè)閥值置于判斷進(jìn)程的進(jìn)程級別實時數(shù)值等于第二預(yù)設(shè)閥值之前。具體參照圖4,提出本進(jìn)程保護(hù)的方法的第四實施例。本實施例與上述第三實施例不同的是,將步驟S60替換為:步驟S61,當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值提高到第二預(yù)設(shè)閥值時,設(shè)置所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)為第三預(yù)設(shè)閥值;步驟S62,當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值沒有提高到第二預(yù)設(shè)閥值時,減少所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)。本實施例與第三實施例不同的是,本實施例對進(jìn)程已經(jīng)提高到1的進(jìn)程的保護(hù)次數(shù)計數(shù)進(jìn)行歸0處理,在下次循環(huán)進(jìn)行本進(jìn)程保護(hù)方法時,經(jīng)步驟S60的判斷,直接結(jié)束當(dāng)前進(jìn)程,從而避免了下一次選中為被結(jié)束的進(jìn)程時,還要對當(dāng)前進(jìn)程進(jìn)行步驟S20的判斷,進(jìn)而節(jié)省了系統(tǒng)的開銷。本發(fā)明提出進(jìn)程保護(hù)的方法的第五實施例。參照圖5,圖5為本發(fā)明進(jìn)程保護(hù)的方法第五實施例的流程示意圖。本實施例與上述第四實施例不同的是,在步驟S10之前還包括:步驟S70,預(yù)設(shè)所述被保護(hù)的進(jìn)程名稱與所述保護(hù)次數(shù)計數(shù)的映射關(guān)系。優(yōu)選映射關(guān)系為映射關(guān)系表。預(yù)設(shè)的過程只進(jìn)行一次,此后,這個映射關(guān)系表中進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)根據(jù)循環(huán)判斷的結(jié)果實時更新。在其它變形實施例中,步驟S70也可在第一實施例、第二實施例和第三實施例的步驟S10之前執(zhí)行。本進(jìn)程保護(hù)的方法通過設(shè)置對應(yīng)的保護(hù)次數(shù)計數(shù),可以根據(jù)不同的進(jìn)程設(shè)定不同的保護(hù)次數(shù)計數(shù),以限定相應(yīng)提高進(jìn)程級別的次數(shù),從而靈活地根據(jù)不同進(jìn)程的設(shè)定不同的保護(hù)等級。具體本進(jìn)程保護(hù)的方法實現(xiàn)步驟如下:1)、修改Linux進(jìn)程結(jié)構(gòu)體task_struct,增加count整數(shù)段。count代表應(yīng)用程序進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù),并設(shè)count的初始值為0。2)、如設(shè)置lowmemorykiller的內(nèi)存閥值的方法類似,設(shè)置我們需要保護(hù)的進(jìn)程package名稱,名稱必須和task_struct中的comm字段相同,路徑名稱可以設(shè)置為:/sys/module/lowmemorykiller/parameters/comm./sys/module/lowmemorykiller/parameters/count3)、在Android框架層加入配置文件,設(shè)置需要保護(hù)的package名稱和設(shè)置對應(yīng)的count,并編寫java代碼讀取該配置文件將內(nèi)容write到:/sys/module/lowmemorykiller/parameters/comm.//package名稱/sys/module/lowmemorykiller/parameters/count//count數(shù)值package名稱和count這2組內(nèi)容是一一對應(yīng)的。4)、修改lowmemorykiller.c文件,加入package名稱和count這兩組參數(shù)的讀取模塊。5)、修改lowmemorykiller.c中l(wèi)owmem_shink方法,增加package名稱和count這兩組參數(shù)的判斷保護(hù)機(jī)制。本發(fā)明進(jìn)一步還提出一種進(jìn)程保護(hù)的裝置。參照圖6,提出本進(jìn)程保護(hù)的裝置的第一實施例。本實施例中,進(jìn)程保護(hù)的裝置包括:第一判斷模塊10,用于當(dāng)系統(tǒng)內(nèi)存值低于第一預(yù)設(shè)閥值時,判斷所有選中待結(jié)束的進(jìn)程是否屬于被保護(hù)的進(jìn)程;第二判斷模塊20,用于當(dāng)判斷所述進(jìn)程屬于被保護(hù)的進(jìn)程時,判斷所述進(jìn)程的進(jìn)程級別實時數(shù)值是否等于第二預(yù)設(shè)閥值;進(jìn)程級別提高模塊30,用于當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值不等于第二預(yù)設(shè)閥值時,提高所述進(jìn)程的進(jìn)程級別;進(jìn)程結(jié)束模塊40,用于當(dāng)所述第一判斷模塊10判定目標(biāo)進(jìn)程非屬于保護(hù)的進(jìn)程,并且當(dāng)前內(nèi)存值低于第一預(yù)設(shè)閥值時結(jié)束目標(biāo)進(jìn)程;或者所述進(jìn)程的進(jìn)程級別實時數(shù)值等于第二預(yù)設(shè)閥值時,結(jié)束所述進(jìn)程。本發(fā)明以進(jìn)程保護(hù)的裝置應(yīng)用于Android系統(tǒng)主要為例說明,本發(fā)明對此不作限定。以Android系統(tǒng)為例說明,第一預(yù)設(shè)閥值為總內(nèi)存的10%、20%、30%、40%或50%,即當(dāng)內(nèi)存剩余量低于總內(nèi)存的10%、20%、30%、40%或50%時,Lowmemorykiller內(nèi)存管理機(jī)制開始生效。現(xiàn)有技術(shù)中,Lowmemorykiller內(nèi)存管理機(jī)制選中一批程序,并直接將選中的一批程序結(jié)束掉。而本方法具體可設(shè)置一被保護(hù)的進(jìn)程的預(yù)置數(shù)據(jù)庫,將一些重要的進(jìn)程的名稱保存在預(yù)置數(shù)據(jù)庫中。通過將當(dāng)前選中的待結(jié)束的進(jìn)程的名稱與預(yù)置數(shù)據(jù)庫存儲的名稱進(jìn)行對比,判斷當(dāng)前的選中為待結(jié)束的進(jìn)程是否為被保護(hù)的進(jìn)程。當(dāng)前的選中為待結(jié)束的進(jìn)程不是被保護(hù)的進(jìn)程時,直接結(jié)束該程序。本實施例中,根據(jù)Android系統(tǒng)的進(jìn)程管理機(jī)制,第二預(yù)設(shè)閥值優(yōu)選設(shè)置為1,同時優(yōu)選每次提高進(jìn)程的進(jìn)程級別一級。因為當(dāng)應(yīng)用程序進(jìn)程的進(jìn)程級別數(shù)值等于1時,如果再次提高進(jìn)程級別,此時,進(jìn)程級別數(shù)值為0或0以下的數(shù)值。這時,這部分應(yīng)用程序的進(jìn)程級別與系統(tǒng)進(jìn)程的進(jìn)程級別相同,這部分進(jìn)程會占住系統(tǒng)進(jìn)程的內(nèi)存,從而影響系統(tǒng)進(jìn)程的正常運行。因此,當(dāng)進(jìn)程級別數(shù)值等于1時,就不再提高進(jìn)程級別,結(jié)束當(dāng)前進(jìn)程。當(dāng)前的選中為待結(jié)束的進(jìn)程為被保護(hù)的進(jìn)程時,通過提高進(jìn)程的進(jìn)程級別達(dá)到保護(hù)進(jìn)程的目的。提高進(jìn)程級別的上限是不大于第二預(yù)設(shè)閥值。本發(fā)明提出的進(jìn)程保護(hù)的裝置,通過進(jìn)程級別提高模塊30提高進(jìn)程的進(jìn)程級別,達(dá)到保護(hù)一些比較重要進(jìn)程的目的。因為進(jìn)程級別數(shù)值越高,進(jìn)程就越不容易被Lowmemorykiller內(nèi)存管理機(jī)制所選中為待結(jié)束的進(jìn)程。這樣,即使有些對產(chǎn)品而言比較重要進(jìn)程被Android系統(tǒng)劃分的進(jìn)程等級不高,通過本裝置逐步提高重要進(jìn)程的進(jìn)程級別,從而達(dá)到保護(hù)進(jìn)程的目的。同時,本發(fā)明設(shè)置了進(jìn)程級別提高的上限值,保證應(yīng)用程序的進(jìn)程不會對系統(tǒng)進(jìn)程進(jìn)行干擾,避免影響系統(tǒng)進(jìn)程的正常運行。另外,本發(fā)明提出的進(jìn)程保護(hù)的裝置不會影響現(xiàn)有的系統(tǒng)平臺上其它進(jìn)程的正常運行,而且實現(xiàn)簡單、部署方便。本發(fā)明提出進(jìn)程保護(hù)的裝置的第二實施例。本實施例中,進(jìn)程保護(hù)的裝置還包括:第三判斷模塊:用于判斷所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)是否等于第三預(yù)設(shè)閥值;保護(hù)次數(shù)計數(shù)更新模塊:用于減少所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)。所述進(jìn)程級別提高模塊還用于當(dāng)所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)不等于第三預(yù)設(shè)閥值時,提高所述進(jìn)程的進(jìn)程級別,所述進(jìn)程結(jié)束模塊40還用于當(dāng)所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)等于第三預(yù)設(shè)閥值,結(jié)束所述進(jìn)程;具體地,本實施例中,通過對每個被保護(hù)的進(jìn)程對應(yīng)設(shè)置一保護(hù)次數(shù)計數(shù),即相當(dāng)于對進(jìn)程級別提高的次數(shù)進(jìn)行限定。本實施例中,優(yōu)選進(jìn)程級別每提高一級,相應(yīng)的保護(hù)次數(shù)計數(shù)就減少1,當(dāng)然也可設(shè)置其它進(jìn)程級別與保護(hù)次數(shù)計數(shù)的函數(shù)關(guān)系。本實施例中,以第三預(yù)設(shè)閥值設(shè)為0為例說明,即當(dāng)保護(hù)次數(shù)計數(shù)減少至0時,且對應(yīng)的實時的進(jìn)程級別未到1時,停止提高進(jìn)程級別。進(jìn)一步地,所述進(jìn)程結(jié)束模塊還用于當(dāng)所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)等于第三預(yù)設(shè)閥值時,結(jié)束所述進(jìn)程;所述第二判斷模塊還用于當(dāng)所述進(jìn)程對應(yīng)的實時保護(hù)次數(shù)計數(shù)不等于第三預(yù)設(shè)閥值時,判斷所述進(jìn)程的進(jìn)程級別實時數(shù)值是否等于第二預(yù)設(shè)閥值;所述進(jìn)程級別提高模塊30還用于當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值不等于第二預(yù)設(shè)閥值時,提高所述進(jìn)程的進(jìn)程級別;所述進(jìn)程結(jié)束模塊40還用于當(dāng)所述進(jìn)程的進(jìn)程級別實時數(shù)值等于第二預(yù)設(shè)閥值時時,結(jié)束所述進(jìn)程。進(jìn)一步地,所述保護(hù)次數(shù)計數(shù)更新模塊還用于當(dāng)所述進(jìn)程的實時進(jìn)程級別數(shù)值提高到第二預(yù)設(shè)閥值時,設(shè)置所述進(jìn)程對應(yīng)的保護(hù)次數(shù)計數(shù)為第三預(yù)設(shè)閥值。進(jìn)一步地,本進(jìn)程保護(hù)的裝置還包括:保護(hù)次數(shù)計數(shù)預(yù)設(shè)模塊,用于預(yù)設(shè)所述被保護(hù)的進(jìn)程名稱與所述保護(hù)次數(shù)計數(shù)的映射關(guān)系。本進(jìn)程保護(hù)的裝置通過保護(hù)次數(shù)計數(shù)預(yù)設(shè)模塊設(shè)置對應(yīng)的保護(hù)次數(shù)計數(shù),針對不同的進(jìn)程設(shè)定不同的保護(hù)次數(shù)計數(shù),以限定相應(yīng)提高進(jìn)程級別的次數(shù),從而靈活地根據(jù)不同進(jìn)程的設(shè)定不同的保護(hù)等級。以上所述僅為本發(fā)明的優(yōu)選實施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)變換,或直接或間接運用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。