欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種內(nèi)存回收方法及終端與流程

文檔序號:12176564閱讀:199來源:國知局
一種內(nèi)存回收方法及終端與流程

本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種內(nèi)存回收方法及終端。



背景技術(shù):

Android(安卓)是一個可以同時運行多個應(yīng)用程序的多任務(wù)系統(tǒng),Android在用戶使用完某個應(yīng)用程序時往往不會關(guān)閉掉該應(yīng)用程序,而是讓該應(yīng)用程序已經(jīng)啟動的進程在后臺繼續(xù)運行,用戶下次使用該應(yīng)用程序時就不需要重新啟動這些進程,減少了重啟該應(yīng)用程序所花的時間。每個進程在后臺運行均會占用相應(yīng)的內(nèi)存,后臺運行的進程不斷增多會導(dǎo)致內(nèi)存不足從而影響Android正常運行,低內(nèi)存管理器(英文:Low Memory Killer,簡稱:LMK)可在內(nèi)存低于某值時回收部分進程運行時占用的內(nèi)存,以確保Android正常運行。

然而,部分進程被回收內(nèi)存后還會自動啟動,從而再次占用內(nèi)存,導(dǎo)致內(nèi)存回收的效果不好。



技術(shù)實現(xiàn)要素:

本發(fā)明實施例公開了一種內(nèi)存回收方法及終端,能夠提升內(nèi)存回收的效果。

第一方面,本發(fā)明實施例提供了一種內(nèi)存回收方法,該方法包括:終端根據(jù)預(yù)設(shè)規(guī)則從后臺運行的各個應(yīng)用程序中確定目標應(yīng)用程序,該目標應(yīng)用程序是需要被清理的應(yīng)用程序;該終端凍結(jié)該目標應(yīng)用程序以使所述目標應(yīng)用程序的進程為不可中斷的睡眠狀態(tài),并回收內(nèi)存中該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù);該終端在接收到輸入的針對該目標應(yīng)用程序的觸發(fā)指令時,解除對該目標應(yīng)用程序的凍結(jié)以使所述目標應(yīng)用程序的進程為可中斷的睡眠狀態(tài),并在解除對所述目標應(yīng)用程序的凍結(jié)后運行該目標應(yīng)用程序。

通過執(zhí)行上述操作,終端在回收目標應(yīng)用程序的進行時凍結(jié)該目標應(yīng)用程序,使得該終端在接收到用戶輸入的針對該目標應(yīng)用程序的觸發(fā)指令時才解除對該目標應(yīng)用程序的凍結(jié),避免了該目標應(yīng)用程序的進程自動啟動而再次占內(nèi)存,提升了內(nèi)存回收的效果。

結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,該終端根據(jù)預(yù)設(shè)規(guī)則從后臺運行的各個應(yīng)用程序中確定目標應(yīng)用程序包括:確定內(nèi)存的剩余量大于預(yù)設(shè)內(nèi)存閾值;根據(jù)預(yù)設(shè)規(guī)則確定目標應(yīng)用程序。

可以理解的是,在終端進入預(yù)設(shè)的空閑狀態(tài)時才執(zhí)行清理應(yīng)用程序的相關(guān)操作不會對用戶產(chǎn)生干擾;在內(nèi)存的剩余量大于該內(nèi)存閾值執(zhí)行清理應(yīng)用程序的相關(guān)操作可以保證清理的過程順暢。

結(jié)合第一方面,或者第一方面的第一種可能的實現(xiàn)方式,在第一方面的第二種可能的實現(xiàn)方式中,回收內(nèi)存中所述目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù),包括:將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到預(yù)設(shè)的存儲空間。在解除對所述目標應(yīng)用程序的凍結(jié)后運行所述目標應(yīng)用程序,包括:在解除對所述目標應(yīng)用程序的凍結(jié)后將該產(chǎn)生的數(shù)據(jù)從該存儲空間加載到該內(nèi)存以啟動該目標應(yīng)用程序。

可以理解的是,將進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存中遷移到存儲空間不僅為內(nèi)存騰出了空間,還保證了該部分數(shù)據(jù)不丟失,也即是說,通過這種方式不但保證了內(nèi)存的順利回收,還保證了用戶下次使用該目標應(yīng)用程序時可以直接進入到用戶上次退出該目標應(yīng)用時的界面,提升了用戶體驗。

結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第一方面的第三種可能的實現(xiàn)方式中,該方法還包括:該終端確定該存儲空間可寫入數(shù)據(jù)的剩余量。將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到存儲空間,包括:在該目標應(yīng)用程序運行時產(chǎn)生的數(shù)據(jù)不大于該可寫入數(shù)據(jù)的剩余量時,將該產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到預(yù)設(shè)的存儲空間。

結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第一方面的第四種可能的實現(xiàn)方式中,該終端確定該存儲空間可寫入數(shù)據(jù)的剩余量,包括:根據(jù)預(yù)先獲取的該存儲空間的可寫入數(shù)據(jù)總量計算該存儲空間平均每天可寫入數(shù)據(jù)的總量;根據(jù)當天可寫入數(shù)據(jù)的總量和當天已寫入數(shù)據(jù)的總量計算該存儲空間當天可寫入數(shù)據(jù)的剩余量。

可以理解的是,控制存儲空間每天寫入數(shù)據(jù)的總量可以保證該存儲空間在預(yù)計的壽命周期內(nèi)不會因為寫入次數(shù)較多而壞掉。

結(jié)合第一方面,或者第一方面的第一種可能的實現(xiàn)方式,或者第一方面的第二種可能的實現(xiàn)方式,或者第一方面的第三種可能的實現(xiàn)方式,或者第一方面的第四種可能的實現(xiàn)方式,在第一方面的第五種可能的實現(xiàn)方式中,該目標應(yīng)用程序為通過冷啟動的啟動方式啟動所需要的時間超過預(yù)設(shè)時間閾值的應(yīng)用程序。

可以理解的是,通過冷啟動的方式啟動耗時較長的應(yīng)用程序通常占用的內(nèi)存比較大,選擇這樣的應(yīng)用程序來清理可以釋放較多內(nèi)存;另外,這樣的應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)先遷移到存儲空間,后面重啟目標應(yīng)用程序時再遷移回內(nèi)存,能夠很明顯的縮短重啟該目標應(yīng)用程序的時間。

結(jié)合第一方面,或者第一方面的第一種可能的實現(xiàn)方式,或者第一方面的第二種可能的實現(xiàn)方式,或者第一方面的第三種可能的實現(xiàn)方式,或者第一方面的第四種可能的實現(xiàn)方式,或者第一方面的第五種可能的實現(xiàn)方式,在第一方面的第六種可能的實現(xiàn)方式中,該終端凍結(jié)目標應(yīng)用程序以使該目標應(yīng)用程序的進程為不可中斷的睡眠狀態(tài)包括:將目標應(yīng)用程序的進程設(shè)置為TASK_UNINTERRUPTIABLE狀態(tài);該解除對該目標應(yīng)用程序的凍結(jié)以使該目標應(yīng)用程序的進程為可中斷的睡眠狀態(tài)包括:將該目標應(yīng)用程序的進程設(shè)置為TASK_INTERRUPTIBLE狀態(tài)。

第二方面,本發(fā)明實施例提供一種終端,該終端包括確定單元、回收單元和解除單元,其中,確定單元用于根據(jù)預(yù)設(shè)規(guī)則從后臺運行的各個應(yīng)用程序中確定目標應(yīng)用程序所述目標應(yīng)用程序是需要被清理的應(yīng)用程序;回收單元用于凍結(jié)目標應(yīng)用程序以使所述目標應(yīng)用程序的進程為不可中斷的睡眠狀態(tài),并回收內(nèi)存中該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù);解除單元用于在接收到輸入的針對該目標應(yīng)用程序的觸發(fā)指令時,解除對該目標應(yīng)用程序的凍結(jié)以使所述目標應(yīng)用程序的進程為可中斷的睡眠狀態(tài),并在解除對所述目標應(yīng)用程序的凍結(jié)后運行該目標應(yīng)用程序。

通過運行上述單元,終端在回收目標應(yīng)用程序的進行時凍結(jié)該目標應(yīng)用程序,使得該終端在接收到用戶輸入的針對該目標應(yīng)用程序的觸發(fā)指令時才解除對該目標應(yīng)用程序的凍結(jié),避免了該目標應(yīng)用程序的進程自動啟動而再次占內(nèi)存,提升了內(nèi)存回收的效果。

結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,該確定單元具體用于確定內(nèi)存的剩余量大于預(yù)設(shè)內(nèi)存閾值根據(jù)預(yù)設(shè)規(guī)則確定目標應(yīng)用程序。

可以理解的是,在終端進入預(yù)設(shè)的空閑狀態(tài)時才執(zhí)行清理應(yīng)用程序的相關(guān)操作不會對用戶產(chǎn)生干擾;在內(nèi)存的剩余量大于該內(nèi)存閾值執(zhí)行清理應(yīng)用程序的相關(guān)操作可以保證清理的過程順暢。

結(jié)合第二方面,或者第二方面的第一種可能的實現(xiàn)方式,在第二方面的第二種可能的實現(xiàn)方式中,該回收單元具體用于將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到預(yù)設(shè)的存儲空間;該解除單元在解除對所述目標應(yīng)用程序的凍結(jié)后運行所述目標應(yīng)用程序具體為:在解除對所述目標應(yīng)用程序的凍結(jié)后將該產(chǎn)生的數(shù)據(jù)從該存儲空間加載到該內(nèi)存以啟動該目標應(yīng)用程序。

可以理解的是,將進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存中遷移到存儲空間不僅為內(nèi)存騰出了空間,還保證了該部分數(shù)據(jù)不丟失,也即是說,通過這種方式不但保證了內(nèi)存的順利回收,還保證了用戶下次使用該目標應(yīng)用程序時可以直接進入到用戶上次退出該目標應(yīng)用時的界面,提升了用戶體驗。

結(jié)合第二方面的第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,該終端還包括:計算單元,用于確定該存儲空間可寫入數(shù)據(jù)的剩余量;該回收單元將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到預(yù)設(shè)的存儲空間具體為:在該目標應(yīng)用程序運行時產(chǎn)生的數(shù)據(jù)不大于該可寫入數(shù)據(jù)的剩余量時,將該產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到存儲空間。

結(jié)合第二方面的第三種可能的實現(xiàn)方式,在第二方面的第四種可能的實現(xiàn)方式中,該計算單元具體用于根據(jù)預(yù)先獲取的該存儲空間的可寫入數(shù)據(jù)總量計算該存儲空間平均每天可寫入數(shù)據(jù)的總量;根據(jù)當天可寫入數(shù)據(jù)的總量和當天已寫入數(shù)據(jù)的總量計算該存儲空間當天可寫入數(shù)據(jù)的剩余量。

可以理解的是,控制存儲空間每天寫入數(shù)據(jù)的總量可以保證該存儲空間在預(yù)計的壽命周期內(nèi)不會因為寫入次數(shù)較多而壞掉。

結(jié)合第二方面,或者第二方面的第一種可能的實現(xiàn)方式,或者第二方面的第二種可能的實現(xiàn)方式,或者第二方面的第三種可能的實現(xiàn)方式,或者第二方面的第四種可能的實現(xiàn)方式,在第二方面的第五種可能的實現(xiàn)方式中,該目標應(yīng)用程序為通過冷啟動的啟動方式啟動所需要的時間超過預(yù)設(shè)時間閾值的應(yīng)用程序。

可以理解的是,通過冷啟動的方式啟動耗時較長的應(yīng)用程序通常占用的內(nèi)存比較大,選擇這樣的應(yīng)用程序來清理可以釋放較多內(nèi)存;另外,這樣的應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)先遷移到存儲空間,后面重啟目標應(yīng)用程序時再遷移回內(nèi)存,能夠很明顯的縮短重啟該目標應(yīng)用程序的時間。

結(jié)合第二方面,或者第二方面的第一種可能的實現(xiàn)方式,或者第二方面的第二種可能的實現(xiàn)方式,或者第二方面的第三種可能的實現(xiàn)方式,或者第二方面的第四種可能的實現(xiàn)方式,或者第二方面的第五種可能的實現(xiàn)方式,在第二方面的第六種可能的實現(xiàn)方式中,該回收單元具體用于將目標應(yīng)用程序的進程設(shè)置為TASK_UNINTERRUPTIABLE狀態(tài);該解除單元具體用于將該目標應(yīng)用程序的進程設(shè)置為TASK_INTERRUPTIBLE狀態(tài)。

第三方面,本發(fā)明實施例提供一種終端,該終端包括處理器、存儲器和系統(tǒng)總線。存儲器用于存儲計算機執(zhí)行指令,處理器和存儲器通過系統(tǒng)總線相互連接,當計算機運行時,處理器執(zhí)行存儲器存儲的計算機執(zhí)行指令,以使計算機執(zhí)行如上述第一方面或其任意一項可選的實現(xiàn)方式所描述的內(nèi)存回收方法。

上述第三方面的技術(shù)效果的描述具體可參見上述對第一方面或其任意一種可選的實現(xiàn)方式的技術(shù)效果的相關(guān)描述,此處不再贅述。

通過實施本發(fā)明實施例,終端在回收目標應(yīng)用程序的進行時凍結(jié)該目標應(yīng)用程序,使得該終端在接收到用戶輸入的針對該目標應(yīng)用程序的觸發(fā)指令時才解除對該目標應(yīng)用程序的凍結(jié),避免了該目標應(yīng)用程序的進程自動啟動而再次占內(nèi)存,提升了內(nèi)存回收的效果。

附圖說明

為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹。

圖1是本發(fā)明實施例提供的一種終端的結(jié)構(gòu)示意圖;

圖2是本發(fā)明實施例提供的一種內(nèi)存回收方法的流程示意圖;

圖3是本發(fā)明實施例提供的又一種終端的結(jié)構(gòu)示意圖;

圖4是本發(fā)明實施例提供的又一種終端的結(jié)構(gòu)示意圖。

具體實施方式

下面將結(jié)合附圖對本發(fā)明實施例中的技術(shù)方案進行清楚、詳細地描述。

本發(fā)明實施例提供的內(nèi)存回收方法主要應(yīng)用于終端設(shè)備,該終端也可為用戶設(shè)備(英文:User Equipment,簡稱:UE)、移動臺(英文:Mobile Station,簡稱:MS)、移動終端(Mobile Terminal)等,可選的,該終端可以具備經(jīng)無線接入網(wǎng)(英文:Radio Access Network,簡稱:RAN)與一個或多個核心網(wǎng)進行通信的能力,例如,終端可以是移動電話(或稱為“蜂窩”電話)、或具有移動性質(zhì)的計算機等,例如,終端還可以是便攜式、袖珍式、手持式、計算機內(nèi)置的或者車載的移動裝置。除了終端以外,本發(fā)明實施例提供的內(nèi)存回收方法也可以應(yīng)用于其他類型的計算機系統(tǒng)。

請參見圖1,為本發(fā)明實施例應(yīng)用的終端100的結(jié)構(gòu)示意圖。如圖1所示,終端100包括存儲器180、處理器150以及顯示設(shè)備140。存儲器180存儲計算機程序,該計算機程序包括操作系統(tǒng)程序182和應(yīng)用程序181等。處理器150用于讀取存儲器180中的計算機程序,然后執(zhí)行計算機程序定義的方法,例如處理器150讀取操作系統(tǒng)程序182從而在該終端100上運行操作系統(tǒng)以及實現(xiàn)操作系統(tǒng)的各種功能,或讀取一種或多種應(yīng)用程序181從而在終端上運行應(yīng)用。

處理器150可以包括一個或多個處理器,例如,處理器150可以包括一個或多個中央處理器,或者包括一個中央處理器和一個圖形處理器。當處理器150包括多個處理器時,這多個處理器可以集成在同一塊芯片上,也可以各自為獨立的芯片。一個處理器可以包括一個或多個處理核,以下實施例均以多核為例來介紹,但是本發(fā)明實施例提供的內(nèi)存回收方法也可以應(yīng)用于單核處理器。

另外,存儲器180還存儲有除計算機程序之外的其他數(shù)據(jù)183,其他數(shù)據(jù)183可包括操作系統(tǒng)182或應(yīng)用程序181被運行后產(chǎn)生的數(shù)據(jù),該數(shù)據(jù)包括系統(tǒng)數(shù)據(jù)(例如操作系統(tǒng)的配置參數(shù))和用戶數(shù)據(jù),例如,進程運行時產(chǎn)生的數(shù)據(jù),進行運行時產(chǎn)生的數(shù)據(jù)也是本發(fā)明實施例中回收的對象。

存儲器180一般包括內(nèi)存和外存。內(nèi)存可以為隨機存儲器(RAM),只讀存儲器(ROM),以及高速緩存(CACHE)等。本發(fā)明實施例所描述的預(yù)設(shè)的存儲空間屬于該外存,該存儲空間可以包括閃存(flash)、硬盤、光盤、USB盤、軟盤或磁帶機等。計算機程序通常被存儲在外存上,處理器在執(zhí)行處理前會將計算機程序從外存加載到內(nèi)存。本發(fā)明實施例中的應(yīng)用程序通常存儲在外存上,處理器運行該應(yīng)用程序時需要將該應(yīng)用程序加載到該內(nèi)存上。

操作系統(tǒng)程序182中包含了可實現(xiàn)本發(fā)明實施例提供的內(nèi)存回收方法的計算機程序,從而使得處理器150讀取到該操作系統(tǒng)程序182并運行該操作系統(tǒng)后,該操作系統(tǒng)可具備本發(fā)明實施例提供的內(nèi)存回收功能。進一步的,該操作系統(tǒng)可以向上層的應(yīng)用開放該內(nèi)存回收功能的調(diào)用接口,處理器150從存儲器180中讀取應(yīng)用程序181并運行該應(yīng)用程序后,就可以通過該調(diào)用接口調(diào)用操作系統(tǒng)中提供的內(nèi)存回收功能,從而實現(xiàn)內(nèi)存回收。

終端100還可以包括輸入設(shè)備130,用于接收輸入的數(shù)字信息、字符信息或接觸式觸摸操作/非接觸式手勢,以及產(chǎn)生與終端100的用戶設(shè)置以及功能控制有關(guān)的信號輸入等。具體地,本發(fā)明實施例中,該輸入設(shè)備130可以包括觸控面板131。觸控面板131,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板131上或在觸控面板131的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動相應(yīng)的連接裝置??蛇x的,觸控面板131可包括觸摸檢測裝置和觸摸控制器兩個部分。其中,觸摸檢測裝置檢測用戶的觸摸方位,并檢測觸摸操作帶來的信號,將信號傳送給觸摸控制器;觸摸控制器從觸摸檢測裝置上接收觸摸信息,并將它轉(zhuǎn)換成觸點坐標,再送給該處理器150,并能接收處理器150發(fā)來的命令并加以執(zhí)行。例如,用戶在觸控面板131上用手指單擊某個應(yīng)用程序的圖標,觸摸檢測裝置檢測到此次單擊帶來的這個信號,然后將該信號傳送給觸摸控制器,觸摸控制器再將這個信號轉(zhuǎn)換成坐標發(fā)送給處理器150,處理器150根據(jù)該坐標和該信號的類型(單擊或雙擊)執(zhí)行對該某個應(yīng)用程序的相關(guān)處理操作,最后通過該顯示面板141顯示該某個應(yīng)用程序的界面。

觸控面板131可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實現(xiàn)。除了觸控面板131,輸入設(shè)備130還可以包括其他輸入設(shè)備132,其他輸入設(shè)備132可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開關(guān)按鍵等)、軌跡球、鼠標、操作桿等中的一種或多種。

終端100還可以包括顯示設(shè)備140,顯示設(shè)備140,包括顯示面板141,用于顯示由用戶輸入的信息或提供給用戶的信息以及終端100的各種菜單界面等,在本發(fā)明實施例中主要用于顯示各個應(yīng)用程序的相關(guān)界面。該顯示設(shè)備140可包括顯示面板141,可選的,可以采用LCD(Liquid Crystal Display,液晶顯示器)或OLED(Organic Light-Emitting Diode,有機發(fā)光二極管)等形式來配置顯示面板141。在其他一些實施例中,觸控面板131可覆蓋顯示面板141上,形成觸摸顯示屏。

除以上之外,終端100還可以包括用于給其他模塊供電的電源190以及用于拍攝照片或視頻的攝像頭160。終端100還可以包括一個或多個傳感器120,例如加速度傳感器、光傳感器等。終端100還可以包括無線射頻(Radio Frequency,RF)電路110,用于與無線網(wǎng)絡(luò)設(shè)備進行網(wǎng)絡(luò)通信,還可以包括WiFi模塊170,用于與其他設(shè)備進行WiFi通信。

下面的實施例將以回收后臺運行的進程占用的內(nèi)存為例介紹本發(fā)明實施例的內(nèi)存回收方法,該內(nèi)存回收方法可以實現(xiàn)在圖1所示的操作系統(tǒng)程序182中。

請參見圖2,圖2是本發(fā)明實施例提供的一種內(nèi)存回收方法的流程示意圖,該方法可以基于上述終端100來實現(xiàn),該方法包括但不限于如下步驟。

步驟S201:終端根據(jù)預(yù)設(shè)規(guī)則從后臺運行的各個應(yīng)用程序中確定目標應(yīng)用程序。

具體地,該目標應(yīng)用程序為需要被清理的應(yīng)用程序,該預(yù)設(shè)規(guī)則可以根據(jù)實際需要來設(shè)置,例如,終端根據(jù)預(yù)設(shè)規(guī)則從后臺運行的各個應(yīng)用程序中確定目標應(yīng)用程序是指:對比后臺運行的各個應(yīng)用程序占用的內(nèi)存大小,然后將占用內(nèi)存最大的應(yīng)用程序確定為需要被清理的應(yīng)用程序。再如,終端根據(jù)預(yù)設(shè)規(guī)則從后臺運行的各個應(yīng)用程序中確定目標應(yīng)用程序是指:統(tǒng)計后臺運行的各個應(yīng)用程序中連續(xù)未被使用的時間,然后將連續(xù)未被使用的時間超過預(yù)設(shè)的某個時間值的應(yīng)用程序確定為需要被清理的應(yīng)用程序。再如,終端根據(jù)預(yù)設(shè)規(guī)則從后臺運行的各個應(yīng)用程序中確定目標應(yīng)用程序是指:將后臺運行的各個應(yīng)用程序中通過冷啟動的方式啟動所需要的時間超過預(yù)設(shè)時間閾值的應(yīng)用程序確定為需要被清理的應(yīng)用程序(例如,將通過冷啟動的方式啟動耗時超過2.5秒的應(yīng)用程序確定為需要被清理的應(yīng)用程序),在實際應(yīng)用中,應(yīng)用程序的啟動方式包括冷啟動和熱啟動,冷啟動為:終端在后臺未運行待啟動的應(yīng)用程序的相關(guān)進程,因此啟動該應(yīng)用程序時首先創(chuàng)建和初始化Application類,再創(chuàng)建和初始化MainActivity類(包括一系列的測量、布局、繪制等),然后將該應(yīng)用程序的相關(guān)信息輸出給用戶。熱啟動為:終端在后臺運行了待啟動的應(yīng)用程序的相關(guān)進程,因此啟動該應(yīng)用程序時不需要創(chuàng)建和初始化Application類,而是直接創(chuàng)建和初始化MainActivity,然后將該應(yīng)用程序的相關(guān)信息輸出該用戶。該預(yù)設(shè)規(guī)則還存在其他可能性,此處不再一一舉例。

進一步地,該終端還可以在進入預(yù)設(shè)的空閑狀態(tài)時確定內(nèi)存的剩余量大于預(yù)設(shè)內(nèi)存閾值;再根據(jù)預(yù)設(shè)規(guī)則確定目標應(yīng)用程序。此處的空閑狀態(tài)是指用戶沒有操作該終端的狀態(tài),沒有操作該終端的表現(xiàn)形式包括終端的顯示屏熄屏、終端的顯示屏鎖屏、終端進入待機狀態(tài)等等。該內(nèi)存閾值為預(yù)先設(shè)置的用來表征內(nèi)存大小的值,另外,還可以判斷內(nèi)存的剩余量是否小于另一閾值,若小于該另一閾值則表明該內(nèi)存后續(xù)可能會不夠用,因此在該內(nèi)存的剩余量大于預(yù)設(shè)內(nèi)存閾值且小于該另一閾值時才根據(jù)預(yù)設(shè)規(guī)則確定后臺運行的各個應(yīng)用程序中需要被清理的應(yīng)用程序,例如,當該終端為手機時可以將該內(nèi)存閾值設(shè)置為600M,將該另一閾值設(shè)置為1G,那么當該手機的內(nèi)存大于600M且小于1G時可以根據(jù)預(yù)設(shè)規(guī)則確定后臺運行的各個應(yīng)用程序中需要被清理的應(yīng)用程序??梢岳斫獾氖?,在終端進入預(yù)設(shè)的空閑狀態(tài)時才執(zhí)行清理應(yīng)用程序的相關(guān)操作不會對用戶產(chǎn)生干擾;在內(nèi)存的剩余量大于該內(nèi)存閾值執(zhí)行清理應(yīng)用程序的相關(guān)操作可以保證清理的過程順暢。

步驟S202:該終端凍結(jié)目標應(yīng)用程序以使所述目標應(yīng)用程序的進程為不可中斷的睡眠狀態(tài),并回收內(nèi)存中該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)。

具體地,確定出的需要清理的應(yīng)用程序可稱之為目標應(yīng)用程序,凍結(jié)所采用的技術(shù)可以為linux系統(tǒng)中的進程凍結(jié)技術(shù)(freezing of tasks),凍結(jié)某個進程使該進程進入不可中斷的睡眠狀態(tài)的過程可以為:1、在內(nèi)核中設(shè)置該進程的TIF_SIGPENDING標志;2、該進程在用戶態(tài)檢測標志位,標志位設(shè)置了TIF_SIGPENDING標志,則將該進程設(shè)置為TASK_UNINTERRUPTIABLE狀態(tài)。本領(lǐng)域技術(shù)人員可以理解的,在基于linux內(nèi)核的衍生系統(tǒng),例如安卓系統(tǒng)中,也可以根據(jù)前述方式實現(xiàn)實對進程的凍結(jié),在具體的實現(xiàn)中,可能由于衍生系統(tǒng)的相關(guān)變化,設(shè)置不可中斷以及可中斷的睡眠狀態(tài)的標志位名稱可能發(fā)生變化,但這種名稱變化不影響實施本發(fā)明技術(shù)方案時的技術(shù)實質(zhì)。而在其他系統(tǒng)(如windows系統(tǒng))中也可以參照該linux中的思想對該目標應(yīng)用進行凍結(jié),使得該目標應(yīng)用的進程進入不可中斷的睡眠狀態(tài)。

目標應(yīng)用程序凍結(jié)后該目標應(yīng)用程序的進程只有在人為觸發(fā)時才會啟動,從而避免了內(nèi)存回收后該應(yīng)用程序的進程頻繁自動啟動而再次占用內(nèi)存??蛇x的,此處描述的目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)可以具體為該目標應(yīng)用程序正在運行的所有進程產(chǎn)生的數(shù)據(jù),在具體操作中可以先確定該目標應(yīng)用程序的用戶標識符(英文:user identifier,簡稱:UID),然后將當前正在運行的進程中包含的UID與該目標應(yīng)用程序的UID相同的進程確定為目標應(yīng)用程序正在運行的進程。需要說明的是,目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)可以包括該進程運行時產(chǎn)生的匿名內(nèi)存頁、文件內(nèi)存頁,其中,該匿名內(nèi)存頁包括該進程的程序占用的堆和棧的內(nèi)存,以及那些在文件系統(tǒng)里沒有相對應(yīng)的儲備文件的內(nèi)存;該文件內(nèi)存頁包括運行該進程來讀寫文件時該文件在緩沖區(qū)占用的內(nèi)存。在一種可選的方案中,回收內(nèi)存中所述目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù),可以為:將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到預(yù)設(shè)的存儲空間。具體地,凍結(jié)目標應(yīng)用程序后可以將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從該內(nèi)存遷移到該存儲空間,既為該內(nèi)存騰出了空間還保證了該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)不丟失,此處的存儲空間可以為一個存儲介質(zhì),或者一個存儲介質(zhì)中的一部分空間,例如,ZSwap中的交換分區(qū)。進一步地,該存儲空間存在相應(yīng)的使用壽命,例如,有些存儲空間要求3年以內(nèi)的損耗不得超過5%,要控制該存儲空間的損耗就必須控制該存儲空間寫入數(shù)據(jù)的總量,本發(fā)明實施例采用如下方式控制存儲空間寫入數(shù)據(jù)的總量。

該終端根據(jù)預(yù)先獲取的該存儲空間可寫入數(shù)據(jù)的總量以及該存儲空間已寫入數(shù)據(jù)的總量計算該存儲空間可寫入數(shù)據(jù)的剩余量。這樣一來,將內(nèi)存中該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到存儲空間,可以為:在該目標應(yīng)用程序運行時產(chǎn)生的數(shù)據(jù)不大于該可寫入數(shù)據(jù)的剩余量時,將該產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到存儲空間。更進一步地,還可以限定每天向該存儲空間寫入數(shù)據(jù)的量,也即是說,該終端根據(jù)預(yù)先獲取的該存儲空間可寫入數(shù)據(jù)的總量以及該存儲空間已寫入數(shù)據(jù)的總量計算該存儲空間可寫入數(shù)據(jù)的剩余量,具體為:根據(jù)預(yù)先獲取的該存儲空間的可寫入數(shù)據(jù)總量計算該存儲空間平均每天可寫入數(shù)據(jù)的總量;根據(jù)當天可寫入數(shù)據(jù)的總量和當天已寫入數(shù)據(jù)的總量計算該存儲空間當天可寫入數(shù)據(jù)的剩余量。例如,假設(shè)要滿足該存儲空間在3年的損耗不超過5%需要控制器該存儲空間寫入數(shù)據(jù)的總量不超過1095G,如果將該1095分攤到3年中的每1天的話,每天可寫入數(shù)據(jù)的總量為1095÷3÷365=1G。如果該終端當天已寫入數(shù)據(jù)的總量為0.8G,那么當天可寫入數(shù)據(jù)的剩余量為1-0.8=0.2G。

當計算出當天可寫入數(shù)據(jù)的剩余量后,該終端先判斷該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)是否不大于當天可寫入數(shù)據(jù)的剩余量,若不大于則將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)遷移到該存儲空間中,若不大于則不將該目標應(yīng)用程序的進程運行產(chǎn)生的數(shù)據(jù)遷移到該存儲空間中,而是將該目標應(yīng)用程序的進行運存時產(chǎn)生的數(shù)據(jù)從該內(nèi)存中清除??蛇x的,該存儲空間的文件可以使用tempfs文件系統(tǒng)重新掛載,以避免該存儲空間上的文件暴露給用戶,確保了存儲在該存儲空間上的數(shù)據(jù)的安全性。

步驟S203:該終端在接收到輸入的針對該目標應(yīng)用程序的觸發(fā)指令時,解除對該目標應(yīng)用程序的凍結(jié)以使所述目標應(yīng)用程序的進程為可中斷的睡眠狀態(tài),并在解除對所述目標應(yīng)用程序的凍結(jié)后運行該目標應(yīng)用程序。

具體地,用戶可以通過觸控虛擬按鍵、聲控、手勢控制等方式向該終端輸入針對目標應(yīng)用程序的觸發(fā)指令,相應(yīng)地,該終端接收該觸發(fā)指令,然后根據(jù)該觸發(fā)指令解除對該目標應(yīng)用程序的凍結(jié)并運行該目標應(yīng)用程序。解除對目標應(yīng)用程序的凍結(jié)具體為解除該目標應(yīng)用程序的已經(jīng)凍結(jié)的進程,使這些進程進入可中斷的睡眠狀態(tài)。

在linux系統(tǒng)中的,解除凍結(jié)的進程使之進入到可中斷的睡眠狀態(tài)的過程可以為:根據(jù)用戶輸入的觸發(fā)指令清除內(nèi)核中設(shè)置的該目標應(yīng)用程序的進程的TIF_SIGPENDING標志,并將該進程設(shè)置為TASK_INTERRUPTIBLE狀態(tài),用戶態(tài)進程接收被設(shè)置為TASK_INTERRUPTIBLE狀態(tài)時發(fā)送的喚醒事件,至此該目標應(yīng)用程序被喚醒,即解除了對目標應(yīng)用程序的凍結(jié)。在其他系統(tǒng)(如windows系統(tǒng))中也可以參照該linux中的思想對該目標應(yīng)用進行解凍,使得該目標應(yīng)用的進程進入可中斷的睡眠狀態(tài)。

在一種可選的方案中,當將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到該預(yù)設(shè)的存儲空間時,在解除對所述目標應(yīng)用程序的凍結(jié)后運行所述目標應(yīng)用程序,可以為:將該產(chǎn)生的數(shù)據(jù)從該存儲空間加載到該內(nèi)存以啟動該目標應(yīng)用程序。可選的,可以在解除對目標應(yīng)用程序的凍結(jié)的同時就開始將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從該存儲空間加載到該內(nèi)存,而不是解除對該目標應(yīng)用程序的凍結(jié)后,從該內(nèi)存中讀取該目標應(yīng)用程序的進程發(fā)現(xiàn)缺頁時才將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從該存儲空間加載到該內(nèi)存??蛇x的,還可以設(shè)置進程因缺頁產(chǎn)生的讀寫操作的優(yōu)先級高于該進程的其他讀寫操作的優(yōu)先級,以便同時有多個讀寫操作需要處理時優(yōu)先處理因缺頁產(chǎn)生的讀寫操作,這樣可以較順暢地啟動該目標應(yīng)用程序。

需要說明的是,將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到磁盤的過程中時,可以以進程為單位對每個進程運行時產(chǎn)生的匿名內(nèi)存頁分別進行壓縮,然后將多個匿名內(nèi)存頁壓縮后的數(shù)據(jù)組成新的頁,再將該新的頁遷移到該存儲空間上,后續(xù)要再次運行該目標應(yīng)用程序時可以再將該新的頁遷移到該內(nèi)存上,并在該內(nèi)存上對該新的頁解壓以還原出上述多個匿名內(nèi)存頁,然后讀取該多個匿名內(nèi)存頁來運行該目標應(yīng)用程序。舉例來說,頁的單位通常為4K,如果匿名內(nèi)存頁的壓縮率為50%,那么,每個匿名內(nèi)存頁壓縮后大小為2K,兩個匿名內(nèi)存頁壓縮后的大小為2K+2K=4K,因此可以將兩個匿名內(nèi)存頁壓縮后的數(shù)據(jù)組成一個新的頁,并對該新的頁的結(jié)構(gòu)進行標記以區(qū)分該兩個匿名內(nèi)存頁各自對應(yīng)該新的頁中的哪部分,后續(xù)對該新的頁解壓時也可以根據(jù)標記的信息還原出這兩個匿名內(nèi)存頁。可以理解的是,對該匿名內(nèi)存頁壓縮后在遷移到該存儲空間可以減少該存儲空間的讀寫開銷,從而提高該存儲空間的使用壽命。

需要說明的是,回收內(nèi)存時可以將較短時間未使用的進程的匿名內(nèi)存頁存放到緩沖區(qū),將較長時間未使用的進程的匿名內(nèi)存頁遷移到該存儲空間上,由于該終端運行該較短時間未使用的進程的概率較大,因此這樣做可以很大概率地提高該終端讀取匿名內(nèi)存頁的效率。

在圖2所描述的方法中,終端在回收目標應(yīng)用程序的進行時凍結(jié)該目標應(yīng)用程序,使得該終端在接收到用戶輸入的針對該目標應(yīng)用程序的觸發(fā)指令時才解除對該目標應(yīng)用程序的凍結(jié),避免了該目標應(yīng)用程序的進程自動啟動而再次占內(nèi)存,提升了內(nèi)存回收的效果。

以上主要介紹了本發(fā)明實施例提供的方法的具體流程,下面結(jié)合圖3以Android操作系統(tǒng)為例,介紹本發(fā)明實施例提供的方法的實現(xiàn)位置和運行時狀態(tài),更具體的方法流程可參考前述實施例所述。

請參閱圖3,為本發(fā)明實施例提供的終端300的結(jié)構(gòu)示意圖。該終端300包括應(yīng)用層310和操作系統(tǒng)層350,該操作系統(tǒng)可以為Android操作系統(tǒng)。操作系統(tǒng)層350又分為框架層320、核心庫層330和驅(qū)動層340。其中,圖3中的操作系統(tǒng)層350可以認為是圖1中操作系統(tǒng)182的一種具體實現(xiàn),圖3中的應(yīng)用層310可以認為是圖1中應(yīng)用程序181的一種具體實現(xiàn)。驅(qū)動層340包括CPU驅(qū)動341、GPU驅(qū)動342以及顯示控制器驅(qū)動343等。核心庫層330是操作系統(tǒng)的核心部分,包括輸入/輸出服務(wù)331、核心服務(wù)332、數(shù)據(jù)壓縮服務(wù)333、數(shù)據(jù)解壓服務(wù)334、內(nèi)存回收服務(wù)335等,其中,數(shù)據(jù)壓縮服務(wù)333用于對回收內(nèi)存時回收的數(shù)據(jù)進行壓縮,數(shù)據(jù)解壓服務(wù)334用于對從存儲空間讀取的數(shù)據(jù)進行解壓,然互加載到內(nèi)存中運行,內(nèi)存回收服務(wù)335用于回收應(yīng)用程序的進行運行時產(chǎn)生的數(shù)據(jù)??蚣軐?20可包括決策服務(wù)324、系統(tǒng)服務(wù)(System service)321、網(wǎng)頁服務(wù)(Web Service)322和用戶服務(wù)(Customer Service)323等;決策服務(wù)324中,可包括事件處理決策、應(yīng)用程序決策、壽命識別決策、內(nèi)存回收決策等,其中,事件處理決策用于定義各種事件的作用,應(yīng)用程序決策用于確定需要被清理的應(yīng)用程序(例如,確定通過冷啟動的方式啟動耗時超過2.5秒的應(yīng)用程序為需要被清理的應(yīng)用程序),壽命識別決策用于獲取存儲空間的使用壽命,內(nèi)存回收決策定義了會收內(nèi)存的方式(例如,以應(yīng)用程序為單位回收內(nèi)存)。應(yīng)用層310可包括圖庫311、媒體播放器(Media Player)312以及瀏覽器(Browser)313等。

另外,在驅(qū)動層340之下,該終端300還包括硬件層360。該終端300的硬件層可以包括中央處理器(英文:Central Processing Unit,簡稱:CPU)361和圖形處理器(英文:Graphic Processing Unit,簡稱:GPU)362(相當于圖1中的處理器150的一種具體實現(xiàn)),還可以包括存儲器363(相當于圖1中的存儲器180),包括內(nèi)存和外存,還可以包括輸入設(shè)備364(相當于圖1中的輸入設(shè)備132)、顯示設(shè)備365(相當于圖1中的顯示設(shè)備140),例如液晶顯示器(Liquid Crystal Display,LCD)、全息成像(Holographic)、投影(Projector)等,還可以包括一個或多個傳感器366(相當于圖1中的傳感器120)。當然除此之外,硬件層360還可以包括圖1中示出的電源、攝像頭、RF電路和WiFi模塊,還可以包括圖1中也沒有示出的其他硬件模塊,例如內(nèi)存控制器和顯示控制器等。

上述詳細闡述了本發(fā)明實施例的方法,為了便于更好地實施本發(fā)明實施例的上述方案,相應(yīng)地,下面提供了本發(fā)明實施例的裝置。

請參見圖4,圖4是本發(fā)明實施例提供的一種終端40的結(jié)構(gòu)示意圖,該終端40可以包括確定單元401、回收單元402和解除單元403,其中,確定單元401用于根據(jù)預(yù)設(shè)規(guī)則從后臺運行的各個應(yīng)用程序中確定目標應(yīng)用程序,該目標應(yīng)用程序是需要被清理的應(yīng)用程序?;厥諉卧?02用于凍結(jié)目標應(yīng)用程序以使所述目標應(yīng)用程序的進程為不可中斷的睡眠狀態(tài),并回收內(nèi)存中該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)。解除單元403用于在接收到輸入的針對該目標應(yīng)用程序的觸發(fā)指令時,解除對該目標應(yīng)用程序的凍結(jié)以使所述目標應(yīng)用程序的進程為可中斷的睡眠狀態(tài),并在解除對所述目標應(yīng)用程序的凍結(jié)后運行該目標應(yīng)用程序。

通過運行上述單元,終端在回收目標應(yīng)用程序的進行時凍結(jié)該目標應(yīng)用程序,使得該終端在接收到用戶輸入的針對該目標應(yīng)用程序的觸發(fā)指令時才解除對該目標應(yīng)用程序的凍結(jié),避免了該目標應(yīng)用程序的進程自動啟動而再次占內(nèi)存,提升了內(nèi)存回收的效果。

在一種可選的方案中,該確定單元具體用于確定內(nèi)存的剩余量大于預(yù)設(shè)內(nèi)存閾值,根據(jù)預(yù)設(shè)規(guī)則確定目標應(yīng)用程序。

可以理解的是,在終端進入預(yù)設(shè)的空閑狀態(tài)時才執(zhí)行清理應(yīng)用程序的相關(guān)操作不會對用戶產(chǎn)生干擾;在內(nèi)存的剩余量大于該內(nèi)存閾值執(zhí)行清理應(yīng)用程序的相關(guān)操作可以保證清理的過程順暢。

在又一種可選的方案中,該回收單元402具體用于將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到預(yù)設(shè)的存儲空間;該解除單元403在解除對所述目標應(yīng)用程序的凍結(jié)后運行所述目標應(yīng)用程序具體為:在解除對所述目標應(yīng)用程序的凍結(jié)后將該產(chǎn)生的數(shù)據(jù)從該存儲空間加載到該內(nèi)存以啟動該目標應(yīng)用程序。

可以理解的是,將進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存中遷移到存儲空間不僅為內(nèi)存騰出了空間,還保證了該部分數(shù)據(jù)不丟失,也即是說,通過這種方式不但保證了內(nèi)存的順利回收,還保證了用戶下次使用該目標應(yīng)用程序時可以直接進入到用戶上次退出該目標應(yīng)用時的界面,提升了用戶體驗。

在又一種可選的方案中,該存儲空間包括用于存儲各個進程運行時產(chǎn)生的數(shù)據(jù)的交換分區(qū),該終端40還包括計算單元,該計算單元用于確定該存儲空間可寫入數(shù)據(jù)的剩余量;該回收單元將該目標應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到預(yù)設(shè)的存儲空間具體為:在該目標應(yīng)用程序運行時產(chǎn)生的數(shù)據(jù)不大于該可寫入數(shù)據(jù)的剩余量時,將該產(chǎn)生的數(shù)據(jù)從內(nèi)存遷移到預(yù)設(shè)存儲空間。

在又一種可選的方案中,所述計算單元具體用于根據(jù)預(yù)先獲取的所述存儲空間的可寫入數(shù)據(jù)總量計算所述存儲空間平均每天可寫入數(shù)據(jù)的總量;根據(jù)當天可寫入數(shù)據(jù)的總量和當天已寫入數(shù)據(jù)的總量計算所述存儲空間當天可寫入數(shù)據(jù)的剩余量。

可以理解的是,控制存儲空間每天寫入數(shù)據(jù)的總量可以保證該存儲空間在預(yù)計的壽命周期內(nèi)不會因為寫入次數(shù)較多而壞掉。

在又一種可選的方案中,該目標應(yīng)用程序為通過冷啟動的啟動方式啟動所需要的時間超過預(yù)設(shè)時間閾值的應(yīng)用程序。

可以理解的是,通過冷啟動的方式啟動耗時較長的應(yīng)用程序通常占用的內(nèi)存比較大,選擇這樣的應(yīng)用程序來清理可以釋放較多內(nèi)存;另外,這樣的應(yīng)用程序的進程運行時產(chǎn)生的數(shù)據(jù)先遷移到存儲空間,后面重啟目標應(yīng)用程序時再遷移回內(nèi)存,能夠很明顯的縮短重啟該目標應(yīng)用程序的時間。

在又一種可選的方案中,該回收單元402具體用于將目標應(yīng)用程序的進程設(shè)置為TASK_UNINTERRUPTIABLE狀態(tài);該解除單元403具體用于將該目標應(yīng)用程序的進程設(shè)置為TASK_INTERRUPTIBLE狀態(tài)。

在本發(fā)明實施例中各個單元的具體實現(xiàn)還可以對應(yīng)參照圖2所示的方法實施例的相應(yīng)描述。

在圖4所描述的終端40中,終端40在回收目標應(yīng)用程序的進行時凍結(jié)該目標應(yīng)用程序,使得該終端在接收到用戶輸入的針對該目標應(yīng)用程序的觸發(fā)指令時才解除對該目標應(yīng)用程序的凍結(jié),避免了該目標應(yīng)用程序的進程自動啟動而再次占內(nèi)存,提升了內(nèi)存回收的效果。

綜上所述,通過實施本發(fā)明實施例,終端在回收目標應(yīng)用程序的進行時凍結(jié)該目標應(yīng)用程序,使得該終端在接收到用戶輸入的針對該目標應(yīng)用程序的觸發(fā)指令時才解除對該目標應(yīng)用程序的凍結(jié),避免了該目標應(yīng)用程序的進程自動啟動而再次占內(nèi)存,提升了內(nèi)存回收的效果。

本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關(guān)的硬件來完成,所述的程序可存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。而前述的存儲介質(zhì)包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

以上實施例僅揭露了本發(fā)明中較佳實施例,不能以此來限定本發(fā)明之權(quán)利范圍,本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權(quán)利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。

當前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
通道| 宣威市| 普安县| 蕲春县| 合川市| 博白县| 漠河县| 九寨沟县| 建始县| 南乐县| 宁化县| 临潭县| 丹巴县| 大港区| 晋宁县| 湟源县| 明溪县| 九台市| 盘山县| 嵊州市| 会宁县| 离岛区| 周口市| 民勤县| 彭山县| 清水河县| 华容县| 隆回县| 增城市| 苍梧县| 四川省| 原平市| 哈尔滨市| 岳阳县| 石城县| 舟山市| 神木县| 德江县| 张北县| 三门县| 黑山县|