本發(fā)明涉及移動(dòng)終端技術(shù)領(lǐng)域,尤其涉及一種基于信號(hào)的進(jìn)程凍結(jié)和解凍裝置及方法。
背景技術(shù):
Android手機(jī)可以運(yùn)行任何基于其API開發(fā)的應(yīng)用(APK),這種開放性的自由度很大:一個(gè)應(yīng)用可以在后臺(tái)根據(jù)它的設(shè)計(jì)者的意愿運(yùn)行—進(jìn)行廣告推送、收集用戶狀態(tài)等,但是這些行為不一定是用戶想要的,反而還會(huì)占用CPU、增加功耗、影響用戶體驗(yàn)。進(jìn)程凍結(jié)是一種較好的后臺(tái)應(yīng)用管理方式。它識(shí)別出對(duì)用戶而言沒有必要運(yùn)行的進(jìn)程,將它掛起,禁止其運(yùn)行,等到用戶真正需要這個(gè)進(jìn)程的時(shí)候再解凍,恢復(fù)運(yùn)行。
進(jìn)程凍結(jié)的方式有多種,操作系統(tǒng)內(nèi)核kernel本身支持一種用信號(hào)控制進(jìn)程停止和恢復(fù)的方式,可以做到進(jìn)程凍結(jié)的效果。但這種方式是以進(jìn)程為基本單位來凍結(jié),進(jìn)程中所有線程,包括用于對(duì)外通訊的Binder線程在內(nèi),都會(huì)被凍結(jié),其中,binder線程是一種類似C/S的結(jié)構(gòu),在一次通訊中,發(fā)起通訊的一端是客戶端;處理通訊請求的一端則是服務(wù)器端。服務(wù)器對(duì)每一個(gè)來自客戶端的通訊請求都會(huì)分配一個(gè)binder線程來處理;在進(jìn)程被凍結(jié)時(shí),如果不進(jìn)行特殊處理,進(jìn)程間的Binder通訊被阻斷會(huì)導(dǎo)致設(shè)備無響應(yīng),或軟件崩潰。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提出一種基于信號(hào)的進(jìn)程凍結(jié)和解凍裝置及方法,通過信號(hào)控制系統(tǒng)內(nèi)核來將應(yīng)用進(jìn)程中的所有線程全部凍結(jié),當(dāng)有其他應(yīng)用進(jìn)程發(fā)來通訊請求時(shí),通過其他應(yīng)用進(jìn)程解凍該應(yīng)用進(jìn)程,在達(dá)到了凍結(jié)效果最大化的同時(shí),實(shí)現(xiàn)了應(yīng)用進(jìn)程的及時(shí)解凍。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種基于信號(hào)的進(jìn)程凍結(jié)和解凍裝置,包括:
狀態(tài)采集模塊,用于通過凍結(jié)控制中心采集第一應(yīng)用進(jìn)程的運(yùn)行狀態(tài);
判斷凍結(jié)模塊,用于判斷所述第一應(yīng)用進(jìn)程是否滿足預(yù)設(shè)的凍結(jié)條件,若是,則通過系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程;
進(jìn)程號(hào)獲取模塊,用于第二應(yīng)用進(jìn)程向所述第一應(yīng)用進(jìn)程發(fā)送通訊請求時(shí),第二應(yīng)用進(jìn)程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并把所述進(jìn)程號(hào)發(fā)送至系統(tǒng)內(nèi)核;
解凍模塊,用于系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程。
可選地,還包括:
Binder通訊模塊,用于第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程建立binder通訊;第二應(yīng)用進(jìn)程分配一個(gè)binder線程與所述第一應(yīng)用進(jìn)程進(jìn)行通訊連接,并將所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)保存至所述binder線程中。
可選地,所述進(jìn)程號(hào)獲取模塊包括:
第一獲取單元,用于通過查詢所述第二應(yīng)用進(jìn)程中與所述第一應(yīng)用進(jìn)程進(jìn)行通訊的binder線程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
可選地,所述進(jìn)程號(hào)獲取模塊還包括:
第二獲取單元,用于當(dāng)所述第二應(yīng)用進(jìn)程和所述第一應(yīng)用進(jìn)程首次建立binder通訊時(shí),通過系統(tǒng)框架獲取所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
可選地,所述通過系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程具體為:
第一應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送凍結(jié)信號(hào),系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程;
相應(yīng)地,所述系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程具體為:
第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào),所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程。
作為本發(fā)明的另一個(gè)方面,提供的一種基于信號(hào)的進(jìn)程凍結(jié)和解凍方法,包括:
凍結(jié)控制中心采集第一應(yīng)用進(jìn)程的運(yùn)行狀態(tài);
判斷所述第一應(yīng)用進(jìn)程是否滿足預(yù)設(shè)的凍結(jié)條件,若是,則通過系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程;
第二應(yīng)用進(jìn)程向所述第一應(yīng)用進(jìn)程發(fā)送通訊請求時(shí),第二應(yīng)用進(jìn)程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并把所述進(jìn)程號(hào)發(fā)送至系統(tǒng)內(nèi)核;
系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程。
可選地,所述第二應(yīng)用進(jìn)程向所述第一應(yīng)用進(jìn)程發(fā)送通訊請求時(shí),第二應(yīng)用進(jìn)程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并把所述進(jìn)程號(hào)發(fā)送至系統(tǒng)內(nèi)核之前還包括:
第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程建立binder通訊;
第二應(yīng)用進(jìn)程分配一個(gè)binder線程與所述第一應(yīng)用進(jìn)程進(jìn)行通訊連接,并將所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)保存至所述binder線程中。
可選地,所述第二應(yīng)用進(jìn)程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)包括:
通過查詢所述第二應(yīng)用進(jìn)程中與所述第一應(yīng)用進(jìn)程進(jìn)行通訊的binder線程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
可選地,所述第二應(yīng)用進(jìn)程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)還包括:
當(dāng)所述第二應(yīng)用進(jìn)程和所述第一應(yīng)用進(jìn)程首次建立binder通訊時(shí),通過系統(tǒng)框架獲取所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
可選地,所述通過系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程具體為:
第一應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送凍結(jié)信號(hào),系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程;
相應(yīng)地,所述系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程具體為:
第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào),所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程。
本發(fā)明提出的一種基于信號(hào)的進(jìn)程凍結(jié)和解凍裝置及方法,該裝置包括:狀態(tài)采集模塊,用于通過凍結(jié)控制中心采集第一應(yīng)用進(jìn)程的運(yùn)行狀態(tài);判斷凍結(jié)模塊,用于判斷所述第一應(yīng)用進(jìn)程是否滿足預(yù)設(shè)的凍結(jié)條件,若是,則通過系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程;進(jìn)程號(hào)獲取模塊,用于第二應(yīng)用進(jìn)程向所述第一應(yīng)用進(jìn)程發(fā)送通訊請求時(shí),第二應(yīng)用進(jìn)程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并把所述進(jìn)程號(hào)發(fā)送至系統(tǒng)內(nèi)核;解凍模塊,用于系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程,通過信號(hào)控制系統(tǒng)內(nèi)核來將應(yīng)用進(jìn)程中的所有線程全部凍結(jié),當(dāng)有其他應(yīng)用進(jìn)程發(fā)來通訊請求時(shí),通過其他應(yīng)用進(jìn)程解凍該應(yīng)用進(jìn)程,在達(dá)到了凍結(jié)效果最大化的同時(shí),實(shí)現(xiàn)了應(yīng)用進(jìn)程的及時(shí)解凍。
附圖說明
圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端的硬件結(jié)構(gòu)示意圖;
圖2為如圖1所示的移動(dòng)終端的無線通信系統(tǒng)示意圖;
圖3為本發(fā)明實(shí)施例一提供的一種基于信號(hào)的進(jìn)程凍結(jié)和解凍裝置示范性結(jié)構(gòu)框圖;
圖4為本發(fā)明實(shí)施例一提供的第一應(yīng)用進(jìn)程凍結(jié)流程示意圖;
圖5為本發(fā)明實(shí)施例一提供的第一應(yīng)用進(jìn)程解凍流程示意圖;
圖6為本發(fā)明實(shí)施例二提供的一種基于信號(hào)的進(jìn)程凍結(jié)和解凍裝置示范性結(jié)構(gòu)框圖;
圖7為本發(fā)明實(shí)施例三提供的一種基于信號(hào)的進(jìn)程凍結(jié)和解凍方法流程圖;
圖8為本發(fā)明實(shí)施例四提供的一種基于信號(hào)的進(jìn)程凍結(jié)和解凍方法流程圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
現(xiàn)在將參考附圖描述實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端。在后續(xù)的描述中,使用用于表示元件的諸如“模塊”、“部件”或“單元”的后綴僅為了有利于本發(fā)明的說明,其本身并沒有特定的意義。因此,"模塊"與"部件"可以混合地使用。
移動(dòng)終端可以以各種形式來實(shí)施。例如,本發(fā)明中描述的終端可以包括諸如移動(dòng)電話、智能電話、筆記本電腦、數(shù)字廣播接收器、PDA(個(gè)人數(shù)字助理)、PAD(平板電腦)、PMP(便攜式多媒體播放器)、導(dǎo)航裝置等等的移動(dòng)終端以及諸如數(shù)字TV、臺(tái)式計(jì)算機(jī)等等的固定終端。下面,假設(shè)終端是移動(dòng)終端。然而,本領(lǐng)域技術(shù)人員將理解的是,除了特別用于移動(dòng)目的的元件之外,根據(jù)本發(fā)明的實(shí)施方式的構(gòu)造也能夠應(yīng)用于固定類型的終端。
圖1為實(shí)現(xiàn)本發(fā)明各個(gè)實(shí)施例的移動(dòng)終端的硬件結(jié)構(gòu)示意。
移動(dòng)終端100可以包括無線通信單元110、用戶輸入單元130、輸出單元150、存儲(chǔ)器160、接口單元170、控制器180和電源單元190等等。圖1示出了具有各種組件的移動(dòng)終端,但是應(yīng)理解的是,并不要求實(shí)施所有示出的組件??梢蕴娲貙?shí)施更多或更少的組件。將在下面詳細(xì)描述移動(dòng)終端的元件。
無線通信單元110通常包括一個(gè)或多個(gè)組件,其允許移動(dòng)終端100與無線通信系統(tǒng)或網(wǎng)絡(luò)之間的無線電通信。例如,無線通信單元可以包括廣播接收模塊111、移動(dòng)通信模塊112、無線互聯(lián)網(wǎng)模塊113、短程通信模塊114和位置信息模塊115中的至少一個(gè)。
廣播接收模塊111經(jīng)由廣播信道從外部廣播管理服務(wù)器接收廣播信號(hào)和/或廣播相關(guān)信息。廣播信道可以包括衛(wèi)星信道和/或地面信道。廣播管理服務(wù)器可以是生成并發(fā)送廣播信號(hào)和/或廣播相關(guān)信息的服務(wù)器或者接收之前生成的廣播信號(hào)和/或廣播相關(guān)信息并且將其發(fā)送給終端的服務(wù)器。廣播信號(hào)可以包括TV廣播信號(hào)、無線電廣播信號(hào)、數(shù)據(jù)廣播信號(hào)等等。而且,廣播信號(hào)可以進(jìn)一步包括與TV或無線電廣播信號(hào)組合的廣播信號(hào)。廣播相關(guān)信息也可以經(jīng)由移動(dòng)通信網(wǎng)絡(luò)提供,并且在該情況下,廣播相關(guān)信息可以由移動(dòng)通信模塊112來接收。廣播信號(hào)可以以各種形式存在,例如,其可以以數(shù)字多媒體廣播(DMB)的電子節(jié)目指南(EPG)、數(shù)字視頻廣播手持(DVB-H)的電子服務(wù)指南(ESG)等等的形式而存在。廣播接收模塊111可以通過使用各種類型的廣播系統(tǒng)接收信號(hào)廣播。特別地,廣播接收模塊111可以通過使用諸如多媒體廣播-地面(DMB-T)、數(shù)字多媒體廣播-衛(wèi)星(DMB-S)、數(shù)字視頻廣播-手持(DVB-H),前向鏈路媒體(MediaFLO@)的數(shù)據(jù)廣播系統(tǒng)、地面數(shù)字廣播綜合服務(wù)(ISDB-T)等等的數(shù)字廣播系統(tǒng)接收數(shù)字廣播。廣播接收模塊111可以被構(gòu)造為適合提供廣播信號(hào)的各種廣播系統(tǒng)以及上述數(shù)字廣播系統(tǒng)。經(jīng)由廣播接收模塊111接收的廣播信號(hào)和/或廣播相關(guān)信息可以存儲(chǔ)在存儲(chǔ)器160(或者其它類型的存儲(chǔ)介質(zhì))中。
移動(dòng)通信模塊112將無線電信號(hào)發(fā)送到基站(例如,接入點(diǎn)、節(jié)點(diǎn)B等等)、外部終端以及服務(wù)器中的至少一個(gè)和/或從其接收無線電信號(hào)。這樣的無線電信號(hào)可以包括語音通話信號(hào)、視頻通話信號(hào)、或者根據(jù)文本和/或多媒體消息發(fā)送和/或接收的各種類型的數(shù)據(jù)。
無線互聯(lián)網(wǎng)模塊113支持移動(dòng)終端的無線互聯(lián)網(wǎng)接入。該模塊可以內(nèi)部或外部地耦接到終端。該模塊所涉及的無線互聯(lián)網(wǎng)接入技術(shù)可以包括WLAN(無線LAN)(Wi-Fi)、Wibro(無線寬帶)、Wimax(全球微波互聯(lián)接入)、HSDPA(高速下行鏈路分組接入)等等。
短程通信模塊114是用于支持短程通信的模塊。短程通信技術(shù)的一些示例包括藍(lán)牙TM、射頻識(shí)別(RFID)、紅外數(shù)據(jù)協(xié)會(huì)(IrDA)、超寬帶(UWB)、紫蜂TM等等。
位置信息模塊115是用于檢查或獲取移動(dòng)終端的位置信息的模塊。位置信息模塊的典型示例是GPS(全球定位系統(tǒng))。根據(jù)當(dāng)前的技術(shù),GPS模塊115計(jì)算來自三個(gè)或更多衛(wèi)星的距離信息和準(zhǔn)確的時(shí)間信息并且對(duì)于計(jì)算的信息應(yīng)用三角測量法,從而根據(jù)經(jīng)度、緯度和高度準(zhǔn)確地計(jì)算三維當(dāng)前位置信息。當(dāng)前,用于計(jì)算位置和時(shí)間信息的方法使用三顆衛(wèi)星并且通過使用另外的一顆衛(wèi)星校正計(jì)算出的位置和時(shí)間信息的誤差。此外,GPS模塊115能夠通過實(shí)時(shí)地連續(xù)計(jì)算當(dāng)前位置信息來計(jì)算速度信息。
用戶輸入單元130可以根據(jù)用戶輸入的命令生成鍵輸入數(shù)據(jù)以控制移動(dòng)終端的各種操作。用戶輸入單元130允許用戶輸入各種類型的信息,并且可以包括鍵盤、鍋?zhàn)衅?、觸摸板(例如,檢測由于被接觸而導(dǎo)致的電阻、壓力、電容等等的變化的觸敏組件)、滾輪、搖桿等等。特別地,當(dāng)觸摸板以層的形式疊加在顯示模塊151上時(shí),可以形成觸摸屏。
接口單元170用作至少一個(gè)外部裝置與移動(dòng)終端100連接可以通過的接口。例如,外部裝置可以包括有線或無線頭戴式耳機(jī)端口、外部電源(或電池充電器)端口、有線或無線數(shù)據(jù)端口、存儲(chǔ)卡端口、用于連接具有識(shí)別模塊的裝置的端口、音頻輸入/輸出(I/O)端口、視頻I/O端口、耳機(jī)端口等等。識(shí)別模塊可以是存儲(chǔ)用于驗(yàn)證用戶使用移動(dòng)終端100的各種信息并且可以包括用戶識(shí)別模塊(UIM)、客戶識(shí)別模塊(SIM)、通用客戶識(shí)別模塊(USIM)等等。另外,具有識(shí)別模塊的裝置(下面稱為"識(shí)別裝置")可以采取智能卡的形式,因此,識(shí)別裝置可以經(jīng)由端口或其它連接裝置與移動(dòng)終端100連接。接口單元170可以用于接收來自外部裝置的輸入(例如,數(shù)據(jù)信息、電力等等)并且將接收到的輸入傳輸?shù)揭苿?dòng)終端100內(nèi)的一個(gè)或多個(gè)元件或者可以用于在移動(dòng)終端和外部裝置之間傳輸數(shù)據(jù)。
另外,當(dāng)移動(dòng)終端100與外部底座連接時(shí),接口單元170可以用作允許通過其將電力從底座提供到移動(dòng)終端100的路徑或者可以用作允許從底座輸入的各種命令信號(hào)通過其傳輸?shù)揭苿?dòng)終端的路徑。從底座輸入的各種命令信號(hào)或電力可以用作用于識(shí)別移動(dòng)終端是否準(zhǔn)確地安裝在底座上的信號(hào)。輸出單元150被構(gòu)造為以視覺、音頻和/或觸覺方式提供輸出信號(hào)(例如,音頻信號(hào)、視頻信號(hào)、警報(bào)信號(hào)、振動(dòng)信號(hào)等等)。
輸出單元150可以包括音頻輸出模塊152等等。
音頻輸出模塊152可以在移動(dòng)終端處于呼叫信號(hào)接收模式、通話模式、記錄模式、語音識(shí)別模式、廣播接收模式等等模式下時(shí),將無線通信單元110接收的或者在存儲(chǔ)器160中存儲(chǔ)的音頻數(shù)據(jù)轉(zhuǎn)換音頻信號(hào)并且輸出為聲音。而且,音頻輸出模塊152可以提供與移動(dòng)終端100執(zhí)行的特定功能相關(guān)的音頻輸出(例如,呼叫信號(hào)接收聲音、消息接收聲音等等)。音頻輸出模塊152可以包括揚(yáng)聲器、蜂鳴器等等。
存儲(chǔ)器160可以存儲(chǔ)由控制器180執(zhí)行的處理和控制操作的軟件程序等等,或者可以暫時(shí)地存儲(chǔ)己經(jīng)輸出或?qū)⒁敵龅臄?shù)據(jù)(例如,電話簿、消息、靜態(tài)圖像、視頻等等)。而且,存儲(chǔ)器160可以存儲(chǔ)關(guān)于當(dāng)觸摸施加到觸摸屏?xí)r輸出的各種方式的振動(dòng)和音頻信號(hào)的數(shù)據(jù)。
存儲(chǔ)器160可以包括至少一種類型的存儲(chǔ)介質(zhì),所述存儲(chǔ)介質(zhì)包括閃存、硬盤、多媒體卡、卡型存儲(chǔ)器(例如,SD或DX存儲(chǔ)器等等)、隨機(jī)訪問存儲(chǔ)器(RAM)、靜態(tài)隨機(jī)訪問存儲(chǔ)器(SRAM)、只讀存儲(chǔ)器(ROM)、電可擦除可編程只讀存儲(chǔ)器(EEPROM)、可編程只讀存儲(chǔ)器(PROM)、磁性存儲(chǔ)器、磁盤、光盤等等。而且,移動(dòng)終端100可以與通過網(wǎng)絡(luò)連接執(zhí)行存儲(chǔ)器160的存儲(chǔ)功能的網(wǎng)絡(luò)存儲(chǔ)裝置協(xié)作。
控制器180通常控制移動(dòng)終端的總體操作。例如,控制器180執(zhí)行與語音通話、數(shù)據(jù)通信、視頻通話等等相關(guān)的控制和處理。另外,控制器180可以包括用于再現(xiàn)(或回放)多媒體數(shù)據(jù)的多媒體模塊1810,多媒體模塊1810可以構(gòu)造在控制器180內(nèi),或者可以構(gòu)造為與控制器180分離。控制器180可以執(zhí)行模式識(shí)別處理,以將在觸摸屏上執(zhí)行的手寫輸入或者圖片繪制輸入識(shí)別為字符或圖像。
電源單元190在控制器180的控制下接收外部電力或內(nèi)部電力并且提供操作各元件和組件所需的適當(dāng)?shù)碾娏Α?/p>
這里描述的各種實(shí)施方式可以以使用例如計(jì)算機(jī)軟件、硬件或其任何組合的計(jì)算機(jī)可讀介質(zhì)來實(shí)施。對(duì)于硬件實(shí)施,這里描述的實(shí)施方式可以通過使用特定用途集成電路(ASIC)、數(shù)字信號(hào)處理器(DSP)、數(shù)字信號(hào)處理裝置(DSPD)、可編程邏輯裝置(PLD)、現(xiàn)場可編程門陣列(FPGA)、處理器、控制器、微控制器、微處理器、被設(shè)計(jì)為執(zhí)行這里描述的功能的電子單元中的至少一種來實(shí)施,在一些情況下,這樣的實(shí)施方式可以在控制器180中實(shí)施。對(duì)于軟件實(shí)施,諸如過程或功能的實(shí)施方式可以與允許執(zhí)行至少一種功能或操作的單獨(dú)的軟件模塊來實(shí)施。軟件代碼可以由以任何適當(dāng)?shù)木幊陶Z言編寫的軟件應(yīng)用程序(或程序)來實(shí)施,軟件代碼可以存儲(chǔ)在存儲(chǔ)器160中并且由控制器180執(zhí)行。
至此,己經(jīng)按照其功能描述了移動(dòng)終端。下面,為了簡要起見,將描述諸如折疊型、直板型、擺動(dòng)型、滑動(dòng)型移動(dòng)終端等等的各種類型的移動(dòng)終端中的滑動(dòng)型移動(dòng)終端作為示例。因此,本發(fā)明能夠應(yīng)用于任何類型的移動(dòng)終端,并且不限于滑動(dòng)型移動(dòng)終端。
如圖1中所示的移動(dòng)終端100可以被構(gòu)造為利用經(jīng)由幀或分組發(fā)送數(shù)據(jù)的諸如有線和無線通信系統(tǒng)以及基于衛(wèi)星的通信系統(tǒng)來操作。
現(xiàn)在將參考圖2描述其中根據(jù)本發(fā)明的移動(dòng)終端能夠操作的通信系統(tǒng)。
這樣的通信系統(tǒng)可以使用不同的空中接口和/或物理層。例如,由通信系統(tǒng)使用的空中接口包括例如頻分多址(FDMA)、時(shí)分多址(TDMA)、碼分多址(CDMA)和通用移動(dòng)通信系統(tǒng)(UMTS)(特別地,長期演進(jìn)(LTE))、全球移動(dòng)通信系統(tǒng)(GSM)等等。作為非限制性示例,下面的描述涉及CDMA通信系統(tǒng),但是這樣的教導(dǎo)同樣適用于其它類型的系統(tǒng)。
參考圖2,CDMA無線通信系統(tǒng)可以包括多個(gè)移動(dòng)終端100、多個(gè)基站(BS)270、基站控制器(BSC)275和移動(dòng)交換中心(MSC)280。MSC280被構(gòu)造為與公共電話交換網(wǎng)絡(luò)(PSTN)290形成接口。MSC280還被構(gòu)造為與可以經(jīng)由回程線路耦接到基站270的BSC275形成接口?;爻叹€路可以根據(jù)若干己知的接口中的任一種來構(gòu)造,所述接口包括例如E1/T1、ATM,IP、PPP、幀中繼、HDSL、ADSL或xDSL。將理解的是,如圖2中所示的系統(tǒng)可以包括多個(gè)BSC2750。
每個(gè)BS270可以服務(wù)一個(gè)或多個(gè)分區(qū)(或區(qū)域),由多向天線或指向特定方向的天線覆蓋的每個(gè)分區(qū)放射狀地遠(yuǎn)離BS270?;蛘?,每個(gè)分區(qū)可以由用于分集接收的兩個(gè)或更多天線覆蓋。每個(gè)BS270可以被構(gòu)造為支持多個(gè)頻率分配,并且每個(gè)頻率分配具有特定頻譜(例如,1.25MHz,5MHz等等)。
分區(qū)與頻率分配的交叉可以被稱為CDMA信道。BS270也可以被稱為基站收發(fā)器子系統(tǒng)(BTS)或者其它等效術(shù)語。在這樣的情況下,術(shù)語"基站"可以用于籠統(tǒng)地表示單個(gè)BSC275和至少一個(gè)BS270?;疽部梢员环Q為"蜂窩站"。或者,特定BS270的各分區(qū)可以被稱為多個(gè)蜂窩站。
如圖2中所示,廣播發(fā)射器(BT)295將廣播信號(hào)發(fā)送給在系統(tǒng)內(nèi)操作的移動(dòng)終端100。如圖1中所示的廣播接收模塊111被設(shè)置在移動(dòng)終端100處以接收由BT295發(fā)送的廣播信號(hào)。在圖2中,示出了幾個(gè)全球定位系統(tǒng)(GPS)衛(wèi)星300。衛(wèi)星300幫助定位多個(gè)移動(dòng)終端100中的至少一個(gè)。
在圖2中,描繪了多個(gè)衛(wèi)星300,但是理解的是,可以利用任何數(shù)目的衛(wèi)星獲得有用的定位信息。如圖1中所示的GPS模塊115通常被構(gòu)造為與衛(wèi)星300配合以獲得想要的定位信息。替代GPS跟蹤技術(shù)或者在GPS跟蹤技術(shù)之外,可以使用可以跟蹤移動(dòng)終端的位置的其它技術(shù)。另外,至少一個(gè)GPS衛(wèi)星300可以選擇性地或者額外地處理衛(wèi)星DMB傳輸。
作為無線通信系統(tǒng)的一個(gè)典型操作,BS270接收來自各種移動(dòng)終端100的反向鏈路信號(hào)。移動(dòng)終端100通常參與通話、消息收發(fā)和其它類型的通信。特定基站270接收的每個(gè)反向鏈路信號(hào)被在特定BS270內(nèi)進(jìn)行處理。獲得的數(shù)據(jù)被轉(zhuǎn)發(fā)給相關(guān)的BSC275。BSC提供通話資源分配和包括BS270之間的軟切換過程的協(xié)調(diào)的移動(dòng)管理功能。BSC275還將接收到的數(shù)據(jù)路由到MSC280,其提供用于與PSTN290形成接口的額外的路由服務(wù)。類似地,PSTN290與MSC280形成接口,MSC與BSC275形成接口,并且BSC275相應(yīng)地控制BS270以將正向鏈路信號(hào)發(fā)送到移動(dòng)終端100。
基于上述移動(dòng)終端硬件結(jié)構(gòu)以及通信系統(tǒng),提出本發(fā)明方法各個(gè)實(shí)施例。
實(shí)施例一
如圖3所示,在本實(shí)施例中,一種基于信號(hào)的進(jìn)程凍結(jié)和解凍裝置,包括:
狀態(tài)采集模塊10,用于通過凍結(jié)控制中心采集第一應(yīng)用進(jìn)程的運(yùn)行狀態(tài);
判斷凍結(jié)模塊20,用于判斷所述第一應(yīng)用進(jìn)程是否滿足預(yù)設(shè)的凍結(jié)條件,若是,則通過系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程;
進(jìn)程號(hào)獲取模塊30,用于第二應(yīng)用進(jìn)程向所述第一應(yīng)用進(jìn)程發(fā)送通訊請求時(shí),第二應(yīng)用進(jìn)程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并把所述進(jìn)程號(hào)發(fā)送至系統(tǒng)內(nèi)核;
解凍模塊40,用于系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程。
在本實(shí)施例中,通過信號(hào)控制系統(tǒng)內(nèi)核來將應(yīng)用進(jìn)程中的所有線程全部凍結(jié),當(dāng)有其他應(yīng)用進(jìn)程發(fā)來通訊請求時(shí),通過其他應(yīng)用進(jìn)程解凍該應(yīng)用進(jìn)程,在達(dá)到了凍結(jié)效果最大化的同時(shí),實(shí)現(xiàn)了應(yīng)用進(jìn)程的及時(shí)解凍。
在本實(shí)施例中,第一應(yīng)用進(jìn)程是本案中被執(zhí)行凍結(jié)與解凍操作的進(jìn)程,第二應(yīng)用進(jìn)程是在第一應(yīng)用進(jìn)程凍結(jié)后想第一應(yīng)用進(jìn)程發(fā)送通訊請求的其他進(jìn)程,也是助于第一應(yīng)用進(jìn)程解凍的某一個(gè)進(jìn)程,其中“第一”、“第二”,只是為了便于區(qū)分兩個(gè)不同的應(yīng)用進(jìn)程,不是特指某一個(gè)應(yīng)用進(jìn)程,也不是對(duì)應(yīng)用進(jìn)程的一種限定,而且第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程的身份可以互換,也即,當(dāng)?shù)诙?yīng)用進(jìn)程被凍結(jié)時(shí),也可以通過第一應(yīng)用進(jìn)程的通訊請求將第二應(yīng)用進(jìn)程解凍。
在本實(shí)施例中,第一應(yīng)用進(jìn)程的凍結(jié)操作由系統(tǒng)內(nèi)核kernel來完成,如圖4所示第一應(yīng)用進(jìn)程凍結(jié)操作示意圖,其中,凍結(jié)控制中心用于采集第一應(yīng)用進(jìn)程的運(yùn)行狀態(tài),所述運(yùn)行狀態(tài)包括第一應(yīng)用進(jìn)程的相關(guān)信息和系統(tǒng)環(huán)境信息,根據(jù)這些信息判斷第一應(yīng)用進(jìn)程是否滿足預(yù)設(shè)的凍結(jié)條件,若是,則第一應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送凍結(jié)信號(hào)SIGSTOP,系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程,包括其中的通訊線程,如binder線程,這種基于系統(tǒng)內(nèi)核信號(hào)來進(jìn)行凍結(jié)的方法,可以將進(jìn)程中所有線程都凍結(jié),達(dá)到凍結(jié)效果的最大化,但在這種情況下,第一應(yīng)用進(jìn)程將無法主動(dòng)與其他應(yīng)用進(jìn)程進(jìn)行通訊,也無法通過通訊線程進(jìn)行解凍操作,為此,則需要其他方法進(jìn)行解凍。
在本實(shí)施例中,若第一應(yīng)用進(jìn)程不滿足預(yù)設(shè)的凍結(jié)條件,則延時(shí)到滿足凍結(jié)條件再向系統(tǒng)內(nèi)核發(fā)送凍結(jié)信號(hào)SIGSTOP。
在本實(shí)施例中,所述進(jìn)程號(hào)獲取模塊包括:
第一獲取單元,用于通過查詢所述第二應(yīng)用進(jìn)程中與所述第一應(yīng)用進(jìn)程進(jìn)行通訊的binder線程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
在本實(shí)施例中,第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程既然會(huì)發(fā)生通訊請求,兩者之間在第一應(yīng)用進(jìn)程凍結(jié)之前,比如在第一應(yīng)用進(jìn)程安裝完成初始化之時(shí),就會(huì)與其有可能產(chǎn)生交互的其他應(yīng)用進(jìn)程之間產(chǎn)生首次通訊連接(例如安裝地圖應(yīng)用程序(相當(dāng)于第二應(yīng)用進(jìn)程)時(shí),都會(huì)第一時(shí)間向GPS模塊(相當(dāng)于第一應(yīng)用進(jìn)程)申請讀取用戶的地理位置),如果在第一應(yīng)用進(jìn)程初始化之時(shí),沒有與某一個(gè)應(yīng)用進(jìn)程建立通訊連接,則之后也不會(huì)或很小可能再與該某一個(gè)應(yīng)用進(jìn)程建立通訊連接,這個(gè)應(yīng)用進(jìn)程不會(huì)或很小可能會(huì)成為本案中的第二應(yīng)用進(jìn)程;基于此,可以理解為,當(dāng)本案中的第二應(yīng)用進(jìn)程向所述第一應(yīng)用進(jìn)程發(fā)送通訊請求時(shí),可以確定,第二應(yīng)用進(jìn)程和第一應(yīng)用進(jìn)程之前已經(jīng)建立過通訊連接,而通過預(yù)先建立的通訊連接可以獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),從而確認(rèn)第一應(yīng)用進(jìn)程的身份,通過第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào),所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程。
在本實(shí)施例中,在第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程首次建立binder通訊時(shí);第二應(yīng)用進(jìn)程分配一個(gè)binder線程與所述第一應(yīng)用進(jìn)程進(jìn)行通訊連接,并將所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)保存至所述binder線程中;相應(yīng)地,第一應(yīng)用進(jìn)程也會(huì)分配一個(gè)binder線程與所述第二應(yīng)用進(jìn)程進(jìn)行通訊連接,并將所述第二應(yīng)用進(jìn)程的進(jìn)程號(hào)保存至所述binder線程中,在具體實(shí)現(xiàn)過程中,如圖5所示,當(dāng)通過第二應(yīng)用進(jìn)程解凍處于凍結(jié)狀態(tài)的第一應(yīng)用進(jìn)程時(shí),通過第二應(yīng)用進(jìn)程中與第一應(yīng)用進(jìn)程相對(duì)應(yīng)的binder線程來獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并通過第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào)SIGCONT,所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程,從而實(shí)現(xiàn)對(duì)第一應(yīng)用進(jìn)程的解凍操作;反之,當(dāng)通過第一應(yīng)用進(jìn)程解凍處于凍結(jié)狀態(tài)的第二應(yīng)用進(jìn)程時(shí),通過第一應(yīng)用進(jìn)程中與第二應(yīng)用進(jìn)程相對(duì)應(yīng)的binder線程來獲取第二應(yīng)用進(jìn)程的進(jìn)程號(hào),并通過第一應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào)SIGCONT,所述解凍信號(hào)包括所述第二應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第二應(yīng)用進(jìn)程,從而實(shí)現(xiàn)對(duì)第二應(yīng)用進(jìn)程的解凍操作。
作為另一種實(shí)施例,所述進(jìn)程號(hào)獲取模塊還包括:
第二獲取單元,用于當(dāng)所述第二應(yīng)用進(jìn)程和所述第一應(yīng)用進(jìn)程首次建立binder通訊時(shí),通過系統(tǒng)框架獲取所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
當(dāng)?shù)谝粦?yīng)用進(jìn)程和第二應(yīng)用進(jìn)程之前未建立通訊連接時(shí),比如安裝地圖應(yīng)用程序(相當(dāng)于第二應(yīng)用進(jìn)程)時(shí),向GPS模塊(相當(dāng)于第一應(yīng)用進(jìn)程)申請讀取用戶的地理位置被用戶拒絕,之后用戶又需要使用地圖時(shí),便會(huì)主動(dòng)要求訪問GPS模塊,若此時(shí),GPS模塊處于凍結(jié)狀態(tài),則由于地圖與GPS模塊之間未建立過通訊連接,就不能通過通訊線程來獲取GPS模塊的進(jìn)程號(hào),進(jìn)而解凍GPS模塊,此時(shí)就需要換一種獲取進(jìn)程號(hào)的方法,這就需要用到系統(tǒng)框架,任意一個(gè)應(yīng)用程序在安裝初始化之初,或某一個(gè)應(yīng)用進(jìn)程啟動(dòng)之時(shí),都會(huì)將自身的進(jìn)程號(hào)告知系統(tǒng)框架,當(dāng)所述第二應(yīng)用進(jìn)程和所述第一應(yīng)用進(jìn)程首次建立binder通訊時(shí),第二應(yīng)用進(jìn)程無法通過binder線程來獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),則可以通過系統(tǒng)框架獲取所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并通過第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào)SIGCONT,所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程,從而實(shí)現(xiàn)對(duì)第一應(yīng)用進(jìn)程的解凍操作。
作為另一種實(shí)施例,也可以通過凍結(jié)控制中心直接向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào),解凍第一應(yīng)用進(jìn)程,這種方式一般用于緊急情況。
實(shí)施例二
如圖6所示,在本實(shí)施例中,一種基于信號(hào)的進(jìn)程凍結(jié)和解凍裝置還包括:
Binder通訊模塊50,用于第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程建立binder通訊;第二應(yīng)用進(jìn)程分配一個(gè)binder線程與所述第一應(yīng)用進(jìn)程進(jìn)行通訊連接,并將所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)保存至所述binder線程中。
在本實(shí)施例中,所述進(jìn)程號(hào)獲取模塊包括:
第一獲取單元,用于通過查詢所述第二應(yīng)用進(jìn)程中與所述第一應(yīng)用進(jìn)程進(jìn)行通訊的binder線程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
在本實(shí)施例中,第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程既然會(huì)發(fā)生通訊請求,兩者之間在第一應(yīng)用進(jìn)程凍結(jié)之前,比如在第一應(yīng)用進(jìn)程安裝完成初始化之時(shí),就會(huì)與其有可能產(chǎn)生交互的其他應(yīng)用進(jìn)程之間產(chǎn)生首次通訊連接(例如安裝地圖應(yīng)用程序時(shí),都會(huì)第一時(shí)間向GPS模塊申請讀取用戶的地理位置),如果在第一應(yīng)用進(jìn)程初始化之時(shí),沒有與某一個(gè)應(yīng)用進(jìn)程建立通訊連接,則之后也不會(huì)或很小可能再與該某一個(gè)應(yīng)用進(jìn)程建立通訊連接,這個(gè)應(yīng)用進(jìn)程不會(huì)或很小可能會(huì)成為本案中的第二應(yīng)用進(jìn)程;基于此,可以理解為,當(dāng)本案中的第二應(yīng)用進(jìn)程向所述第一應(yīng)用進(jìn)程發(fā)送通訊請求時(shí),可以確定,第二應(yīng)用進(jìn)程和第一應(yīng)用進(jìn)程之前已經(jīng)建立過通訊連接,而通過預(yù)先建立的通訊連接可以獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),從而確認(rèn)第一應(yīng)用進(jìn)程的身份,通過第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào),所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程。
在本實(shí)施例中,在第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程首次建立binder通訊時(shí);第二應(yīng)用進(jìn)程分配一個(gè)binder線程與所述第一應(yīng)用進(jìn)程進(jìn)行通訊連接,并將所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)保存至所述binder線程中;相應(yīng)地,第一應(yīng)用進(jìn)程也會(huì)分配一個(gè)binder線程與所述第二應(yīng)用進(jìn)程進(jìn)行通訊連接,并將所述第二應(yīng)用進(jìn)程的進(jìn)程號(hào)保存至所述binder線程中,在具體實(shí)現(xiàn)過程中,如圖5所示,當(dāng)通過第二應(yīng)用進(jìn)程解凍處于凍結(jié)狀態(tài)的第一應(yīng)用進(jìn)程時(shí),通過第二應(yīng)用進(jìn)程中與第一應(yīng)用進(jìn)程相對(duì)應(yīng)的binder線程來獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并通過第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào)SIGCONT,所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程,從而實(shí)現(xiàn)對(duì)第一應(yīng)用進(jìn)程的解凍操作;反之,當(dāng)通過第一應(yīng)用進(jìn)程解凍處于凍結(jié)狀態(tài)的第二應(yīng)用進(jìn)程時(shí),通過第一應(yīng)用進(jìn)程中與第二應(yīng)用進(jìn)程相對(duì)應(yīng)的binder線程來獲取第二應(yīng)用進(jìn)程的進(jìn)程號(hào),并通過第一應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào)SIGCONT,所述解凍信號(hào)包括所述第二應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第二應(yīng)用進(jìn)程,從而實(shí)現(xiàn)對(duì)第二應(yīng)用進(jìn)程的解凍操作。
作為另一種實(shí)施例,所述進(jìn)程號(hào)獲取模塊還包括:
第二獲取單元,用于當(dāng)所述第二應(yīng)用進(jìn)程和所述第一應(yīng)用進(jìn)程首次建立binder通訊時(shí),通過系統(tǒng)框架獲取所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
當(dāng)?shù)谝粦?yīng)用進(jìn)程和第二應(yīng)用進(jìn)程之前未建立通訊連接時(shí),比如安裝地圖應(yīng)用程序(相當(dāng)于第二應(yīng)用進(jìn)程)時(shí),向GPS模塊(相當(dāng)于第一應(yīng)用進(jìn)程)申請讀取用戶的地理位置被用戶拒絕,之后用戶又需要使用地圖時(shí),便會(huì)主動(dòng)要求訪問GPS模塊,若此時(shí),GPS模塊處于凍結(jié)狀態(tài),則由于地圖與GPS模塊之間未建立過通訊連接,就不能通過通訊線程來獲取GPS模塊的進(jìn)程號(hào),進(jìn)而解凍GPS模塊,此時(shí)就需要換一種獲取進(jìn)程號(hào)的方法,這就需要用到系統(tǒng)框架,任意一個(gè)應(yīng)用程序在安裝初始化之初,或某一個(gè)應(yīng)用進(jìn)程啟動(dòng)之時(shí),都會(huì)將自身的進(jìn)程號(hào)告知系統(tǒng)框架,當(dāng)所述第二應(yīng)用進(jìn)程和所述第一應(yīng)用進(jìn)程首次建立binder通訊時(shí),第二應(yīng)用進(jìn)程無法通過binder線程來獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),則可以通過系統(tǒng)框架獲取所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并通過第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào)SIGCONT,所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程,從而實(shí)現(xiàn)對(duì)第一應(yīng)用進(jìn)程的解凍操作。
作為另一種實(shí)施例,也可以通過凍結(jié)控制中心直接向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào),解凍第一應(yīng)用進(jìn)程,這種方式一般用于緊急情況。
實(shí)施例三
如圖7所示,在本實(shí)施例中,一種基于信號(hào)的進(jìn)程凍結(jié)和解凍方法,包括:
S10、凍結(jié)控制中心采集第一應(yīng)用進(jìn)程的運(yùn)行狀態(tài);
S20、判斷所述第一應(yīng)用進(jìn)程是否滿足預(yù)設(shè)的凍結(jié)條件,若是,則進(jìn)入步驟S30、通過系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程;否則,進(jìn)入步驟S21、延時(shí)到滿足凍結(jié)條件再向系統(tǒng)內(nèi)核發(fā)送凍結(jié)信號(hào);
S40、第二應(yīng)用進(jìn)程向所述第一應(yīng)用進(jìn)程發(fā)送通訊請求時(shí),獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并把所述進(jìn)程號(hào)發(fā)送至系統(tǒng)內(nèi)核;
S50、系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程。
在本實(shí)施例中,通過信號(hào)控制系統(tǒng)內(nèi)核來將應(yīng)用進(jìn)程中的所有線程全部凍結(jié),當(dāng)有其他應(yīng)用進(jìn)程發(fā)來通訊請求時(shí),通過其他應(yīng)用進(jìn)程解凍該應(yīng)用進(jìn)程,在達(dá)到了凍結(jié)效果最大化的同時(shí),實(shí)現(xiàn)了應(yīng)用進(jìn)程的及時(shí)解凍。
在本實(shí)施例中,第一應(yīng)用進(jìn)程是本案中被執(zhí)行凍結(jié)與解凍操作的進(jìn)程,第二應(yīng)用進(jìn)程是在第一應(yīng)用進(jìn)程凍結(jié)后想第一應(yīng)用進(jìn)程發(fā)送通訊請求的其他進(jìn)程,也是助于第一應(yīng)用進(jìn)程解凍的某一個(gè)進(jìn)程,其中“第一”、“第二”,只是為了便于區(qū)分兩個(gè)不同的應(yīng)用進(jìn)程,不是特指某一個(gè)應(yīng)用進(jìn)程,也不是對(duì)應(yīng)用進(jìn)程的一種限定,而且第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程的身份可以互換,也即,當(dāng)?shù)诙?yīng)用進(jìn)程被凍結(jié)時(shí),也可以通過第一應(yīng)用進(jìn)程的通訊請求將第二應(yīng)用進(jìn)程解凍。
在本實(shí)施例中,第一應(yīng)用進(jìn)程的凍結(jié)操作由系統(tǒng)內(nèi)核kernel來完成,如圖4所示第一應(yīng)用進(jìn)程凍結(jié)操作示意圖,其中,凍結(jié)控制中心用于采集第一應(yīng)用進(jìn)程的運(yùn)行狀態(tài),所述運(yùn)行狀態(tài)包括第一應(yīng)用進(jìn)程的相關(guān)信息和系統(tǒng)環(huán)境信息,根據(jù)這些信息判斷第一應(yīng)用進(jìn)程是否滿足預(yù)設(shè)的凍結(jié)條件,若是,則第一應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送凍結(jié)信號(hào)SIGSTOP,系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程,包括其中的通訊線程,如binder線程,這種基于系統(tǒng)內(nèi)核信號(hào)來進(jìn)行凍結(jié)的方法,可以將進(jìn)程中所有線程都凍結(jié),達(dá)到凍結(jié)效果的最大化,但在這種情況下,第一應(yīng)用進(jìn)程將無法主動(dòng)與其他應(yīng)用進(jìn)程進(jìn)行通訊,也無法通過通訊線程進(jìn)行解凍操作,為此,則需要其他方法進(jìn)行解凍。
在本實(shí)施例中,若第一應(yīng)用進(jìn)程不滿足預(yù)設(shè)的凍結(jié)條件,則延時(shí)到滿足凍結(jié)條件再向系統(tǒng)內(nèi)核發(fā)送凍結(jié)信號(hào)SIGSTOP。
在本實(shí)施例中,所述獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)包括:
通過查詢所述第二應(yīng)用進(jìn)程中與所述第一應(yīng)用進(jìn)程進(jìn)行通訊的binder線程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
在本實(shí)施例中,第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程既然會(huì)發(fā)生通訊請求,兩者之間在第一應(yīng)用進(jìn)程凍結(jié)之前,比如在第一應(yīng)用進(jìn)程安裝完成初始化之時(shí),就會(huì)與其有可能產(chǎn)生交互的其他應(yīng)用進(jìn)程之間產(chǎn)生首次通訊連接(例如安裝地圖應(yīng)用程序時(shí),都會(huì)第一時(shí)間向GPS模塊申請讀取用戶的地理位置),如果在第一應(yīng)用進(jìn)程初始化之時(shí),沒有與某一個(gè)應(yīng)用進(jìn)程建立通訊連接,則之后也不會(huì)或很小可能再與該某一個(gè)應(yīng)用進(jìn)程建立通訊連接,這個(gè)應(yīng)用進(jìn)程不會(huì)或很小可能會(huì)成為本案中的第二應(yīng)用進(jìn)程;基于此,可以理解為,當(dāng)本案中的第二應(yīng)用進(jìn)程向所述第一應(yīng)用進(jìn)程發(fā)送通訊請求時(shí),可以確定,第二應(yīng)用進(jìn)程和第一應(yīng)用進(jìn)程之前已經(jīng)建立過通訊連接,而通過預(yù)先建立的通訊連接可以獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),從而確認(rèn)第一應(yīng)用進(jìn)程的身份,通過第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào),所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程。
在本實(shí)施例中,在第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程首次建立binder通訊時(shí);第二應(yīng)用進(jìn)程分配一個(gè)binder線程與所述第一應(yīng)用進(jìn)程進(jìn)行通訊連接,并將所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)保存至所述binder線程中;相應(yīng)地,第一應(yīng)用進(jìn)程也會(huì)分配一個(gè)binder線程與所述第二應(yīng)用進(jìn)程進(jìn)行通訊連接,并將所述第二應(yīng)用進(jìn)程的進(jìn)程號(hào)保存至所述binder線程中,在具體實(shí)現(xiàn)過程中,如圖5所示,當(dāng)通過第二應(yīng)用進(jìn)程解凍處于凍結(jié)狀態(tài)的第一應(yīng)用進(jìn)程時(shí),通過第二應(yīng)用進(jìn)程中與第一應(yīng)用進(jìn)程相對(duì)應(yīng)的binder線程來獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并通過第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào)SIGCONT,所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程,從而實(shí)現(xiàn)對(duì)第一應(yīng)用進(jìn)程的解凍操作;反之,當(dāng)通過第一應(yīng)用進(jìn)程解凍處于凍結(jié)狀態(tài)的第二應(yīng)用進(jìn)程時(shí),通過第一應(yīng)用進(jìn)程中與第二應(yīng)用進(jìn)程相對(duì)應(yīng)的binder線程來獲取第二應(yīng)用進(jìn)程的進(jìn)程號(hào),并通過第一應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào)SIGCONT,所述解凍信號(hào)包括所述第二應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第二應(yīng)用進(jìn)程,從而實(shí)現(xiàn)對(duì)第二應(yīng)用進(jìn)程的解凍操作。
作為另一種實(shí)施例,所述獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)還包括:
當(dāng)所述第二應(yīng)用進(jìn)程和所述第一應(yīng)用進(jìn)程首次建立binder通訊時(shí),通過系統(tǒng)框架獲取所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
當(dāng)?shù)谝粦?yīng)用進(jìn)程和第二應(yīng)用進(jìn)程之前未建立通訊連接時(shí),比如安裝地圖應(yīng)用程序(相當(dāng)于第二應(yīng)用進(jìn)程)時(shí),向GPS模塊(相當(dāng)于第一應(yīng)用進(jìn)程)申請讀取用戶的地理位置被用戶拒絕,之后用戶又需要使用地圖時(shí),便會(huì)主動(dòng)要求訪問GPS模塊,若此時(shí),GPS模塊處于凍結(jié)狀態(tài),則由于地圖與GPS模塊之間未建立過通訊連接,就不能通過通訊線程來獲取GPS模塊的進(jìn)程號(hào),進(jìn)而解凍GPS模塊,此時(shí)就需要換一種獲取進(jìn)程號(hào)的方法,這就需要用到系統(tǒng)框架,任意一個(gè)應(yīng)用程序在安裝初始化之初,或某一個(gè)應(yīng)用進(jìn)程啟動(dòng)之時(shí),都會(huì)將自身的進(jìn)程號(hào)告知系統(tǒng)框架,當(dāng)所述第二應(yīng)用進(jìn)程和所述第一應(yīng)用進(jìn)程首次建立binder通訊時(shí),第二應(yīng)用進(jìn)程無法通過binder線程來獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào),則可以通過系統(tǒng)框架獲取所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),并通過第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào)SIGCONT,所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程,從而實(shí)現(xiàn)對(duì)第一應(yīng)用進(jìn)程的解凍操作。
作為另一種實(shí)施例,也可以通過凍結(jié)控制中心直接向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào),解凍第一應(yīng)用進(jìn)程,這種方式一般用于緊急情況。
實(shí)施例四
如圖8所示,在本實(shí)施例中,所述步驟S40之前還包括:
S01、第一應(yīng)用進(jìn)程和第二應(yīng)用進(jìn)程建立binder通訊;
S02、第二應(yīng)用進(jìn)程分配一個(gè)binder線程與所述第一應(yīng)用進(jìn)程進(jìn)行通訊連接,并將所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)保存至所述binder線程中。
上述兩個(gè)步驟既可以放在步驟S40之前,也可以放在步驟S10之前,不影響本案的實(shí)施。
在本實(shí)施例中,所述獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)包括:
通過查詢所述第二應(yīng)用進(jìn)程中與所述第一應(yīng)用進(jìn)程進(jìn)行通訊的binder線程獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
在本實(shí)施例中,所述獲取第一應(yīng)用進(jìn)程的進(jìn)程號(hào)還包括:
當(dāng)所述第二應(yīng)用進(jìn)程和所述第一應(yīng)用進(jìn)程首次建立binder通訊時(shí),通過系統(tǒng)框架獲取所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào)。
在本實(shí)施例中,所述通過系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程具體為:
第一應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送凍結(jié)信號(hào),系統(tǒng)內(nèi)核凍結(jié)所述第一應(yīng)用進(jìn)程內(nèi)的所有線程;
相應(yīng)地,所述系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程具體為:
第二應(yīng)用進(jìn)程向系統(tǒng)內(nèi)核發(fā)送解凍信號(hào),所述解凍信號(hào)包括所述第一應(yīng)用進(jìn)程的進(jìn)程號(hào),系統(tǒng)內(nèi)核根據(jù)所述進(jìn)程號(hào)解凍對(duì)應(yīng)的第一應(yīng)用進(jìn)程。
需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如ROM/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),服務(wù)器,空調(diào)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。