一種內(nèi)存回收方法和裝置制造方法
【專利摘要】本發(fā)明適用于內(nèi)存回收領(lǐng)域,提供了一種內(nèi)存回收方法和裝置,該方法包括:獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值,以及統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值;將所述內(nèi)存峰值與所述連續(xù)使用內(nèi)存空間值進(jìn)行比較,獲取較大值作為即將使用的內(nèi)存估計(jì)值;判斷當(dāng)前可用的內(nèi)存值是否小于所述內(nèi)存估計(jì)值,如果是則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。本發(fā)明能夠根據(jù)用戶使用所需要的內(nèi)存值以及程序需要的最大內(nèi)存值估計(jì)內(nèi)存是否夠用,并在估計(jì)需要使用內(nèi)存值大于可用的內(nèi)存時(shí)對(duì)內(nèi)存進(jìn)行清理,和現(xiàn)有技術(shù)相比,可以更多的減少不必要的內(nèi)存的清理工作,進(jìn)一步提高應(yīng)用程序的運(yùn)行速度。
【專利說(shuō)明】一種內(nèi)存回收方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于內(nèi)存管理領(lǐng)域,尤其涉及一種內(nèi)存回收方法和裝置。
【背景技術(shù)】
[0002]內(nèi)存是計(jì)算機(jī)或者其它智能終端,如手機(jī)等設(shè)備中重要的部件之一,它是與CPU進(jìn)行溝通的橋梁。設(shè)備中所有程序的運(yùn)行一般都是在內(nèi)存中進(jìn)行,用于暫時(shí)存放CPU中的運(yùn)算數(shù)據(jù),以及與硬盤等外部存儲(chǔ)器交換的數(shù)據(jù),因此內(nèi)存的性能和容量對(duì)設(shè)備的影響非常大。因而對(duì)設(shè)備中的內(nèi)存進(jìn)行有效的管理顯得十分必要。
[0003]在使用安卓系統(tǒng)的設(shè)備中,為了提高系統(tǒng)中應(yīng)用程序的啟動(dòng)速度,安卓系統(tǒng)中的應(yīng)用程序一般遵循“關(guān)閉而不退出”的原則。即,在關(guān)閉安卓系統(tǒng)中的應(yīng)用程序后,該應(yīng)用程序仍然在后臺(tái)運(yùn)行并占用一定的內(nèi)存空間。
[0004]為提高內(nèi)存的有效利用,防止在內(nèi)存不足時(shí)容易出現(xiàn)“閃退”或者當(dāng)前運(yùn)行的應(yīng)用程序被“殺掉”的現(xiàn)象,目前提出了一種對(duì)應(yīng)用程序進(jìn)行分類區(qū)分的內(nèi)存管理方法,在應(yīng)用程序關(guān)閉時(shí),判斷所關(guān)閉的應(yīng)用程序是否重要的應(yīng)用程序,如果為重要的應(yīng)用程序,則繼續(xù)在后臺(tái)運(yùn)行,如果不是重要的應(yīng)用程序,則清除其在內(nèi)存中的數(shù)據(jù),提高內(nèi)存的有效利用。
[0005]通過(guò)區(qū)分應(yīng)用程序的重要性來(lái)減少內(nèi)存占用的方法,雖然提高了內(nèi)存的占用,但是其不利于其它應(yīng)用程序的啟動(dòng),導(dǎo)致其它應(yīng)用啟動(dòng)不流暢。
【發(fā)明內(nèi)容】
[0006]本發(fā)明的目的在于提供一種內(nèi)存回收方法,以解決現(xiàn)有技術(shù)通過(guò)區(qū)分應(yīng)用程序的重要性來(lái)減少內(nèi)存占用的方法,不利于其它應(yīng)用程序的啟動(dòng),導(dǎo)致其它應(yīng)用啟動(dòng)不流暢的冋題。
[0007]本發(fā)明是這樣實(shí)現(xiàn)的,一種內(nèi)存回收方法,所述方法包括:
[0008]獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值,以及統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值;
[0009]將所述內(nèi)存峰值與所述連續(xù)使用內(nèi)存空間值進(jìn)行比較,獲取較大值作為即將使用的內(nèi)存估計(jì)值;
[0010]判斷當(dāng)前可用的內(nèi)存值是否小于所述內(nèi)存估計(jì)值,如果是則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
[0011]本發(fā)明的另一目的在于提供一種內(nèi)存回收裝置,所述裝置包括:
[0012]獲取單元,用于獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值,以及統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值;
[0013]比較單元,用于將所述內(nèi)存峰值與所述連續(xù)使用內(nèi)存空間值進(jìn)行比較,獲取較大值作為即將使用的內(nèi)存估計(jì)值;
[0014]判斷清理單元,用于判斷當(dāng)前可用的內(nèi)存值是否小于所述內(nèi)存估計(jì)值,如果是則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
[0015]在本發(fā)明中,通過(guò)獲取應(yīng)用程序運(yùn)行時(shí)所占用的內(nèi)存峰值以及用戶連續(xù)使用時(shí)所需要的內(nèi)存空間值,并獲取較大值與當(dāng)前可用的內(nèi)存值進(jìn)行比較,如果所述較大值大于可用的內(nèi)存值,則對(duì)應(yīng)用程序占用的內(nèi)存進(jìn)行清理。本發(fā)明能夠根據(jù)用戶使用所需要的內(nèi)存值以及程序需要的最大內(nèi)存值估計(jì)內(nèi)存是否夠用,并在估計(jì)需要使用內(nèi)存值大于可用的內(nèi)存時(shí)對(duì)內(nèi)存進(jìn)行清理,和現(xiàn)有技術(shù)相比,可以更多的減少不必要的內(nèi)存的清理工作,進(jìn)一步提高應(yīng)用程序的運(yùn)行速度。
【專利附圖】
【附圖說(shuō)明】
[0016]圖1是本發(fā)明實(shí)施例提供的內(nèi)存回收方法的實(shí)現(xiàn)流程圖;
[0017]圖2是本發(fā)明實(shí)施例提供的獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值的實(shí)現(xiàn)流程圖;
[0018]圖3是本發(fā)明實(shí)施例提供的統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值的實(shí)現(xiàn)流程圖;
[0019]圖4為本發(fā)明實(shí)施例提供的又一內(nèi)存回收方法的實(shí)現(xiàn)流程圖;
[0020]圖5為本發(fā)明實(shí)施例提供的內(nèi)存回收裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0022]本發(fā)明實(shí)施例主要用于解決現(xiàn)有技術(shù)的內(nèi)存不足導(dǎo)致程序“閃退”或者應(yīng)用程序被強(qiáng)制結(jié)束,或者直接限制部分應(yīng)用程序在后臺(tái)的運(yùn)行導(dǎo)致應(yīng)用程序運(yùn)行不流暢的問(wèn)題。為解決上述問(wèn)題,本發(fā)明提出了一種內(nèi)存回收方法,所述方法包括:
[0023]獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值,以及統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值;將所述內(nèi)存峰值與所述連續(xù)使用內(nèi)存空間值進(jìn)行比較,獲取較大值作為即將使用的內(nèi)存估計(jì)值;判斷當(dāng)前可用的內(nèi)存值是否小于所述內(nèi)存估計(jì)值,如果是則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。本發(fā)明能夠根據(jù)用戶使用所需要的內(nèi)存值以及程序需要的最大內(nèi)存值估計(jì)內(nèi)存是否夠用,并在估計(jì)需要使用內(nèi)存值大于可用的內(nèi)存時(shí)對(duì)內(nèi)存進(jìn)行清理,和現(xiàn)有技術(shù)相比,可以更多的減少不必要的內(nèi)存的清理工作,進(jìn)一步提高應(yīng)用程序的運(yùn)行速度。下面結(jié)合附圖具體進(jìn)行說(shuō)明。
[0024]圖1示出了本發(fā)明實(shí)施例提供的內(nèi)存回收方法的實(shí)現(xiàn)流程,詳述如下:
[0025]在步驟SlOl中,獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值,以及統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值。
[0026]具體的,所述內(nèi)存峰值,是指應(yīng)用程序在運(yùn)行時(shí)所占用的內(nèi)存的最大值。由于應(yīng)用程序運(yùn)行過(guò)程中所占用的內(nèi)存值并不是固定不變的,隨著指令的不同所運(yùn)行的數(shù)據(jù)也不相同,因而使得占用的內(nèi)存值的大小也隨之變化。
[0027]獲取應(yīng)用程序占用內(nèi)存值的方法,可以直接通過(guò)系統(tǒng)的內(nèi)存管理功能中讀取各個(gè)應(yīng)用程序占用的內(nèi)存值。
[0028]另外,根據(jù)精度的要求,可以相應(yīng)的設(shè)定采集應(yīng)用程序占用的內(nèi)存的頻率。采集頻率越高,則更加能夠準(zhǔn)確的采集應(yīng)用程序的內(nèi)存峰值。
[0029]而應(yīng)用程序的內(nèi)存峰值的采集,也可以直接從服務(wù)器讀取標(biāo)準(zhǔn)化的測(cè)試結(jié)果,從而減輕客戶端所占用的資源。當(dāng)從服務(wù)器讀取標(biāo)準(zhǔn)化的測(cè)試結(jié)果時(shí),需要根據(jù)應(yīng)用程序的不同版本,查找對(duì)應(yīng)的內(nèi)存峰值,提高數(shù)值的準(zhǔn)確性。
[0030]另外,本發(fā)明中獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值可以包括如圖2所述的步驟:
[0031]在步驟S201中,動(dòng)態(tài)記錄每個(gè)應(yīng)用程序在使用過(guò)程中所占用的內(nèi)存值。
[0032]具體的,所述動(dòng)態(tài)記錄,是指根據(jù)應(yīng)用程序占用內(nèi)存空間的變化的快慢而相應(yīng)的選擇記錄的速度,在應(yīng)用程序占用內(nèi)存空間的變化快時(shí),則提高采集的頻率,在變化速度較慢時(shí),則降低記錄頻率。
[0033]當(dāng)然,動(dòng)態(tài)記錄只是其中一種較優(yōu)的記錄方式,本發(fā)明不局限于動(dòng)態(tài)記錄內(nèi)存空間占用值。
[0034]在步驟S202中,根據(jù)記錄的每個(gè)應(yīng)用程序在使用過(guò)程中所占用的內(nèi)存值,獲取每個(gè)應(yīng)用程序的內(nèi)存峰值。
[0035]根據(jù)所記錄的每個(gè)應(yīng)用程序在使用過(guò)程中所占用的內(nèi)存值,可以得到每個(gè)應(yīng)用程序的內(nèi)存峰值,即每個(gè)應(yīng)用程序最多占用的內(nèi)存值。
[0036]其中,步驟S201和步驟S202可以在終端完成,也可以通過(guò)服務(wù)器一次完成后,根據(jù)終端系統(tǒng)中運(yùn)行的應(yīng)用程序,由終端向服務(wù)器獲取對(duì)應(yīng)的內(nèi)存峰值。
[0037]在步驟S203中,比較多個(gè)應(yīng)用程序的內(nèi)存峰值,獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值。
[0038]在獲取到系統(tǒng)運(yùn)行的各個(gè)應(yīng)用程序的內(nèi)存峰值后,即可比較大小,確定內(nèi)存峰值最大的應(yīng)用程序以及其對(duì)應(yīng)的最大內(nèi)存峰值。
[0039]在此步驟中,步驟SlOl還包括統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值。
[0040]其中,所述連續(xù)使用內(nèi)存空間值,是指用戶在使用過(guò)程中,由空閑狀態(tài)到操作運(yùn)行狀態(tài),比如在運(yùn)行狀態(tài)打開(kāi)一個(gè)應(yīng)用程序,或者在多個(gè)應(yīng)用程序間不斷的切換,所引起的增加占用的系統(tǒng)內(nèi)存空間。
[0041]而具體統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值步驟的流程如圖3所示,包括:
[0042]在步驟S301中,在系統(tǒng)空閑狀態(tài)時(shí),記錄系統(tǒng)內(nèi)存剩余的第一內(nèi)存值。
[0043]在本發(fā)明實(shí)施例中,所述系統(tǒng)空閑狀態(tài),是指系統(tǒng)沒(méi)有接收到操作指令,所有運(yùn)行的應(yīng)用程序均在后臺(tái)運(yùn)行時(shí)的狀態(tài)。
[0044]為能夠準(zhǔn)確的獲取系統(tǒng)空閑狀態(tài)對(duì)應(yīng)的內(nèi)存值,可以在系統(tǒng)所在終端的屏幕關(guān)閉后,并且關(guān)閉的時(shí)間大于一個(gè)預(yù)設(shè)的時(shí)間,比如大于一分鐘后,記錄所對(duì)應(yīng)的內(nèi)存占用值,通過(guò)系統(tǒng)總內(nèi)存與系統(tǒng)內(nèi)存占用值,即可得到在此狀態(tài)下,即系統(tǒng)空閑狀態(tài)下的剩余內(nèi)存的第一內(nèi)存值。
[0045]當(dāng)然,也可以獲取多個(gè)空閑狀態(tài)下的剩余的內(nèi)存空間,然后對(duì)多個(gè)剩余的內(nèi)存空間取平均值,即可得到更為準(zhǔn)確的第一內(nèi)存值。
[0046]在步驟S302中,在系統(tǒng)接收操作指令的運(yùn)行狀態(tài),獲取系統(tǒng)內(nèi)存剩余的第二內(nèi)存值。
[0047]具體的,所述運(yùn)行狀態(tài),是指在系統(tǒng)所在終端的屏幕為亮屏?xí)r,且有應(yīng)用程序處于前臺(tái)運(yùn)行,或者有接收到用戶操作指令的狀態(tài)。
[0048]為準(zhǔn)確獲取運(yùn)行狀態(tài)的內(nèi)存剩余值,可以在正常運(yùn)行指定時(shí)間后,比如在進(jìn)入運(yùn)行狀態(tài)一分鐘后開(kāi)始取值,取多個(gè)運(yùn)行狀態(tài)的內(nèi)存剩余值后取平均值,即可得到更為準(zhǔn)確的第二內(nèi)存值。
[0049]在步驟S303中,獲取第一內(nèi)存值與第二內(nèi)存值的差值,并獲取多個(gè)所述差值后取平均值,得到所述連續(xù)使用的內(nèi)存空間值。
[0050]假設(shè)第一內(nèi)存值為A,第二內(nèi)存值為B,那么,根據(jù)第一內(nèi)存值A(chǔ)和第二內(nèi)存值B的差值 Cl = A-B。
[0051]連續(xù)多次重復(fù)步驟S301和步驟S302,從而獲取多個(gè)第一內(nèi)存值與第二內(nèi)存值的差值 C2、C3、......Cn。
[0052]將所獲取的多個(gè)差值取平均值C = (C1+C2+C3+……+Cn)/n,即為統(tǒng)計(jì)的用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值。
[0053]在步驟S102中,將所述內(nèi)存峰值與所述連續(xù)使用內(nèi)存空間值進(jìn)行比較,獲取較大值作為即將使用的內(nèi)存估計(jì)值。
[0054]所述內(nèi)存估計(jì)值,是指在使用過(guò)程中可能需要的內(nèi)存值,即在使用過(guò)程可能會(huì)增加的內(nèi)存值。
[0055]具體的,假設(shè)所述內(nèi)存峰值為M,即多個(gè)應(yīng)用程序運(yùn)行時(shí),占用內(nèi)存的峰值最大的應(yīng)用程序?qū)λ鶓?yīng)的內(nèi)存峰值為M,根據(jù)圖3所示方法求出用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值C,并比較內(nèi)存峰值M與連續(xù)使用內(nèi)存空間值C的大小,取較大者作為即將使用的內(nèi)存估計(jì)值。
[0056]在步驟S103中,判斷當(dāng)前可用的內(nèi)存值是否小于所述內(nèi)存估計(jì)值,如果是則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
[0057]假設(shè)所述內(nèi)存估計(jì)值為P,檢測(cè)系統(tǒng)當(dāng)前剩余的可用的內(nèi)存空間值為Q,將所述系統(tǒng)剩余的內(nèi)存空間值Q與所述內(nèi)存估計(jì)值P進(jìn)行比較:
[0058]如果內(nèi)存空間值較大,則說(shuō)明可以滿足未來(lái)一段時(shí)間內(nèi)的內(nèi)存增加的要求,不需要對(duì)內(nèi)存進(jìn)行清理處理。
[0059]當(dāng)所述內(nèi)存空間值較小時(shí),則說(shuō)明不能滿足未來(lái)一段時(shí)間內(nèi)的內(nèi)存增加的要求,需要對(duì)內(nèi)存進(jìn)行清理。
[0060]所述內(nèi)存清理,可以根據(jù)預(yù)先設(shè)定的應(yīng)用程序的重要級(jí)別,優(yōu)先對(duì)重要級(jí)別較低的應(yīng)用程序進(jìn)行清理。當(dāng)然,所述應(yīng)用程序的重要級(jí)別,可以包括使用頻率等屬性進(jìn)行評(píng)估。
[0061]本發(fā)明根據(jù)用戶使用所需要的內(nèi)存值以及程序需要的最大內(nèi)存值估計(jì)內(nèi)存是否夠用,并在估計(jì)需要使用內(nèi)存值大于可用的內(nèi)存時(shí)對(duì)內(nèi)存進(jìn)行清理,可以更多的減少不必要的內(nèi)存的清理工作,進(jìn)一步提高應(yīng)用程序的運(yùn)行速度。
[0062]圖4為本發(fā)明提供的又一內(nèi)存回收方法的實(shí)現(xiàn)流程,詳述如下:
[0063]在步驟S401中,獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值,以及統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值。
[0064]在步驟S402中,將所述內(nèi)存峰值與所述連續(xù)使用內(nèi)存空間值進(jìn)行比較,獲取較大值作為即將使用的內(nèi)存估計(jì)值。
[0065]在步驟S403中,判斷當(dāng)前可用的內(nèi)存值是否小于所述內(nèi)存估計(jì)值。
[0066]在步驟S404中,如果當(dāng)前可用的內(nèi)存值小于所述內(nèi)存估計(jì)值,則判斷系統(tǒng)當(dāng)前是否處于通話狀態(tài)。
[0067]在步驟S405中,如果系統(tǒng)處于通話狀態(tài),則不對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
[0068]在通話狀態(tài),系統(tǒng)的內(nèi)存處于一個(gè)較為穩(wěn)定的狀態(tài),即在短時(shí)間內(nèi)不會(huì)出現(xiàn)突變的增長(zhǎng),因此不需要對(duì)系統(tǒng)的內(nèi)存進(jìn)行清楚,以免清理過(guò)程影響通話的正常進(jìn)行。
[0069]在步驟S406中,如果系統(tǒng)不處于通話狀態(tài),或者當(dāng)前可用的內(nèi)存值大于或等于所述內(nèi)存估計(jì)值,則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
[0070]圖4在對(duì)內(nèi)存進(jìn)行清理前還進(jìn)一步包括系統(tǒng)應(yīng)用程序具體類別的運(yùn)行狀態(tài)的判斷,從而能夠根據(jù)通信應(yīng)用程序的內(nèi)存占用情景出發(fā),進(jìn)一步提高通話穩(wěn)定性。
[0071]圖5為本發(fā)明實(shí)施例提供的內(nèi)存回收裝置的結(jié)構(gòu)示意圖,所述內(nèi)存回收裝置包括:
[0072]獲取單元501,用于獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值,以及統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值;
[0073]比較單元502,用于將所述內(nèi)存峰值與所述連續(xù)使用內(nèi)存空間值進(jìn)行比較,獲取較大值作為即將使用的內(nèi)存估計(jì)值;
[0074]判斷清理單元503,用于判斷當(dāng)前可用的內(nèi)存值是否小于所述內(nèi)存估計(jì)值,如果是則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
[0075]優(yōu)選的,所述獲取單元包括:
[0076]動(dòng)態(tài)記錄子單元,用于動(dòng)態(tài)記錄每個(gè)應(yīng)用程序在使用過(guò)程中所占用的內(nèi)存值;
[0077]內(nèi)存峰值獲取子單元,用于根據(jù)記錄的每個(gè)應(yīng)用程序在使用過(guò)程中所占用的內(nèi)存值,獲取每個(gè)應(yīng)用程序的內(nèi)存峰值;
[0078]比較獲取子單元,用于比較多個(gè)應(yīng)用程序的內(nèi)存峰值,獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值。
[0079]優(yōu)選的,所述獲取單元包括:
[0080]第一內(nèi)存值記錄子單元,用于在系統(tǒng)空閑狀態(tài)時(shí),記錄系統(tǒng)內(nèi)存剩余的第一內(nèi)存值;
[0081]第二內(nèi)存值獲取子單元,用于在系統(tǒng)接收操作指令的運(yùn)行狀態(tài),獲取系統(tǒng)內(nèi)存剩余的第二內(nèi)存值;
[0082]平均單元,用于獲取第一內(nèi)存值與第二內(nèi)存值的差值,并獲取多個(gè)所述差值后取平均值,得到所述連續(xù)使用的內(nèi)存空間值。
[0083]優(yōu)選的,所述系統(tǒng)空閑狀態(tài)為屏幕處于關(guān)閉狀態(tài)且關(guān)閉的時(shí)間大于預(yù)設(shè)的時(shí)間值。
[0084]優(yōu)選的,所述裝置還包括:
[0085]狀態(tài)判斷單元,用于判斷系統(tǒng)當(dāng)前是否處于通話狀態(tài);
[0086]清理單元,用于如果系統(tǒng)處于通話狀態(tài),則不對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理,如果系統(tǒng)不處于通話狀態(tài),則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
[0087]在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0088]所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
[0089]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
[0090]所述集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(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-Only Memory),隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0091]以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種內(nèi)存回收方法,其特征在于,所述方法包括: 獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值,以及統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值; 將所述內(nèi)存峰值與所述連續(xù)使用內(nèi)存空間值進(jìn)行比較,獲取較大值作為即將使用的內(nèi)存估計(jì)值; 判斷當(dāng)前可用的內(nèi)存值是否小于所述內(nèi)存估計(jì)值,如果是則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
2.根據(jù)權(quán)利要求1所述方法,其特征在于,所述獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值步驟包括: 動(dòng)態(tài)記錄每個(gè)應(yīng)用程序在使用過(guò)程中所占用的內(nèi)存值; 根據(jù)記錄的每個(gè)應(yīng)用程序在使用過(guò)程中所占用的內(nèi)存值,獲取每個(gè)應(yīng)用程序的內(nèi)存峰值; 比較多個(gè)應(yīng)用程序的內(nèi)存峰值,獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值。
3.根據(jù)權(quán)利要求1所述方法,其特征在于,所述統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值步驟包括: 在系統(tǒng)空閑狀態(tài)時(shí),記錄系統(tǒng)內(nèi)存剩余的第一內(nèi)存值; 在系統(tǒng)接收操作指令的運(yùn)行狀態(tài),獲取系統(tǒng)內(nèi)存剩余的第二內(nèi)存值; 獲取第一內(nèi)存值與第二內(nèi)存值的差值,并獲取多個(gè)所述差值后取平均值,得到所述連續(xù)使用的內(nèi)存空間值。
4.根據(jù)權(quán)利要求3所述方法,其特征在于,所述系統(tǒng)空閑狀態(tài)為屏幕處于關(guān)閉狀態(tài)且關(guān)閉的時(shí)間大于預(yù)設(shè)的時(shí)間值。
5.根據(jù)權(quán)利要求1所述方法,其特征在于,在所述如果是則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理步驟之前,所述方法還包括: 判斷系統(tǒng)當(dāng)前是否處于通話狀態(tài); 如果系統(tǒng)處于通話狀態(tài),則不對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理,如果系統(tǒng)不處于通話狀態(tài),則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
6.一種內(nèi)存回收裝置,其特征在于,所述裝置包括: 獲取單元,用于獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值,以及統(tǒng)計(jì)用戶連續(xù)使用時(shí)所需要的連續(xù)使用內(nèi)存空間值; 比較單元,用于將所述內(nèi)存峰值與所述連續(xù)使用內(nèi)存空間值進(jìn)行比較,獲取較大值作為即將使用的內(nèi)存估計(jì)值; 判斷清理單元,用于判斷當(dāng)前可用的內(nèi)存值是否小于所述內(nèi)存估計(jì)值,如果是則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
7.根據(jù)權(quán)利要求6所述裝置,其特征在于,所述獲取單元包括: 動(dòng)態(tài)記錄子單元,用于動(dòng)態(tài)記錄每個(gè)應(yīng)用程序在使用過(guò)程中所占用的內(nèi)存值; 內(nèi)存峰值獲取子單元,用于根據(jù)記錄的每個(gè)應(yīng)用程序在使用過(guò)程中所占用的內(nèi)存值,獲取每個(gè)應(yīng)用程序的內(nèi)存峰值; 比較獲取子單元,用于比較多個(gè)應(yīng)用程序的內(nèi)存峰值,獲取占用內(nèi)存峰值最大的應(yīng)用程序所對(duì)應(yīng)的內(nèi)存峰值。
8.根據(jù)權(quán)利要求6所述裝置,其特征在于,所述獲取單元包括: 第一內(nèi)存值記錄子單元,用于在系統(tǒng)空閑狀態(tài)時(shí),記錄系統(tǒng)內(nèi)存剩余的第一內(nèi)存值; 第二內(nèi)存值獲取子單元,用于在系統(tǒng)接收操作指令的運(yùn)行狀態(tài),獲取系統(tǒng)內(nèi)存剩余的第二內(nèi)存值; 平均單元,用于獲取第一內(nèi)存值與第二內(nèi)存值的差值,并獲取多個(gè)所述差值后取平均值,得到所述連續(xù)使用的內(nèi)存空間值。
9.根據(jù)權(quán)利要求8所述裝置,其特征在于,所述系統(tǒng)空閑狀態(tài)為屏幕處于關(guān)閉狀態(tài)且關(guān)閉的時(shí)間大于預(yù)設(shè)的時(shí)間值。
10.根據(jù)權(quán)利要求6所述裝置,其特征在于,所述裝置還包括: 狀態(tài)判斷單元,用于判斷系統(tǒng)當(dāng)前是否處于通話狀態(tài); 清理單元,用于如果系統(tǒng)處于通話狀態(tài),則不對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理,如果系統(tǒng)不處于通話狀態(tài),則對(duì)運(yùn)行的應(yīng)用程序占用的內(nèi)存進(jìn)行清理。
【文檔編號(hào)】G06F12/02GK104484282SQ201410857700
【公開(kāi)日】2015年4月1日 申請(qǐng)日期:2014年12月31日 優(yōu)先權(quán)日:2014年12月31日
【發(fā)明者】曾元清 申請(qǐng)人:廣東歐珀移動(dòng)通信有限公司