內(nèi)存清理方法、裝置及終端的制作方法
【專利摘要】本發(fā)明公開(kāi)了一種內(nèi)存清理方法、裝置及終端,屬于計(jì)算機(jī)【技術(shù)領(lǐng)域】。所述方法包括:獲取系統(tǒng)中的第一空間值,第一空間值表示系統(tǒng)中當(dāng)前處于空閑狀態(tài)的內(nèi)存空間的大??;向系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,第二空間值大于第一空間值;以便系統(tǒng)在接收到申請(qǐng)且檢測(cè)出第二空間值大于第一空間值后,清理被占用的內(nèi)存;并在清理后確認(rèn)分配大小為第二空間值的內(nèi)存空間;在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放大小為第二空間值的內(nèi)存空間,使得大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間。本發(fā)明解決了第三方應(yīng)用程序不具備對(duì)API的調(diào)用權(quán)限,則無(wú)法對(duì)終端的內(nèi)存進(jìn)行清理的問(wèn)題,達(dá)到了擴(kuò)大內(nèi)存清理使用范圍、提高終端處理速度的效果。
【專利說(shuō)明】?jī)?nèi)存清理方法、裝置及終端
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種內(nèi)存清理方法、裝置及終端。
【背景技術(shù)】
[0002]隨著終端的普及,各種終端上的應(yīng)用程序?qū)映霾桓F,在豐富終端功能的同時(shí),也占用了終端的大量?jī)?nèi)存,導(dǎo)致終端的處理速度越來(lái)越慢。為了節(jié)省終端的內(nèi)存,提高終端的處理速度,需要對(duì)終端上長(zhǎng)時(shí)間未使用的應(yīng)用程序所占用的內(nèi)存進(jìn)行清理。
[0003]現(xiàn)有技術(shù)中,終端通過(guò)第三方應(yīng)用程序獲取系統(tǒng)中當(dāng)前運(yùn)行的應(yīng)用程序所占用的內(nèi)存,調(diào)用系統(tǒng)的API (Application Programming Interface,應(yīng)用程序編程接口)關(guān)閉長(zhǎng)時(shí)間未使用的至少一個(gè)應(yīng)用程序,以釋放該至少一個(gè)應(yīng)用程序所占用的內(nèi)存。
[0004]在實(shí)現(xiàn)本發(fā)明的過(guò)程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問(wèn)題:
[0005]現(xiàn)有技術(shù)中,某些系統(tǒng)對(duì)API設(shè)置了調(diào)用權(quán)限,若第三方應(yīng)用程序不具備對(duì)該API的調(diào)用權(quán)限,則無(wú)法調(diào)用該API對(duì)終端的內(nèi)存進(jìn)行清理。比如,蘋果操作系統(tǒng)中的私有API,該私有API是明確規(guī)定不能被外界使用的API,則第三方應(yīng)用程序不能調(diào)用該私有API清理終端的內(nèi)存,縮小了內(nèi)存清理的使用范圍。
【發(fā)明內(nèi)容】
[0006]為了解決第三方應(yīng)用程序不具備對(duì)API的調(diào)用權(quán)限,則無(wú)法對(duì)終端的內(nèi)存進(jìn)行清理的問(wèn)題,本發(fā)明實(shí)施例提供了一種內(nèi)存清理方法、裝置及終端。所述技術(shù)方案如下:
[0007]—方面,本發(fā)明提供了一種內(nèi)存清理方法,所述方法包括:
[0008]獲取系統(tǒng)中的第一空間值,所述第一空間值表示所述系統(tǒng)中當(dāng)前處于空閑狀態(tài)的內(nèi)存空間的大??;
[0009]向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,所述第二空間值大于所述第一空間值;以便所述系統(tǒng)在接收到所述申請(qǐng)且檢測(cè)出所述第二空間值大于所述第一空間值后,清理被占用的內(nèi)存;并在清理后確認(rèn)分配所述大小為第二空間值的內(nèi)存空間;
[0010]在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述大小為第二空間值的內(nèi)存空間,使得所述大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間。
[0011]另一方面,本發(fā)明提供了一種內(nèi)存清理裝置,所述裝置包括:
[0012]第一獲取模塊,用于獲取系統(tǒng)中的第一空間值,所述第一空間值表不所述系統(tǒng)中當(dāng)前處于空閑狀態(tài)的內(nèi)存空間的大小;
[0013]申請(qǐng)模塊,用于向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,所述第二空間值大于所述第一獲取模塊獲取的第一空間值;以便所述系統(tǒng)在接收到所述申請(qǐng)且檢測(cè)出所述第二空間值大于所述第一空間值后,清理被占用的內(nèi)存;并在清理后確認(rèn)分配所述大小為第二空間值的內(nèi)存空間;
[0014]釋放模塊,用于在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述申請(qǐng)模塊申請(qǐng)的大小為第二空間值的內(nèi)存空間,使得所述大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間。
[0015]再一方面,本發(fā)明提供了一種終端,所述終端包括如上所述的內(nèi)存清理裝置。
[0016]本發(fā)明實(shí)施例提供的技術(shù)方案帶來(lái)的有益效果是:
[0017]通過(guò)獲取系統(tǒng)中的第一空間值;向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,所述第二空間值大于所述第一空間值;在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述大小為第二空間值的內(nèi)存空間,使得所述大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間,解決了第三方應(yīng)用程序不具備對(duì)API的調(diào)用權(quán)限,則無(wú)法對(duì)終端的內(nèi)存進(jìn)行清理的問(wèn)題,達(dá)到了擴(kuò)大內(nèi)存清理使用范圍、提高終端處理速度的效果。
【專利附圖】
【附圖說(shuō)明】
[0018]為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1是本發(fā)明實(shí)施例一提供的內(nèi)存清理方法的方法流程圖;
[0020]圖2是本發(fā)明實(shí)施例二提供的內(nèi)存清理方法的方法流程圖;
[0021]圖3是本發(fā)明實(shí)施例三提供的內(nèi)存清理裝置的結(jié)構(gòu)示意圖;
[0022]圖4是本發(fā)明實(shí)施例四提供的內(nèi)存清理裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0024]實(shí)施例一
[0025]請(qǐng)參考圖1,其示出了本發(fā)明實(shí)施例一提供的內(nèi)存清理方法的方法流程圖,該內(nèi)存清理方法可以應(yīng)用于終端中,該終端可以是智能電視、智能手機(jī)或者平板電腦等等。該內(nèi)存清理方法,包括:
[0026]步驟102:獲取系統(tǒng)中的第一空間值,該第一空間值表示系統(tǒng)中當(dāng)前處于空閑狀態(tài)的內(nèi)存空間的大?。?br>
[0027]其中,處于空閑狀態(tài)的內(nèi)存空間中存儲(chǔ)的數(shù)據(jù)是無(wú)效的,該內(nèi)存空間可以隨時(shí)被應(yīng)用程序使用。
[0028]步驟104:向系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,該第二空間值大于第一空間值;以便系統(tǒng)在接收到申請(qǐng)且檢測(cè)出第二空間值大于第一空間值后,清理被占用的內(nèi)存;并在清理后確認(rèn)分配大小為第二空間值的內(nèi)存空間;
[0029]具體地,可以向系統(tǒng)申請(qǐng)第二空間值,該第二空間值大于第一空間值,使系統(tǒng)在檢測(cè)到大小為第一空間值的內(nèi)存空間不夠分配后,對(duì)當(dāng)前程序占用的內(nèi)存空間進(jìn)行清理,并將清理的內(nèi)存空間釋放為處于空閑狀態(tài)的內(nèi)存空間,再次獲取釋放后的第一空間值,并檢測(cè)該第一空間值是否大于第二空間值,在檢測(cè)到該第一空間值大于二空間值后,確認(rèn)分配大小為第二空間值的內(nèi)存空間。
[0030]步驟106:在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放大小為第二空間值的內(nèi)存空間,使得大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間。
[0031]具體地,在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,確定獲得大小為第二空間值的內(nèi)存空間,并釋放該大小為第二空間值的內(nèi)存空間,以進(jìn)一步擴(kuò)大系統(tǒng)中處于空閑狀態(tài)的內(nèi)存空間,提高終端的處理速度。
[0032]綜上所述,本發(fā)明實(shí)施例提供的內(nèi)存清理方法,通過(guò)獲取系統(tǒng)中的第一空間值;向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,所述第二空間值大于所述第一空間值;在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述大小為第二空間值的內(nèi)存空間,使得所述大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間,解決了第三方應(yīng)用程序不具備對(duì)API的調(diào)用權(quán)限,則無(wú)法對(duì)終端的內(nèi)存進(jìn)行清理的問(wèn)題,達(dá)到了擴(kuò)大內(nèi)存清理使用范圍、提高終端處理速度的效果。
[0033]實(shí)施例二
[0034]請(qǐng)參考圖2,其示出了本發(fā)明實(shí)施例二提供的內(nèi)存清理方法的方法流程圖,該內(nèi)存清理方法可以應(yīng)用于終端中,該終端可以是智能電視、智能手機(jī)或者平板電腦等等。該內(nèi)存清理方法,包括:
[0035]步驟202:獲取系統(tǒng)中的第一空間值,該第一空間值表示系統(tǒng)中當(dāng)前處于空閑狀態(tài)的內(nèi)存空間的大??;
[0036]其中,內(nèi)存空間用來(lái)存儲(chǔ)程序運(yùn)行時(shí)需要運(yùn)算的數(shù)據(jù)。當(dāng)內(nèi)存空間未存儲(chǔ)數(shù)據(jù)或存儲(chǔ)的數(shù)據(jù)無(wú)效時(shí),該內(nèi)存空間處于空閑狀態(tài),處于空閑狀態(tài)的內(nèi)存空間可以隨時(shí)分配給程序使用。
[0037]本實(shí)施例中,系統(tǒng)實(shí)時(shí)計(jì)算處于空閑狀態(tài)的內(nèi)存空間的第一空間值,則可以通過(guò)讀取的方式獲取該第一空間值。
[0038]步驟204:獲取系統(tǒng)中的第三空間值,該第三空間值表示系統(tǒng)中在預(yù)設(shè)時(shí)間段內(nèi)未使用的、非系統(tǒng)程序占用的內(nèi)存空間的大小;
[0039]本實(shí)施例中,系統(tǒng)的內(nèi)存空間的狀態(tài)還可以包括占用狀態(tài),占用狀態(tài)是指該內(nèi)存空間中存儲(chǔ)有程序運(yùn)行時(shí)需要運(yùn)算的數(shù)據(jù),處于占用狀態(tài)的內(nèi)存空間不能直接被程序使用,需要對(duì)運(yùn)算的數(shù)據(jù)進(jìn)行存儲(chǔ)且將該內(nèi)存空間的狀態(tài)改為空閑狀態(tài)后,分配給程序使用。
[0040]進(jìn)一步地,可以將程序分為系統(tǒng)程序和非系統(tǒng)程序。系統(tǒng)程序是系統(tǒng)的核心,對(duì)系統(tǒng)程序進(jìn)行清理會(huì)造成系統(tǒng)崩潰,因此,系統(tǒng)程序占用的內(nèi)存空間不能被清理。非系統(tǒng)程序是用戶安裝的程序,用來(lái)豐富終端的應(yīng)用,對(duì)非系統(tǒng)程序進(jìn)行清理并不會(huì)對(duì)系統(tǒng)的運(yùn)行造成影響,因此,非系統(tǒng)程序占用的內(nèi)存空間可以被清理。
[0041]優(yōu)選地,還可以將非系統(tǒng)程序分為預(yù)設(shè)時(shí)間內(nèi)未使用的程序和預(yù)設(shè)時(shí)間內(nèi)使用的程序,其中,預(yù)設(shè)時(shí)間內(nèi)使用的程序還可以分為當(dāng)前正在使用中的程序和當(dāng)前未使用的程序,則系統(tǒng)清理程序占用的內(nèi)存時(shí),可以優(yōu)先對(duì)預(yù)設(shè)時(shí)間內(nèi)未使用的程序占用的內(nèi)存空間進(jìn)行清理,進(jìn)一步地,還可以對(duì)預(yù)設(shè)時(shí)間段內(nèi)使用且當(dāng)前未使用的程序占用的內(nèi)存空間進(jìn)行清理,以進(jìn)一步擴(kuò)大處于空閑狀態(tài)的內(nèi)存空間,對(duì)預(yù)設(shè)時(shí)間內(nèi)使用且當(dāng)前正在使用的程序則禁止清理,以避免關(guān)閉最近打開(kāi)的非系統(tǒng)程序?qū)τ脩粼斐傻挠绊憽F渲?,系統(tǒng)可以通過(guò)使用時(shí)間和/或使用頻率確定待清理的程序,此為現(xiàn)有技術(shù),此處不贅述。
[0042]具體地,系統(tǒng)確定預(yù)設(shè)時(shí)間內(nèi)未使用的程序后,計(jì)算該程序占用的內(nèi)存空間的第三空間值,則可以通過(guò)讀取的方式獲取該第三空間值。[0043]步驟206:將第一空間值與第三空間值相加之和乘以預(yù)定比例,得到第二空間值;
[0044]本實(shí)施例中,第二空間值是需要向系統(tǒng)申請(qǐng)的內(nèi)存空間的大小。若第二空間值太小,則系統(tǒng)可以從第一空間值大小的內(nèi)存空間中分配大小為第二空間值的內(nèi)存空間,不能達(dá)到優(yōu)化效果,因此,本實(shí)施例中的第二空間值需要大于第一空間值。若第二空間值太大,系統(tǒng)分配完該第二空間值大小的內(nèi)存空間后,系統(tǒng)的總占用空間值使系統(tǒng)發(fā)出內(nèi)存不足警告,若系統(tǒng)發(fā)出的警告次數(shù)達(dá)到預(yù)定次數(shù),系統(tǒng)會(huì)強(qiáng)制關(guān)閉申請(qǐng)內(nèi)存空間的程序,因此,第二空間值需要小于總內(nèi)存空間的總空間值與系統(tǒng)中禁止清理的內(nèi)存空間的空間值的差值。進(jìn)一步地,禁止清理的內(nèi)存空間至少包括系統(tǒng)程序占用的內(nèi)存空間和預(yù)設(shè)時(shí)間內(nèi)使用的且當(dāng)前正在使用的程序占用的內(nèi)存空間,因此,禁止清理的內(nèi)存空間的空間值小于或等于系統(tǒng)程序占用的內(nèi)存空間的第四空間值和預(yù)設(shè)時(shí)間內(nèi)使用的、非系統(tǒng)程序占用的內(nèi)存空間的第五空間值之和,即第二空間值< (總空間值一第四空間值一第五空間值)=第一空間值+第三空間值。綜上所述,可以在大于第一空間值且小于第一空間值與第三空間值相加之和的區(qū)間內(nèi)任意選取一個(gè)數(shù)值作為第二空間值。
[0045]優(yōu)選地,將第一空間值與第三空間值相加之和乘以預(yù)定比例,得到第二空間值之前,還可以包括:
[0046]獲取系統(tǒng)發(fā)出內(nèi)存不足警告的警告次數(shù);
[0047]根據(jù)獲取的第一空間值、第三空間值和警告次數(shù)得到預(yù)定比例。
[0048]其中,可以對(duì)至少一次獲取的第一空間值、第三空間值和警告次數(shù)進(jìn)行多次試驗(yàn),若當(dāng)次試驗(yàn)的第二空間值使系統(tǒng)發(fā)出預(yù)定次數(shù)的警告,導(dǎo)致系統(tǒng)關(guān)閉該申請(qǐng)內(nèi)存空間的程序,則減小該第二空間值后再次試驗(yàn),直至試驗(yàn)出的第二空間值使系統(tǒng)發(fā)出的警告次數(shù)小于預(yù)定次數(shù),計(jì)算該第二空間值和第一空間值與第三空間值之和的比例,使后續(xù)根據(jù)該預(yù)設(shè)比例計(jì)算出的第二空間值可以達(dá)到更好的優(yōu)化效果,也可以避免第二空間值太大造成的系統(tǒng)強(qiáng)制關(guān)閉申請(qǐng)內(nèi)存空間的程序的問(wèn)題。
[0049]步驟208:向系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,該第二空間值大于第一空間值;以便系統(tǒng)在接收到申請(qǐng)且檢測(cè)出第二空間值大于第一空間值后,清理被占用的內(nèi)存;并在清理后確認(rèn)分配大小為第二空間值的內(nèi)存空間;
[0050]具體地,可以向系統(tǒng)申請(qǐng)第二空間值,該第二空間值大于第一空間值,使系統(tǒng)在檢測(cè)到大小為第一空間值的內(nèi)存空間不夠分配后,對(duì)當(dāng)前程序占用的內(nèi)存空間進(jìn)行清理,并將清理的內(nèi)存空間釋放為處于空閑狀態(tài)的內(nèi)存空間,再次獲取釋放后的第一空間值,并檢測(cè)該第一空間值是否大于第二空間值,在檢測(cè)到該第一空間值大于二空間值后,確認(rèn)分配大小為第二空間值的內(nèi)存空間。通常,系統(tǒng)清理的內(nèi)存空間的大小大于該第二空間值。
[0051]進(jìn)一步地,可以通過(guò)進(jìn)程向系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,若系統(tǒng)限制每個(gè)進(jìn)程申請(qǐng)的內(nèi)存空間的大小,則可以在申請(qǐng)內(nèi)存空間的程序中設(shè)置至少一個(gè)進(jìn)程,以擴(kuò)大申請(qǐng)的內(nèi)存空間。比如,若系統(tǒng)限制每個(gè)進(jìn)程允許申請(qǐng)的內(nèi)存空間的空間值為20MB,通過(guò)在一個(gè)程序中設(shè)置η個(gè)進(jìn)程,η > 1,則可以向系統(tǒng)申請(qǐng)大小為20nMB的內(nèi)存空間,若η為3,則可以申請(qǐng)大小為60ΜΒ的內(nèi)存空間,若η為5,則可以申請(qǐng)大小為100ΜΒ的內(nèi)存空間等,本實(shí)施例不作限定。
[0052]步驟210:在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放大小為第二空間值的內(nèi)存空間,使得大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間;[0053]具體地,在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,確定獲得大小為第二空間值的內(nèi)存空間,并釋放該大小為第二空間值的內(nèi)存空間,以進(jìn)一步擴(kuò)大系統(tǒng)中處于空閑狀態(tài)的內(nèi)存空間,提高終端的處理速度。
[0054]步驟212:再次獲取系統(tǒng)的第一空間值;
[0055]優(yōu)選地,可以在釋放大小為第二空間值的內(nèi)存空間后,再次獲取系統(tǒng)的第一空間值,此時(shí)的第一空間值為系統(tǒng)清理的內(nèi)存空間的大小與上次的第一空間值之和,以便根據(jù)該第一空間值檢測(cè)是否需要繼續(xù)對(duì)系統(tǒng)的內(nèi)存進(jìn)行清理。其中,獲取第一空間值的方法詳見(jiàn)步驟202中的描述,此處不贅述。
[0056]步驟214:檢測(cè)該第一空間值是否滿足預(yù)設(shè)條件;若檢測(cè)到第一空間值滿足預(yù)設(shè)條件,則繼續(xù)執(zhí)行步驟208 ;若檢測(cè)到第一空間值不滿足預(yù)設(shè)條件,則執(zhí)行步驟216。
[0057]本實(shí)施例中,可以根據(jù)再次獲取的第一空間值檢測(cè)是否要繼續(xù)對(duì)系統(tǒng)的內(nèi)存進(jìn)行清理;若檢測(cè)到需要繼續(xù)對(duì)系統(tǒng)的內(nèi)存進(jìn)行清理,則執(zhí)行步驟208 ;若檢測(cè)到不需要繼續(xù)對(duì)系統(tǒng)的內(nèi)存進(jìn)行清理,則結(jié)束內(nèi)存清理流程。其中,再次執(zhí)行步驟208之前,需要重新計(jì)算第二空間值,具體流程詳見(jiàn)步驟206中的描述,此處不贅述。
[0058]其中,預(yù)設(shè)條件可以包括該第一空間值小于預(yù)設(shè)的第一閾值和該第一空間值與上次獲取的第一空間值的差值大于預(yù)設(shè)的第二閾值中的至少一種,則第一空間值小于第一閾值時(shí)繼續(xù)內(nèi)存清理流程,或者,第一空間值與上次獲取的第一空間值的差值大于第二閾值時(shí)繼續(xù)內(nèi)存清理流程,或者,第一空間值小于第一閾值且第一空間值與上次獲取的第一空間值的差值大于預(yù)設(shè)的第二閾值時(shí)繼續(xù)清理流程等。當(dāng)然,也可以設(shè)置其他的預(yù)設(shè)條件,本實(shí)施例不作限定。
[0059]如,可以預(yù)先設(shè)置第一閾值為20MB,若再次獲取的第二空間值為25MB,可以檢測(cè)出該第二空間值大于第一閾值,此時(shí)結(jié)束內(nèi)存清理流程;若再次獲取的第二空間值為18MB,可以檢測(cè)出該第二空間值小于第一閾值,此時(shí)再次執(zhí)行步驟208。其中,第一閾值可以進(jìn)行設(shè)置和修改,本實(shí)施例不作限定。
[0060]又比如,可以預(yù)先設(shè)置第二閾值為1MB,若上次獲取的第二空間值為5MB,再次獲取的第二空間值為7MB,可以檢測(cè)出該第一空間值與上次獲取的第一空間值的差值大于預(yù)設(shè)的第二閾值,此時(shí)再次執(zhí)行步驟208 ;若上次獲取的第二空間值為5MB,再次獲取的第二空間值為5.5MB,可以檢測(cè)出該第一空間值與上次獲取的第一空間值的差值小于預(yù)設(shè)的第二閾值,此時(shí)結(jié)束內(nèi)存清理流程。其中,第二閾值可以進(jìn)行設(shè)置和修改,本實(shí)施例不作限定。
[0061]步驟216:結(jié)束內(nèi)存清理流程。
[0062]綜上所述,本發(fā)明實(shí)施例提供的內(nèi)存清理方法,通過(guò)獲取系統(tǒng)中的第一空間值;向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,所述第二空間值大于所述第一空間值;在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述大小為第二空間值的內(nèi)存空間,使得所述大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間,解決了第三方應(yīng)用程序不具備對(duì)該API的調(diào)用權(quán)限,則無(wú)法對(duì)終端的內(nèi)存進(jìn)行清理的問(wèn)題,達(dá)到了擴(kuò)大內(nèi)存清理使用范圍、提高終端處理速度的效果。另外,通過(guò)獲取所述系統(tǒng)中的第三空間值;將所述第一空間值與所述第三空間值相加之和乘以預(yù)定比例,得到所述第二空間值,解決了第二空間值不準(zhǔn)確造成的多次申請(qǐng)內(nèi)存空間的問(wèn)題,達(dá)到了提高內(nèi)存清理效率的效果。
[0063]實(shí)施例三[0064]請(qǐng)參考圖3,其示出了本發(fā)明實(shí)施例三提供的內(nèi)存清理裝置的結(jié)構(gòu)框架圖,該內(nèi)存清理裝置可以應(yīng)用于終端中,該終端可以是智能電視、智能手機(jī)或者平板電腦等等。該內(nèi)存清理裝置,包括:
[0065]第一獲取模塊301,用于獲取系統(tǒng)中的第一空間值,第一空間值表不系統(tǒng)中當(dāng)前處于空閑狀態(tài)的內(nèi)存空間的大?。?br>
[0066]申請(qǐng)模塊302,用于向系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,第二空間值大于第一獲取模塊301獲取的第一空間值;以便系統(tǒng)在接收到申請(qǐng)且檢測(cè)出第二空間值大于第一空間值后,清理被占用的內(nèi)存;并在清理后確認(rèn)分配大小為第二空間值的內(nèi)存空間;
[0067]釋放模塊303,用于在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放申請(qǐng)模塊302申請(qǐng)的大小為第二空間值的內(nèi)存空間,使得大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間。
[0068]綜上所述,本發(fā)明實(shí)施例提供的內(nèi)存清理裝置,通過(guò)獲取系統(tǒng)中的第一空間值;向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,所述第二空間值大于所述第一空間值;在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述大小為第二空間值的內(nèi)存空間,使得所述大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間,解決了第三方應(yīng)用程序不具備對(duì)該API的調(diào)用權(quán)限,則無(wú)法對(duì)終端的內(nèi)存進(jìn)行清理的問(wèn)題,達(dá)到了擴(kuò)大內(nèi)存清理使用范圍、提高終端處理速度的效果。
[0069]實(shí)施例四
[0070]請(qǐng)參考圖4,其示出了本發(fā)明實(shí)施例四提供的內(nèi)存清理裝置的結(jié)構(gòu)框架圖,該內(nèi)存清理裝置可以應(yīng)用于終端中,該終端可以是智能電視、智能手機(jī)或者平板電腦等等。該內(nèi)存清理裝置,包括:第一獲取模塊301、申請(qǐng)模塊302和釋放模塊303。
[0071]第一獲取模塊301,用于獲取系統(tǒng)中的第一空間值,第一空間值表不系統(tǒng)中當(dāng)前處于空閑狀態(tài)的內(nèi)存空間的大??;
[0072]申請(qǐng)模塊302,用于向系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,第二空間值大于第一獲取模塊301獲取的第一空間值;以便系統(tǒng)在接收到申請(qǐng)且檢測(cè)出第二空間值大于第一空間值后,清理被占用的內(nèi)存;并在清理后確認(rèn)分配大小為第二空間值的內(nèi)存空間;
[0073]釋放模塊303,用于在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放申請(qǐng)模塊302申請(qǐng)的大小為第二空間值的內(nèi)存空間,使得大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間。
[0074]進(jìn)一步地,該裝置,還可以包括:
[0075]第二獲取模塊304,用于申請(qǐng)模塊303向系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間之前,獲取系統(tǒng)中的第三空間值,第三空間值表示系統(tǒng)中在預(yù)設(shè)時(shí)間段內(nèi)未使用的、非系統(tǒng)程序占用的內(nèi)存空間的大??;
[0076]第一計(jì)算模塊305,用于將第一獲取模塊301獲取的第一空間值與第二獲取模塊304獲取的第三空間值相加之和乘以預(yù)定比例,得到第二空間值。
[0077]進(jìn)一步地,該裝置,還可以包括:
[0078]第三獲取模塊306,用于第一計(jì)算模塊305將第一空間值與第三空間值相加之和乘以預(yù)定比例,得到第二空間值之前,獲取系統(tǒng)發(fā)出內(nèi)存不足警告的警告次數(shù);
[0079]第二計(jì)算模塊307,用于根據(jù)第一獲取模塊301獲取的第一空間值、第二獲取模塊304獲取的第三空間值和第三獲取模塊306獲取的警告次數(shù)得到預(yù)定比例。
[0080]進(jìn)一步地,該裝置,還可以包括:
[0081]第四獲取模塊308,用于在釋放模塊303接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放大小為第二空間值的內(nèi)存空間之后,再次獲取系統(tǒng)的第一空間值;
[0082]檢測(cè)模塊309,用于檢測(cè)第四獲取模塊308獲取的第一空間值是否滿足預(yù)設(shè)條件;
[0083]確定模塊310,用于若檢測(cè)模塊309檢測(cè)到第一空間值滿足預(yù)設(shè)條件,則確定繼續(xù)執(zhí)行向系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間的步驟;
[0084]其中,預(yù)設(shè)條件包括第一空間值小于預(yù)設(shè)的第一閾值和第一空間值與上次獲取的第一空間值的差值大于預(yù)設(shè)的第二閾值中的至少一種。
[0085]綜上所述,本發(fā)明實(shí)施例提供的內(nèi)存清理裝置,通過(guò)獲取系統(tǒng)中的第一空間值;向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,所述第二空間值大于所述第一空間值;在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述大小為第二空間值的內(nèi)存空間,使得所述大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間,解決了第三方應(yīng)用程序不具備對(duì)API的調(diào)用權(quán)限,則無(wú)法對(duì)終端的內(nèi)存進(jìn)行清理的問(wèn)題,達(dá)到了擴(kuò)大內(nèi)存清理使用范圍、提高終端處理速度的效果。另外,通過(guò)獲取所述系統(tǒng)中的第三空間值;將所述第一空間值與所述第三空間值相加之和乘以預(yù)定比例,得到所述第二空間值,解決了第二空間值不準(zhǔn)確造成的多次申請(qǐng)內(nèi)存空間的問(wèn)題,達(dá)到了提高內(nèi)存清理效率的效果。
[0086]需要說(shuō)明的是:上述實(shí)施例提供的內(nèi)存清理裝置在進(jìn)行內(nèi)存清理時(shí),僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將內(nèi)存清理裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實(shí)施例提供的內(nèi)存清理裝置與內(nèi)存清理方法實(shí)施例屬于同一構(gòu)思,其具體實(shí)現(xiàn)過(guò)程詳見(jiàn)方法實(shí)施例,這里不再贅述。
[0087]上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0088]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例的全部或部分步驟可以通過(guò)硬件來(lái)完成,也可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
[0089]以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種內(nèi)存清理方法,其特征在于,所述方法包括: 獲取系統(tǒng)中的第一空間值,所述第一空間值表示所述系統(tǒng)中當(dāng)前處于空閑狀態(tài)的內(nèi)存空間的大小; 向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,所述第二空間值大于所述第一空間值;以便所述系統(tǒng)在接收到所述申請(qǐng)且檢測(cè)出所述第二空間值大于所述第一空間值后,清理被占用的內(nèi)存;并在清理后確認(rèn)分配所述大小為第二空間值的內(nèi)存空間; 在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述大小為第二空間值的內(nèi)存空間,使得所述大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間。
2.根據(jù)權(quán)利要求1所述的內(nèi)存清理方法,其特征在于,所述向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間之前,還包括: 獲取所述系統(tǒng)中的第三空間值,所述第三空間值表示所述系統(tǒng)中在預(yù)設(shè)時(shí)間段內(nèi)未使用的、非系統(tǒng)程序占用的內(nèi)存空間的大??; 將所述第一空間值 與所述第三空間值相加之和乘以預(yù)定比例,得到所述第二空間值。
3.根據(jù)權(quán)利要求2所述的內(nèi)存清理方法,其特征在于,所述將所述第一空間值與所述第三空間值相加之和乘以預(yù)定比例,得到所述第二空間值之前,還包括: 獲取所述系統(tǒng)發(fā)出內(nèi)存不足警告的警告次數(shù); 根據(jù)獲取的所述第一空間值、第三空間值和警告次數(shù)得到所述預(yù)定比例。
4.根據(jù)權(quán)利要求1至3任一所述的內(nèi)存清理方法,其特征在于,所述在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述大小為第二空間值的內(nèi)存空間之后,還包括: 再次獲取所述系統(tǒng)的第一空間值; 檢測(cè)所述第一空間值是否滿足預(yù)設(shè)條件; 若檢測(cè)到所述第一空間值滿足所述預(yù)設(shè)條件,則繼續(xù)執(zhí)行所述向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間的步驟; 其中,所述預(yù)設(shè)條件包括所述第一空間值小于預(yù)設(shè)的第一閾值和所述第一空間值與上次獲取的所述第一空間值的差值大于預(yù)設(shè)的第二閾值中的至少一種。
5.一種內(nèi)存清理裝置,其特征在于,所述裝置包括: 第一獲取模塊,用于獲取系統(tǒng)中的第一空間值,所述第一空間值表示所述系統(tǒng)中當(dāng)前處于空閑狀態(tài)的內(nèi)存空間的大?。? 申請(qǐng)模塊,用于向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間,所述第二空間值大于所述第一獲取模塊獲取的第一空間值;以便所述系統(tǒng)在接收到所述申請(qǐng)且檢測(cè)出所述第二空間值大于所述第一空間值后,清理被占用的內(nèi)存;并在清理后確認(rèn)分配所述大小為第二空間值的內(nèi)存空間; 釋放模塊,用于在接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述申請(qǐng)模塊申請(qǐng)的大小為第二空間值的內(nèi)存空間,使得所述大小為第二空間值的內(nèi)存空間成為處于空閑狀態(tài)的內(nèi)存空間。
6.根據(jù)權(quán)利要求5所述的內(nèi)存清理裝置,其特征在于,所述裝置,還包括: 第二獲取模塊,用于所述申請(qǐng)模塊向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間之前,獲取所述系統(tǒng)中的第三空間值,所述第三空間值表示所述系統(tǒng)中在預(yù)設(shè)時(shí)間段內(nèi)未使用的、非系統(tǒng)程序占用的內(nèi)存空間的大小;第一計(jì)算模塊,用于將所述第一獲取模塊獲取的第一空間值與所述第二獲取模塊獲取的第三空間值相加之和乘以預(yù)定比例,得到所述第二空間值。
7.根據(jù)權(quán)利要求6所述的內(nèi)存清理裝置,其特征在于,所述裝置,還包括: 第三獲取模塊,用于所述第一計(jì)算模塊將所述第一空間值與所述第三空間值相加之和乘以預(yù)定比例,得到所述第二空間值之前,獲取所述系統(tǒng)發(fā)出內(nèi)存不足警告的警告次數(shù);第二計(jì)算模塊,用于根據(jù)所述第一獲取模塊獲取的所述第一空間值、所述第二獲取模塊獲取的第三空間值和所述第三獲取模塊獲取的所述警告次數(shù)得到所述預(yù)定比例。
8.根據(jù)權(quán)利要求5至7任一所述的內(nèi)存清理裝置,其特征在于,所述裝置,還包括: 第四獲取模塊,用于在所述釋放模塊接收到系統(tǒng)的內(nèi)存分配確認(rèn)后,釋放所述大小為第二空間值的內(nèi)存空間之后,再次獲取所述系統(tǒng)的第一空間值; 檢測(cè)模塊,用于檢測(cè)所述第四獲取模塊獲取的第一空間值是否滿足預(yù)設(shè)條件; 確定模塊,用于若所述檢測(cè)模塊檢測(cè)到所述第一空間值滿足所述預(yù)設(shè)條件,則確定繼續(xù)執(zhí)行所述向所述系統(tǒng)申請(qǐng)大小為第二空間值的內(nèi)存空間的步驟; 其中,所述預(yù)設(shè)條件包括所述第一空間值小于預(yù)設(shè)的第一閾值和所述第一空間值與上次獲取的所述第一空間值的差值大于預(yù)設(shè)的第二閾值中的至少一種。
9.一種終端,其特征在于,所述終端包括如權(quán)利要求5至8任一所述的內(nèi)存清理裝置。
【文檔編號(hào)】G06F12/02GK103970668SQ201310041078
【公開(kāi)日】2014年8月6日 申請(qǐng)日期:2013年2月1日 優(yōu)先權(quán)日:2013年2月1日
【發(fā)明者】陳澤濱, 丁海峰 申請(qǐng)人:騰訊科技(深圳)有限公司