內(nèi)存釋放方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種內(nèi)存釋放方法及裝置,屬于終端【技術(shù)領(lǐng)域】。方法包括:為應(yīng)用程序創(chuàng)建進程,該進程至少包括后臺運行進程和臨時進程,該后臺運行進程占用第一內(nèi)存,該臨時進程占用第二內(nèi)存;如果終端處于鎖屏狀態(tài),判斷臨時進程是否符合內(nèi)存釋放條件;如果臨時進程符合內(nèi)存釋放條件,關(guān)閉臨時進程,以釋放應(yīng)用程序占用的第二內(nèi)存。本發(fā)明通過在終端鎖屏的狀態(tài)下,判斷應(yīng)用程序的臨時進程是否符合內(nèi)存釋放條件,來釋放應(yīng)用程序占用的第二內(nèi)存,在不影響應(yīng)用程序的正常運行的情況下,實現(xiàn)了根據(jù)內(nèi)存釋放條件來釋放內(nèi)存,在實現(xiàn)上較為靈活。
【專利說明】 內(nèi)存釋放方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及終端【技術(shù)領(lǐng)域】,特別涉及一種內(nèi)存釋放方法及裝置。
【背景技術(shù)】
[0002]隨著終端技術(shù)的普及和發(fā)展,用戶對終端的功能需求日益增多。為了實現(xiàn)多種不同的功能,需要在終端上安裝多個不同的應(yīng)用程序。應(yīng)用程序運行時需占用終端的部分內(nèi)存,因而一旦多個應(yīng)用程序同時運行,將大大減少終端的可用內(nèi)存,使終端性能降低。為了解決上述問題,提出了內(nèi)存釋放的方法。
[0003]現(xiàn)有技術(shù)實現(xiàn)內(nèi)存釋放的方法為:應(yīng)用程序運行時,利用第三方進程管理工具接收用戶對應(yīng)用程序的某個進程的關(guān)閉指令,一旦接收到對某個進程的關(guān)閉指令,立即強制關(guān)閉該進程,釋放該進程占用的內(nèi)存。
[0004]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)相關(guān)技術(shù)至少存在以下問題:
[0005]現(xiàn)有技術(shù)在實現(xiàn)內(nèi)存釋放的方法時,需要依賴用戶對某個進程的關(guān)閉指令來釋放內(nèi)存,在實現(xiàn)上不夠靈活,且在強制關(guān)閉正在運行的進程時,可能會意外關(guān)閉正在處理重要任務(wù)的進程,影響應(yīng)用程序的正常運行。
【發(fā)明內(nèi)容】
[0006]為了解決相關(guān)技術(shù)的問題,本發(fā)明實施例提供了一種內(nèi)存釋放方法和裝置。所述技術(shù)方案如下:
[0007]第一方面,提供了一種內(nèi)存釋放方法,所述方法包括:
[0008]為應(yīng)用程序創(chuàng)建進程,所述進程至少包括后臺運行進程和臨時進程,所述后臺運行進程占用第一內(nèi)存,所述臨時進程占用第二內(nèi)存;
[0009]如果終端處于鎖屏狀態(tài),判斷所述臨時進程是否符合內(nèi)存釋放條件;
[0010]如果所述臨時進程符合所述內(nèi)存釋放條件,關(guān)閉所述臨時進程,以釋放所述應(yīng)用程序占用的第二內(nèi)存。
[0011]第二方面,提供了一種內(nèi)存釋放裝置,所述裝置包括:
[0012]創(chuàng)建模塊,用于為應(yīng)用程序創(chuàng)建進程,所述進程至少包括后臺運行進程和臨時進程,所述后臺運行進程占用第一內(nèi)存,所述臨時進程占用第二內(nèi)存;
[0013]判斷模塊,用于當(dāng)終端處于鎖屏狀態(tài)時,判斷所述臨時進程是否符合內(nèi)存釋放條件;
[0014]關(guān)閉模塊,用于當(dāng)所述臨時進程符合所述內(nèi)存釋放條件時,關(guān)閉所述臨時進程,以釋放所述應(yīng)用程序占用的第二內(nèi)存。
[0015]本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:
[0016]通過在終端鎖屏的狀態(tài)下,判斷應(yīng)用程序的臨時進程是否符合內(nèi)存釋放條件,來釋放應(yīng)用程序占用的第二內(nèi)存,在不影響應(yīng)用程序的正常運行的情況下,實現(xiàn)了根據(jù)內(nèi)存釋放條件來釋放內(nèi)存,在實現(xiàn)上較為靈活。
【專利附圖】
【附圖說明】
[0017]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0018]圖1是本發(fā)明一實施例提供的一種內(nèi)存釋放方法的流程圖;
[0019]圖2是本發(fā)明另一實施例提供的一種內(nèi)存釋放方法的流程圖;
[0020]圖3是本發(fā)明另一實施例提供的一種內(nèi)存釋放裝置的結(jié)構(gòu)示意圖;
[0021]圖4是本發(fā)明另一實施例提供的一種內(nèi)存釋放裝置的結(jié)構(gòu)示意圖;
[0022]圖5是本發(fā)明另一實施例提供的一種內(nèi)存釋放終端的結(jié)構(gòu)示意圖。
【具體實施方式】
[0023]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0024]圖1是本發(fā)明實施例提供的一種內(nèi)存釋放方法的流程圖。參見圖1,本實施例提供的內(nèi)存釋放方法的執(zhí)行主體為應(yīng)用程序客戶端,該應(yīng)用程序客戶端可以安裝于手機、平板電腦或臺式機等終端上,該方法流程包括:
[0025]101、為應(yīng)用程序創(chuàng)建進程,該進程至少包括后臺運行進程和臨時進程,該后臺運行進程占用第一內(nèi)存,該臨時進程占用第二內(nèi)存。
[0026]其中,后臺運行進程用于處理應(yīng)用程序的第一任務(wù),該第一任務(wù)為維持應(yīng)用程序后臺運行的任務(wù)。臨時進程用于處理應(yīng)用程序的第二任務(wù),該第二任務(wù)為應(yīng)用程序的第一任務(wù)以外的任務(wù)。
[0027]102、如果終端處于鎖屏狀態(tài),判斷臨時進程是否符合內(nèi)存釋放條件。
[0028]當(dāng)臨時進程正在處理第一指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件;或,
[0029]當(dāng)臨時進程正在處理第二指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件,第二指定任務(wù)是指任務(wù)界面處于前臺運行狀態(tài)的任務(wù);或,
[0030]當(dāng)臨時進程正在處理第一指定任務(wù)和第二指定任務(wù)中的任一個時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)和第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件。
[0031]103、如果臨時進程符合內(nèi)存釋放條件,關(guān)閉臨時進程,以釋放應(yīng)用程序占用的第二內(nèi)存。
[0032]由于臨時進程占用了第二內(nèi)存,因此關(guān)閉臨時進程后即釋放了應(yīng)用程序的第二內(nèi)存。
[0033]本發(fā)明實施例提供的方法,通過在終端鎖屏的狀態(tài)下,判斷應(yīng)用程序的臨時進程是否符合內(nèi)存釋放條件,來釋放應(yīng)用程序占用的第二內(nèi)存,在不影響應(yīng)用程序的正常運行的情況下,實現(xiàn)了根據(jù)內(nèi)存釋放條件來釋放內(nèi)存,在實現(xiàn)上較為靈活。
[0034]可選地,后臺運行進程用于處理應(yīng)用程序的第一任務(wù),該第一任務(wù)為維持應(yīng)用程序后臺運行的任務(wù);
[0035]臨時進程用于處理應(yīng)用程序的第二任務(wù),該第二任務(wù)為應(yīng)用程序的第一任務(wù)以外的任務(wù)。
[0036]可選地,判斷臨時進程是否符合內(nèi)存釋放條件,包括:
[0037]判斷臨時進程是否正在處理第一指定任務(wù),當(dāng)臨時進程正在處理第一指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件;或,
[0038]判斷臨時進程是否正在處理第二指定任務(wù),當(dāng)臨時進程正在處理第二指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件,第二指定任務(wù)是指任務(wù)界面處于前臺運行狀態(tài)的任務(wù);或,
[0039]判斷臨時進程是否正在處理第一指定任務(wù)和第二指定任務(wù),當(dāng)臨時進程正在處理第一指定任務(wù)和第二指定任務(wù)中的任一個時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)和第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件。
[0040]可選地,判斷臨時進程是否正在處理第一指定任務(wù),包括:
[0041]在臨時進程中維護任務(wù)的任務(wù)狀態(tài);根據(jù)任務(wù)狀態(tài),判斷臨時進程是否正在處理第一指定任務(wù)。
[0042]可選地,判斷臨時進程是否符合內(nèi)存釋放條件之前,方法還包括:
[0043]在切換至鎖屏狀態(tài)時,啟動計時;
[0044]當(dāng)計時達到預(yù)設(shè)時長時,執(zhí)行判斷臨時進程是否符合內(nèi)存釋放條件的步驟。
[0045]上述所有可選技術(shù)方案,均可按照任意結(jié)合形成本發(fā)明的可選實施例,在此不再
--贅述。
[0046]圖2是本發(fā)明實施例提供的一種內(nèi)存釋放方法的流程圖。參見圖2,本實施例提供的內(nèi)存釋放方法的執(zhí)行主體為應(yīng)用程序客戶端,該應(yīng)用程序客戶端可以安裝于手機、平板電腦或臺式機等終端上,該方法流程包括:
[0047]201、應(yīng)用程序客戶端為應(yīng)用程序創(chuàng)建進程,該進程至少包括后臺運行進程和臨時進程,該后臺運行進程占用第一內(nèi)存,該臨時進程占用第二內(nèi)存。
[0048]在本發(fā)明實施例中,應(yīng)用程序可以是在終端上安裝的任意類型的應(yīng)用程序。應(yīng)用程序客戶端為應(yīng)用程序創(chuàng)建進程,具體包括但不限于:當(dāng)接收到對應(yīng)用程序的啟動指令時,應(yīng)用程序客戶端執(zhí)行應(yīng)用程序中預(yù)先設(shè)置的創(chuàng)建進程的指令,來為應(yīng)用程序創(chuàng)建進程。本發(fā)明實施例對應(yīng)用程序的類型以及應(yīng)用程序客戶端為應(yīng)用程序創(chuàng)建進程的方法不作具體限定。
[0049]需要說明的是,上述為應(yīng)用程序創(chuàng)建進程的方法,是以某一個應(yīng)用程序在啟動過程中創(chuàng)建進程的方法為例進行說明的。在實際應(yīng)用中,還可以采用其他方法來為應(yīng)用程序創(chuàng)建進程,如,在任意應(yīng)用程序的啟動過程中,可以由終端根據(jù)預(yù)先設(shè)置于終端上的創(chuàng)建進程的方法,為應(yīng)用程序創(chuàng)建進程。如果由應(yīng)用程序客戶端來為應(yīng)用程序創(chuàng)建進程,則只有在該應(yīng)用程序啟動至完全退出的周期內(nèi),才能執(zhí)行本發(fā)明實施例提供的內(nèi)存釋放的方法;如果由終端根據(jù)預(yù)先設(shè)置于終端上的創(chuàng)建進程的方法為應(yīng)用程序創(chuàng)建進程,則在任意應(yīng)用程序啟動至完全退出的周期內(nèi),都可以執(zhí)行本發(fā)明實施例提供的內(nèi)存釋放的方法。
[0050]應(yīng)用程序客戶端為應(yīng)用程序創(chuàng)建的進程至少包括后臺運行進程和臨時進程,其中,創(chuàng)建的后臺運行進程和臨時進程可以是一個或多個,本發(fā)明實施例對此不作具體限定。
[0051]在本發(fā)明實施例中,后臺運行進程用于處理應(yīng)用程序的第一任務(wù),該第一任務(wù)為維持應(yīng)用程序后臺運行的任務(wù)。具體地,第一任務(wù)包括所有在應(yīng)用程序啟動到完全退出的周期內(nèi)不可終止的任務(wù)。當(dāng)應(yīng)用程序切換至后臺運行并且未打開任何顯示界面時,應(yīng)用程序的所有第一任務(wù)能夠保證應(yīng)用程序的最基本功能的完整性。例如,當(dāng)應(yīng)用程序為即時通訊程序時,后臺運行進程包括用于處理通訊連接任務(wù)的進程;當(dāng)應(yīng)用程序為安全監(jiān)控程序時,后臺運行進程包括用于處理安全監(jiān)控任務(wù)的進程。
[0052]臨時進程用于處理應(yīng)用程序的第二任務(wù),該第二任務(wù)為應(yīng)用程序的第一任務(wù)以外的任務(wù)。例如,當(dāng)啟動應(yīng)用程序后,打開應(yīng)用程序的某個界面,用于處理應(yīng)用程序的界面顯示任務(wù)的進程為臨時進程;當(dāng)應(yīng)用程序為安全管理程序時,利用應(yīng)用程序?qū)K端進行殺毒,殺毒完成后即可在應(yīng)用程序尚未完全退出的情況下,終止應(yīng)用程序的殺毒任務(wù),則用于處理該殺毒任務(wù)的進程為臨時進程。
[0053]需要說明的是,應(yīng)用程序客戶端為應(yīng)用程序創(chuàng)建進程后,每個進程都會占用終端的內(nèi)存,其中,后臺運行進程占用第一內(nèi)存,臨時進程占用第二內(nèi)存。由于后臺運行進程和臨時進程占用不同的內(nèi)存,在后續(xù)步驟的執(zhí)行中,當(dāng)臨時進程滿足一定的內(nèi)存釋放條件時,可以釋放應(yīng)用程序占用的第二內(nèi)存,而保留后臺運行進程占用的第一內(nèi)存,從而保證應(yīng)用程序的第一任務(wù)不被終止,保證應(yīng)用程序的正常運行。
[0054]202、在確定終端切換至鎖屏狀態(tài)后,啟動計時。
[0055]終端切換至鎖屏狀態(tài)可能由以下任一種情況觸發(fā):(I)如果終端接收到鎖屏指令并進行鎖屏?xí)r,終端切換至鎖屏狀態(tài)。(2)如果在一段時間內(nèi)未接收到鎖屏指令,則自動觸發(fā)鎖屏指令,當(dāng)終端接收到鎖屏指令并進行鎖屏?xí)r,終端切換至鎖屏狀態(tài)。
[0056]需要說明的是,該計時過程可以由一計時器執(zhí)行。
[0057]203、當(dāng)計時時長達到預(yù)設(shè)時長時,判斷臨時進程是否符合內(nèi)存釋放條件;
[0058]如果是,執(zhí)行步驟204 ;
[0059]如果否,執(zhí)行步驟205。
[0060]在本發(fā)明實施例中,接收到的鎖屏指令可能為意外操作造成的,或者為自動觸發(fā)的鎖屏指令,如果不是用戶按照自己的意愿進行鎖屏,則在一段時間后用戶可能會重新解鎖。因此,在確定終端切換至鎖屏狀態(tài)后,可記錄終端切換至鎖屏狀態(tài)的時刻,并以記錄的該時刻為計時時長的起點,啟動計時,直至計時時長達到預(yù)設(shè)時長,計時結(jié)束,并執(zhí)行步驟203,以避免由于誤操作而造成的錯誤處理。其中,對于預(yù)設(shè)時長的具體取值,本發(fā)明實施例不作具體限定,優(yōu)選地,該預(yù)設(shè)時長為30秒。
[0061]在本發(fā)明實施例中,應(yīng)用程序客戶端為應(yīng)用程序創(chuàng)建進程后,每個進程需要處理該應(yīng)用程序的一至多個任務(wù)。
[0062]判斷臨時進程是否符合內(nèi)存釋放條件,包括以下判斷方法:
[0063]判斷方法一:判斷臨時進程是否正在處理第一指定任務(wù),當(dāng)臨時進程正在處理第一指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件。
[0064]其中,判斷臨時進程是否正在處理第一指定任務(wù),具體包括但不限于:在臨時進程中維護任務(wù)的任務(wù)狀態(tài),并根據(jù)任務(wù)狀態(tài)判斷臨時進程是否正在處理第一指定任務(wù)。具體實施時,可在臨時進程中創(chuàng)建一個任務(wù)狀態(tài)表,臨時進程一旦開始處理某個任務(wù),就將該任務(wù)加入任務(wù)狀態(tài)表中;時刻記錄該任務(wù)的狀態(tài),任務(wù)狀態(tài)可以分為正在處理中與已處理完兩種狀態(tài);當(dāng)任務(wù)狀態(tài)表中有任務(wù)狀態(tài)為正在處理中的任務(wù)時,確定臨時進程正在處理第一指定任務(wù)。在實際應(yīng)用中,也可以按照預(yù)設(shè)的重要程度標準將應(yīng)用程序的任務(wù)狀態(tài)分為重要任務(wù)和非重要任務(wù),當(dāng)任務(wù)狀態(tài)表中有重要任務(wù)時,確定臨時進程正在處理第一指定任務(wù)。本發(fā)明實施例對判斷臨時進程是否正在處理第一指定任務(wù)的方法不作具體限定。
[0065]確定臨時進程正在處理第一指定任務(wù)后,即確定臨時進程不符合內(nèi)存釋放條件。例如,安全管理程序的臨時進程在處理殺毒任務(wù)時,由于該臨時進程的任務(wù)狀態(tài)表中殺毒任務(wù)的狀態(tài)為正在處理中,可以確定臨時進程不符合內(nèi)存釋放條件。
[0066]需要說明的是,當(dāng)臨時進程正在處理第一指定任務(wù)時,說明臨時進程此時可能在處理應(yīng)用程序的關(guān)鍵任務(wù),因此確定臨時進程不符合內(nèi)存釋放條件。應(yīng)用程序客戶端將不會終止第一指定任務(wù),從而保證應(yīng)用程序在終端鎖屏狀態(tài)下關(guān)鍵任務(wù)的運行不被影響。
[0067]判斷方法二:判斷臨時進程是否正在處理第二指定任務(wù),當(dāng)臨時進程正在處理第二指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件,第二指定任務(wù)是指任務(wù)界面處于前臺運行狀態(tài)的任務(wù)。
[0068]其中,判斷臨時進程是否正在處理第二指定任務(wù),具體包括但不限于:在臨時進程中記錄任務(wù)的界面顯示狀態(tài),并根據(jù)任務(wù)的界面顯示狀態(tài)判斷臨時進程是否正在處理第二指定任務(wù)。具體實施時,可在臨時進程中創(chuàng)建一個任務(wù)狀態(tài)表,臨時進程一旦開始處理某個任務(wù),就將該任務(wù)加入任務(wù)狀態(tài)表中;時刻記錄該任務(wù)的界面顯示狀態(tài),該狀態(tài)分為界面顯示中與界面未顯示兩種狀態(tài);當(dāng)任務(wù)狀態(tài)表中有任務(wù)的界面顯示狀態(tài)為界面顯示中時,確定臨時進程正在處理第二指定任務(wù)。本發(fā)明實施例對判斷臨時進程是否正在處理第二指定任務(wù)的方法不作具體限定。
[0069]確定臨時進程正在處理第二指定任務(wù)后,即確定臨時進程不符合內(nèi)存釋放條件。例如,仍以安全管理程序的臨時進程在處理殺毒任務(wù)為例,如果該臨時進程的任務(wù)狀態(tài)表中殺毒任務(wù)的界面顯示狀態(tài)為界面顯示中,可以確定臨時進程不符合內(nèi)存釋放條件。
[0070]需要說明的是,當(dāng)臨時進程正在處理第二指定任務(wù)時,即臨時進程處理的任務(wù)當(dāng)前有顯示界面,說明用戶在終端鎖屏之前可能正在使用該顯示界面,則可以判斷該任務(wù)為用戶不希望被終止的任務(wù),因此確定臨時進程不符合內(nèi)存釋放條件。應(yīng)用程序客戶端將不會終止第二指定任務(wù),從而保證不影響用戶對應(yīng)用程序的正常使用。
[0071]判斷方法三:判斷臨時進程是否正在處理第一指定任務(wù)和第二指定任務(wù),當(dāng)臨時進程正在處理第一指定任務(wù)和第二指定任務(wù)中的任一個時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)和第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件。
[0072]其中,判斷臨時進程是否正在處理第一指定任務(wù)和第二指定任務(wù)的方法可根據(jù)判斷方法一和判斷方法二中的判斷方法來判斷,也可以根據(jù)其他方法來判斷,本發(fā)明實施例對此不作具體限定。
[0073]確定臨時進程正在處理第一指定任務(wù)和第二指定任務(wù)中的任一個后,即確定臨時進程不符合內(nèi)存釋放條件。例如,仍以安全管理程序的臨時進程為例,如果該臨時進程正在處理殺毒任務(wù),或者其軟件升級任務(wù)的界面顯示狀態(tài)為界面顯示中,則確定臨時進程不符合內(nèi)存釋放條件。
[0074]需要說明的是,當(dāng)臨時進程正在處理第一指定任務(wù)和第二指定任務(wù)中的任一個時,說明臨時進程正在處理應(yīng)用程序的關(guān)鍵任務(wù)或者用戶不希望終止的任務(wù),因此確定臨時進程不符合內(nèi)存釋放條件。應(yīng)用程序客戶端將不會終止第一指定任務(wù)和第二指定任務(wù)的執(zhí)行,從而保證不影響應(yīng)用程序在終端鎖屏狀態(tài)下的關(guān)鍵任務(wù)的運行,以及用戶對應(yīng)用程序的正常使用。
[0075]204、如果臨時進程符合內(nèi)存釋放條件,關(guān)閉臨時進程,以釋放應(yīng)用程序的第二內(nèi)存。
[0076]根據(jù)步驟203中判斷臨時進程是否符合內(nèi)存釋放條件的方法,當(dāng)臨時進程未處理第一指定任務(wù),或臨時進程未處理第二指定任務(wù)時,或臨時進程未處理第一指定任務(wù)和第二指定任務(wù)時,可確定臨時進程符合內(nèi)存釋放條件。
[0077]如果臨時進程符合內(nèi)存釋放條件,則關(guān)閉臨時進程。由于臨時進程占用了第二內(nèi)存,因此關(guān)閉臨時進程即釋放了應(yīng)用程序的第二內(nèi)存。
[0078]205、如果臨時進程不符合內(nèi)存釋放條件,結(jié)束。
[0079]根據(jù)步驟203中判斷臨時進程是否符合內(nèi)存釋放條件的方法,當(dāng)臨時進程正在處理第一指定任務(wù)和第二指定任務(wù)中任一個時,可確定臨時進程不符合內(nèi)存釋放條件。
[0080]在鎖屏狀態(tài)下,確定臨時進程不符合內(nèi)存釋放條件后,將不會釋放應(yīng)用程序占用的第二內(nèi)存,從而使臨時進程可在鎖屏狀態(tài)下繼續(xù)處理第一指定任務(wù)和第二指定任務(wù)。
[0081]上述步驟205為在確定臨時進程不符合內(nèi)存釋放條件后的步驟,在實際應(yīng)用中,還可以在確定臨時進程不符合內(nèi)存釋放條件后,判斷當(dāng)前是否切換至屏幕解鎖狀態(tài),如果確定未切換至屏幕解鎖狀態(tài),則繼續(xù)執(zhí)行步驟203,直至臨時進程處理完第一指定任務(wù)和第二指定任務(wù)后,可確定臨時進程符合內(nèi)存釋放條件,從而釋放應(yīng)用程序占用的第二內(nèi)存;如果確定已切換至屏幕解鎖狀態(tài),則結(jié)束。
[0082]本發(fā)明實施例提供的方法,通過為應(yīng)用程序創(chuàng)建后臺運行進程和臨時進程,在終端鎖屏的狀態(tài)下,判斷應(yīng)用程序的臨時進程是否正在處理第一指定任務(wù)和/或第二指定任務(wù),從而判斷該臨時進程是否符合內(nèi)存釋放條件,并在臨時進程符合內(nèi)存釋放條件時,釋放應(yīng)用程序占用的第二內(nèi)存,在不影響應(yīng)用程序的正常運行的情況下,實現(xiàn)了根據(jù)內(nèi)存釋放條件來釋放內(nèi)存,在實現(xiàn)上較為靈活。
[0083]圖3是本發(fā)明實施例提供的一種內(nèi)存釋放方法的裝置結(jié)構(gòu)示意圖,該裝置用于執(zhí)行上述圖1或圖2所示的實施例提供的內(nèi)存釋放方法。參見圖3,該裝置包括:
[0084]創(chuàng)建模塊301,用于為應(yīng)用程序創(chuàng)建進程,該進程至少包括后臺運行進程和臨時進程,后臺運行進程占用第一內(nèi)存,臨時進程占用第二內(nèi)存;
[0085]判斷模塊302,用于當(dāng)終端處于鎖屏狀態(tài)時,判斷臨時進程是否符合內(nèi)存釋放條件;
[0086]關(guān)閉模塊303,用于當(dāng)臨時進程符合內(nèi)存釋放條件時,關(guān)閉臨時進程,以釋放應(yīng)用程序占用的第二內(nèi)存。
[0087]可選地,后臺運行進程用于處理應(yīng)用程序的第一任務(wù),第一任務(wù)為維持應(yīng)用程序后臺運行的任務(wù);
[0088]臨時進程用于處理應(yīng)用程序的第二任務(wù),第二任務(wù)為應(yīng)用程序的第一任務(wù)以外的任務(wù)。
[0089]可選地,該判斷模塊302,包括:
[0090]第一判斷單元,用于判斷臨時進程是否正在處理第一指定任務(wù);
[0091]第一確定單元,用于當(dāng)臨時進程正在處理第一指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件。
[0092]可選地,該判斷模塊302,包括:
[0093]第二判斷單元,用于判斷臨時進程是否正在處理第二指定任務(wù);
[0094]第二確定單元,用于當(dāng)臨時進程正在處理第二指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件,第二指定任務(wù)是指任務(wù)界面處于前臺運行狀態(tài)的任務(wù)。
[0095]可選地,該判斷模塊302,包括:
[0096]第三判斷單元,用于判斷臨時進程是否正在處理第一指定任務(wù)和第二指定任務(wù);
[0097]第三確定單元,用于當(dāng)臨時進程正在處理第一指定任務(wù)和第二指定任務(wù)中的任一個時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)和第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件。
[0098]可選地,該第一判斷單元,用于在臨時進程中維護任務(wù)的任務(wù)狀態(tài);根據(jù)該任務(wù)狀態(tài),判斷臨時進程是否正在處理第一指定任務(wù)。
[0099]可選地,參見圖4,該內(nèi)存釋放裝置,還包括:
[0100]啟動模塊304,用于在切換至鎖屏狀態(tài)時,啟動計時;
[0101]判斷模塊302,用于當(dāng)計時達到預(yù)設(shè)時長時,執(zhí)行判斷臨時進程是否符合內(nèi)存釋放條件的步驟。
[0102]本發(fā)明實施例提供的裝置,通過在終端鎖屏的狀態(tài)下,判斷應(yīng)用程序的臨時進程是否符合內(nèi)存釋放條件,來釋放應(yīng)用程序占用的第二內(nèi)存,在不影響應(yīng)用程序的正常運行的情況下,實現(xiàn)了根據(jù)內(nèi)存釋放條件來釋放內(nèi)存,在實現(xiàn)上較為靈活。
[0103]圖5是本發(fā)明實施例提供的一種內(nèi)存釋放終端的結(jié)構(gòu)示意圖,參見圖5,其示出了本發(fā)明實施例所涉及的終端的結(jié)構(gòu)示意圖,該終端可以用于實施上述實施例中提供的內(nèi)存釋放方法。具體來講:
[0104]終端500可以包括顯示單元140、包括有一個或一個以上計算機可讀存儲介質(zhì)的存儲器120、輸入單兀130、傳感器150、包括有一個或者一個以上處理核心的處理器160、以及電源170等部件。本領(lǐng)域技術(shù)人員可以理解,圖5中示出的終端結(jié)構(gòu)并不構(gòu)成對終端的限定,可以包括比圖示更多或更少的部件,或者組合某些部件,或者不同的部件布置。其中:
[0105]存儲器120可用于存儲軟件程序以及模塊,處理器160通過運行存儲在存儲器120的軟件程序以及模塊,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理。存儲器120可主要包括存儲程序區(qū)和存儲數(shù)據(jù)區(qū),其中,存儲程序區(qū)可存儲操作系統(tǒng)、至少一個功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲數(shù)據(jù)區(qū)可存儲根據(jù)終端500的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲器120可以包括高速隨機存取存儲器,還可以包括非易失性存儲器,例如至少一個磁盤存儲器件、閃存器件、或其他易失性固態(tài)存儲器件。相應(yīng)地,存儲器120還可以包括存儲器控制器,以提供處理器160和輸入單元130對存儲器120的訪問。
[0106]輸入單元130可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與用戶設(shè)置以及功能控制有關(guān)的鍵盤、鼠標、操作桿、光學(xué)或者軌跡球信號輸入。具體地,輸入單元130可包括觸敏表面131以及其他輸入設(shè)備132。觸敏表面131,也稱為觸摸顯示屏或者觸控板,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸敏表面131上或在觸敏表面131附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動相應(yīng)的連接裝置??蛇x的,觸敏表面131可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標,再送給處理器180,并能接收處理器180發(fā)來的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)觸敏表面131。除了觸敏表面131,輸入單元130還可以包括其他輸入設(shè)備132。具體地,其他輸入設(shè)備132可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。
[0107]顯示單元140可用于顯示由用戶輸入的信息或提供給用戶的信息以及終端500的各種圖形用戶接口,這些圖形用戶接口可以由圖形、文本、圖標、視頻和其任意組合來構(gòu)成。顯示單元140可包括顯示面板141,可選的,可以采用LCD(Liquid Crystal Display,液晶顯示器)、OLED (Organic Light-Emitting D1de,有機發(fā)光二極管)等形式來配置顯示面板141。進一步的,觸敏表面131可覆蓋顯示面板141,當(dāng)觸敏表面131檢測到在其上或附近的觸摸操作后,傳送給處理器160以確定觸摸事件的類型,隨后處理器160根據(jù)觸摸事件的類型在顯示面板141上提供相應(yīng)的視覺輸出。雖然在圖5中,觸敏表面131與顯示面板141是作為兩個獨立的部件來實現(xiàn)輸入和輸入功能,但是在某些實施例中,可以將觸敏表面131與顯示面板141集成而實現(xiàn)輸入和輸出功能。
[0108]終端500還可包括至少一種傳感器150,比如光傳感器、運動傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來調(diào)節(jié)顯示面板141的亮度,接近傳感器可在終端500移動到耳邊時,關(guān)閉顯示面板141和/或背光。作為運動傳感器的一種,重力加速度傳感器可檢測各個方向上(一般為三軸)加速度的大小,靜止時可檢測出重力的大小及方向,可用于識別手機姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計姿態(tài)校準)、振動識別相關(guān)功能(比如計步器、敲擊)等;至于終端500還可配置的陀螺儀、氣壓計、濕度計、溫度計、紅外線傳感器等其他傳感器,在此不再贅述。
[0109]處理器160是終端500的控制中心,利用各種接口和線路連接整個手機的各個部分,通過運行或執(zhí)行存儲在存儲器120內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲在存儲器120內(nèi)的數(shù)據(jù),執(zhí)行終端500的各種功能和處理數(shù)據(jù),從而對手機進行整體監(jiān)控??蛇x的,處理器160可包括一個或多個處理核心;優(yōu)選的,處理器160可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器160中。
[0110]終端500還包括給各個部件供電的電源170 (比如電池),優(yōu)選的,電源可以通過電源管理系統(tǒng)與處理器160邏輯相連,從而通過電源管理系統(tǒng)實現(xiàn)管理充電、放電、以及功耗管理等功能。電源170還可以包括一個或一個以上的直流或交流電源、再充電系統(tǒng)、電源故障檢測電路、電源轉(zhuǎn)換器或者逆變器、電源狀態(tài)指示器等任意組件。
[0111]盡管未示出,終端500還可以包括攝像頭、藍牙模塊等,在此不再贅述。具體在本實施例中,終端的顯示單元是觸摸屏顯示器,終端還包括有存儲器,以及一個或者一個以上的程序,其中一個或者一個以上程序存儲于存儲器中,且經(jīng)配置以由一個或者一個以上處理器執(zhí)行。所述一個或者一個以上程序包含用于執(zhí)行以下操作的指令:
[0112]為應(yīng)用程序創(chuàng)建進程,該進程至少包括后臺運行進程和臨時進程,該后臺運行進程占用第一內(nèi)存,該臨時進程占用第二內(nèi)存;
[0113]如果終端處于鎖屏狀態(tài),判斷臨時進程是否符合內(nèi)存釋放條件;
[0114]如果臨時進程符合內(nèi)存釋放條件,關(guān)閉臨時進程,以釋放應(yīng)用程序占用的第二內(nèi)存。
[0115]假設(shè)上述為第一種可能的實施方式,則在第一種可能的實施方式作為基礎(chǔ)而提供的第二種可能的實施方式中,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
[0116]后臺運行進程用于處理應(yīng)用程序的第一任務(wù),該第一任務(wù)為維持應(yīng)用程序后臺運行的任務(wù);
[0117]臨時進程用于處理應(yīng)用程序的第二任務(wù),該第二任務(wù)為應(yīng)用程序的第一任務(wù)以外的任務(wù)。
[0118]在第一種可能的實施方式作為基礎(chǔ)而提供的第三種可能的實施方式中,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
[0119]判斷臨時進程是否正在處理第一指定任務(wù),當(dāng)臨時進程正在處理第一指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件;或,
[0120]判斷臨時進程是否正在處理第二指定任務(wù),當(dāng)臨時進程正在處理第二指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件,第二指定任務(wù)是指任務(wù)界面處于前臺運行狀態(tài)的任務(wù);或,
[0121]判斷臨時進程是否正在處理第一指定任務(wù)和第二指定任務(wù),當(dāng)臨時進程正在處理第一指定任務(wù)和第二指定任務(wù)中的任一個時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)和第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件。
[0122]在第三種可能的實施方式作為基礎(chǔ)而提供的第四種可能的實施方式中,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
[0123]在臨時進程中維護任務(wù)的任務(wù)狀態(tài);
[0124]根據(jù)任務(wù)狀態(tài),判斷臨時進程是否正在處理第一指定任務(wù)。
[0125]在第一種可能的實施方式作為基礎(chǔ)而提供的第五種可能的實施方式中,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
[0126]在切換至鎖屏狀態(tài)時,啟動計時;
[0127]當(dāng)計時達到預(yù)設(shè)時長時,執(zhí)行判斷臨時進程是否符合內(nèi)存釋放條件的步驟。
[0128]本發(fā)明實施例提供的終端,通過在終端鎖屏的狀態(tài)下,判斷應(yīng)用程序的臨時進程是否符合內(nèi)存釋放條件,來釋放應(yīng)用程序占用的第二內(nèi)存,在不影響應(yīng)用程序的正常運行的情況下,實現(xiàn)了根據(jù)內(nèi)存釋放條件來釋放內(nèi)存,在實現(xiàn)上較為靈活。
[0129]本發(fā)明實施例提供了一種計算機可讀存儲介質(zhì),該計算機可讀存儲介質(zhì)可以是上述實施例中的存儲器中所包含的計算機可讀存儲介質(zhì);也可以是單獨存在,未裝配入終端中的計算機可讀存儲介質(zhì)。該計算機可讀存儲介質(zhì)存儲有一個或者一個以上程序,該一個或者一個以上程序被一個或者一個以上的處理器用來執(zhí)行內(nèi)存釋放方法,該方法包括:
[0130]為應(yīng)用程序創(chuàng)建進程,該進程至少包括后臺運行進程和臨時進程,該后臺運行進程占用第一內(nèi)存,該臨時進程占用第二內(nèi)存;
[0131]如果終端處于鎖屏狀態(tài),判斷臨時進程是否符合內(nèi)存釋放條件;
[0132]如果臨時進程符合內(nèi)存釋放條件,關(guān)閉臨時進程,以釋放應(yīng)用程序占用的第二內(nèi)存。
[0133]假設(shè)上述為第一種可能的實施方式,則在第一種可能的實施方式作為基礎(chǔ)而提供的第二種可能的實施方式中,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
[0134]后臺運行進程用于處理應(yīng)用程序的第一任務(wù),該第一任務(wù)為維持應(yīng)用程序后臺運行的任務(wù);
[0135]臨時進程用于處理應(yīng)用程序的第二任務(wù),該第二任務(wù)為應(yīng)用程序的第一任務(wù)以外的任務(wù)。
[0136]在第一種可能的實施方式作為基礎(chǔ)而提供的第三種可能的實施方式中,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
[0137]判斷臨時進程是否正在處理第一指定任務(wù),當(dāng)臨時進程正在處理第一指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件;或,
[0138]判斷臨時進程是否正在處理第二指定任務(wù),當(dāng)臨時進程正在處理第二指定任務(wù)時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件,第二指定任務(wù)是指任務(wù)界面處于前臺運行狀態(tài)的任務(wù);或,
[0139]判斷臨時進程是否正在處理第一指定任務(wù)和第二指定任務(wù),當(dāng)臨時進程正在處理第一指定任務(wù)和第二指定任務(wù)中的任一個時,確定臨時進程不符合內(nèi)存釋放條件;當(dāng)臨時進程未處理第一指定任務(wù)和第二指定任務(wù)時,確定臨時進程符合內(nèi)存釋放條件。
[0140]在第三種可能的實施方式作為基礎(chǔ)而提供的第四種可能的實施方式中,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
[0141]在臨時進程中維護任務(wù)的任務(wù)狀態(tài);
[0142]根據(jù)任務(wù)狀態(tài),判斷臨時進程是否正在處理第一指定任務(wù)。
[0143]在第一種可能的實施方式作為基礎(chǔ)而提供的第五種可能的實施方式中,終端的存儲器中,還包含用于執(zhí)行以下操作的指令:
[0144]在切換至鎖屏狀態(tài)時,啟動計時;
[0145]當(dāng)計時達到預(yù)設(shè)時長時,執(zhí)行判斷臨時進程是否符合內(nèi)存釋放條件的步驟。
[0146]本發(fā)明實施例提供的計算機可讀存儲介質(zhì),通過在終端鎖屏的狀態(tài)下,判斷應(yīng)用程序的臨時進程是否符合內(nèi)存釋放條件,來釋放應(yīng)用程序占用的第二內(nèi)存,在不影響應(yīng)用程序的正常運行的情況下,實現(xiàn)了根據(jù)內(nèi)存釋放條件來釋放內(nèi)存,在實現(xiàn)上較為靈活。
[0147]本發(fā)明實施例中提供了一種圖形用戶接口,該圖形用戶接口用在終端上,該終端包括觸摸屏顯示器、存儲器和用于執(zhí)行一個或者一個以上的程序的一個或者一個以上的處理器;該圖形用戶接口包括:
[0148]為應(yīng)用程序創(chuàng)建進程,該進程至少包括后臺運行進程和臨時進程,該后臺運行進程占用第一內(nèi)存,該臨時進程占用第二內(nèi)存;
[0149]如果終端處于鎖屏狀態(tài),判斷臨時進程是否符合內(nèi)存釋放條件;
[0150]如果臨時進程符合內(nèi)存釋放條件,關(guān)閉臨時進程,以釋放應(yīng)用程序占用的第二內(nèi)存。
[0151]本發(fā)明實施例提供的圖形用戶接口,通過在終端鎖屏的狀態(tài)下,判斷應(yīng)用程序的臨時進程是否符合內(nèi)存釋放條件,來釋放應(yīng)用程序占用的第二內(nèi)存,在不影響應(yīng)用程序的正常運行的情況下,實現(xiàn)了根據(jù)內(nèi)存釋放條件來釋放內(nèi)存,在實現(xiàn)上較為靈活。
[0152]需要說明的是:上述實施例提供的內(nèi)存釋放裝置在釋放內(nèi)存時,僅以上述各功能模塊的劃分進行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。另外,上述實施例提供的內(nèi)存釋放裝置與內(nèi)存釋放方法實施例屬于同一構(gòu)思,其具體實現(xiàn)過程詳見方法實施例,這里不再贅述。
[0153]上述本發(fā)明實施例序號僅僅為了描述,不代表實施例的優(yōu)劣。
[0154]本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分步驟可以通過硬件來完成,也可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計算機可讀存儲介質(zhì)中,上述提到的存儲介質(zhì)可以是只讀存儲器,磁盤或光盤等。
[0155]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
【權(quán)利要求】
1.一種內(nèi)存釋放方法,其特征在于,所述方法包括: 為應(yīng)用程序創(chuàng)建進程,所述進程至少包括后臺運行進程和臨時進程,所述后臺運行進程占用第一內(nèi)存,所述臨時進程占用第二內(nèi)存; 如果終端處于鎖屏狀態(tài),判斷所述臨時進程是否符合內(nèi)存釋放條件; 如果所述臨時進程符合所述內(nèi)存釋放條件,關(guān)閉所述臨時進程,以釋放所述應(yīng)用程序占用的第二內(nèi)存。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述后臺運行進程用于處理所述應(yīng)用程序的第一任務(wù),所述第一任務(wù)為維持所述應(yīng)用程序后臺運行的任務(wù); 所述臨時進程用于處理所述應(yīng)用程序的第二任務(wù),所述第二任務(wù)為所述應(yīng)用程序的第一任務(wù)以外的任務(wù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷所述臨時進程是否符合內(nèi)存釋放條件,包括: 判斷所述臨時進程是否正在處理第一指定任務(wù),當(dāng)所述臨時進程正在處理第一指定任務(wù)時,確定所述臨時進程不符合內(nèi)存釋放條件;當(dāng)所述臨時進程未處理第一指定任務(wù)時,確定所述臨時進程符合內(nèi)存釋放條件;或, 判斷所述臨時進程是否正在處理第二指定任務(wù),當(dāng)所述臨時進程正在處理第二指定任務(wù)時,確定所述臨時進程不符合內(nèi)存釋放條件;當(dāng)所述臨時進程未處理第二指定任務(wù)時,確定所述臨時進程符合內(nèi)存釋放條件,所述第二指定任務(wù)是指任務(wù)界面處于前臺運行狀態(tài)的任務(wù);或, 判斷所述臨時進程是否正在處理第一指定任務(wù)和第二指定任務(wù),當(dāng)所述臨時進程正在處理所述第一指定任務(wù)和第二指定任務(wù)中的任一個時,確定所述臨時進程不符合內(nèi)存釋放條件;當(dāng)所述臨時進程未處理所述第一指定任務(wù)和第二指定任務(wù)時,確定所述臨時進程符合內(nèi)存釋放條件。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述判斷所述臨時進程是否正在處理第一指定任務(wù),包括: 在臨時進程中維護任務(wù)的任務(wù)狀態(tài); 根據(jù)所述任務(wù)狀態(tài),判斷所述臨時進程是否正在處理第一指定任務(wù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述判斷所述臨時進程是否符合內(nèi)存釋放條件之前,所述方法還包括: 在切換至鎖屏狀態(tài)時,啟動計時; 當(dāng)計時達到預(yù)設(shè)時長時,執(zhí)行所述判斷所述臨時進程是否符合內(nèi)存釋放條件的步驟。
6.一種內(nèi)存釋放裝置,其特征在于,所述裝置包括: 創(chuàng)建模塊,用于為應(yīng)用程序創(chuàng)建進程,所述進程至少包括后臺運行進程和臨時進程,所述后臺運行進程占用第一內(nèi)存,所述臨時進程占用第二內(nèi)存; 判斷模塊,用于當(dāng)終端處于鎖屏狀態(tài)時,判斷所述臨時進程是否符合內(nèi)存釋放條件; 關(guān)閉模塊,用于當(dāng)所述臨時進程符合所述內(nèi)存釋放條件時,關(guān)閉所述臨時進程,以釋放所述應(yīng)用程序占用的第二內(nèi)存。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述后臺運行進程用于處理所述應(yīng)用程序的第一任務(wù),所述第一任務(wù)為維持所述應(yīng)用程序后臺運行的任務(wù); 所述臨時進程用于處理所述應(yīng)用程序的第二任務(wù),所述第二任務(wù)為所述應(yīng)用程序的第一任務(wù)以外的任務(wù)。
8.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述判斷模塊,包括: 第一判斷單元,用于判斷所述臨時進程是否正在處理第一指定任務(wù); 第一確定單元,用于當(dāng)所述臨時進程正在處理第一指定任務(wù)時,確定所述臨時進程不符合內(nèi)存釋放條件;當(dāng)所述臨時進程未處理第一指定任務(wù)時,確定所述臨時進程符合內(nèi)存釋放條件。
9.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述判斷模塊,包括: 第二判斷單元,用于判斷所述臨時進程是否正在處理第二指定任務(wù); 第二確定單元,用于當(dāng)所述臨時進程正在處理第二指定任務(wù)時,確定所述臨時進程不符合內(nèi)存釋放條件;當(dāng)所述臨時進程未處理第二指定任務(wù)時,確定所述臨時進程符合內(nèi)存釋放條件,所述第二指定任務(wù)是指任務(wù)界面處于前臺運行狀態(tài)的任務(wù)。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述判斷模塊,包括: 第三判斷單元,用于判斷所述臨時進程是否正在處理第一指定任務(wù)和第二指定任務(wù); 第三確定單元,用于當(dāng)所述臨時進程正在處理所述第一指定任務(wù)和第二指定任務(wù)中的任一個時,確定所述臨時進程不符合內(nèi)存釋放條件;當(dāng)所述臨時進程未處理所述第一指定任務(wù)和第二指定任務(wù)時,確定所述臨時進程符合內(nèi)存釋放條件。
11.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述第一判斷單元,用于在臨時進程中維護任務(wù)的任務(wù)狀態(tài);根據(jù)所述任務(wù)狀態(tài),判斷所述臨時進程是否正在處理第一指定任務(wù)。
12.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置,還包括: 啟動模塊,用于在切換至鎖屏狀態(tài)時,啟動計時; 所述判斷模塊,用于當(dāng)計時達到預(yù)設(shè)時長時,執(zhí)行所述判斷所述臨時進程是否符合內(nèi)存釋放條件的步驟。
【文檔編號】G06F9/46GK104375880SQ201410480124
【公開日】2015年2月25日 申請日期:2014年9月18日 優(yōu)先權(quán)日:2014年9月18日
【發(fā)明者】林釗武 申請人:騰訊科技(深圳)有限公司