亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于Service的應(yīng)用進(jìn)程?;钕到y(tǒng)及?;罘椒ㄅc流程

文檔序號:12063465閱讀:192來源:國知局
一種基于Service的應(yīng)用進(jìn)程保活系統(tǒng)及?;罘椒ㄅc流程

本發(fā)明涉及應(yīng)用程序通信技術(shù)領(lǐng)域,具體涉及一種基于Service的應(yīng)用進(jìn)程?;钕到y(tǒng)及?;罘椒ā?/p>



背景技術(shù):

在安卓系統(tǒng)的開發(fā)中UI前臺通常是用于展示前臺界面的,后臺服務(wù)主要是用于處理業(yè)務(wù)邏輯的,一種常見的使用場景是用戶暫時(shí)不用的應(yīng)用進(jìn)程在后臺繼續(xù)運(yùn)行。如果應(yīng)用進(jìn)程長時(shí)間在后臺運(yùn)行,系統(tǒng)通常會因?yàn)楣牡膯栴}將后臺的應(yīng)用進(jìn)程退出,這樣退到后臺的應(yīng)用進(jìn)程也就被停止掉了。但是很多應(yīng)用進(jìn)程都希望長期在后臺進(jìn)行執(zhí)行,不希望被安卓系統(tǒng)退出,這個(gè)時(shí)候就需要有一種方法能夠?qū)⒑笈_的應(yīng)用進(jìn)程進(jìn)行?;钐幚?。

Service是安卓系統(tǒng)中的四大組件之一,它是一種長生命周期的,沒有可視化界面,運(yùn)行于后臺的一種服務(wù)程序。安卓系統(tǒng)會盡量保持擁有service服務(wù)的應(yīng)用進(jìn)程運(yùn)行,當(dāng)內(nèi)存不足時(shí),擁有service服務(wù)的進(jìn)程具有較高的優(yōu)先級,不容易被系統(tǒng)退出掉。因此目前常規(guī)的應(yīng)用進(jìn)程?;罘桨甘峭ㄟ^各種技術(shù)手段確保后臺的應(yīng)用進(jìn)程的Service服務(wù)不被系統(tǒng)退出掉,從而實(shí)現(xiàn)應(yīng)用進(jìn)程的?;睢?/p>

但是所有這些優(yōu)化手段都只能能夠提高應(yīng)用進(jìn)程的Service服務(wù)的優(yōu)先級,使得Service不那么容易被系統(tǒng)退出,但還是有可能會被系統(tǒng)退出,并且后臺的應(yīng)用進(jìn)程的Service服務(wù)一旦被退出了,整個(gè)應(yīng)用進(jìn)程的Service服務(wù)將不再運(yùn)行,直到用戶下一次點(diǎn)擊啟動應(yīng)用進(jìn)程的時(shí)候才會再次執(zhí)行后臺應(yīng)用進(jìn)程的Service服務(wù),無法確保應(yīng)用進(jìn)程的?;睢?/p>

因此,亟需一種既使后臺的應(yīng)用進(jìn)程的Service服務(wù)被系統(tǒng)退出也能實(shí)現(xiàn)應(yīng)用進(jìn)程?;畹募夹g(shù)方案。



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

針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種基于Service的應(yīng)用進(jìn)程?;钕到y(tǒng)及保活方法,既使后臺的應(yīng)用進(jìn)程的Service服務(wù)被系統(tǒng)退出也能實(shí)現(xiàn)應(yīng)用進(jìn)程?;睢?/p>

為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是:一種基于Service的應(yīng)用進(jìn)程保活系統(tǒng),包括廣播接收模塊和Service啟動模塊,其中:

廣播接收模塊用于在安卓系統(tǒng)中注冊自定義的廣播接收器接收預(yù)設(shè)類型的廣播消息;接收到廣播消息時(shí),通知Service啟動模塊接收到的廣播消息類型;

Service啟動模塊用于獲取用戶預(yù)設(shè)的廣播消息類型與Service服務(wù)之間的對應(yīng)關(guān)系;接收廣播接收模塊發(fā)送的廣播消息類型的通知并根據(jù)接收的廣播消息類型和所述對應(yīng)關(guān)系啟動對應(yīng)的Service服務(wù)。

在上述技術(shù)方案的基礎(chǔ)上,所述系統(tǒng)還包括定時(shí)模塊,所述定時(shí)模塊用于在安卓系統(tǒng)中添加定時(shí)器;當(dāng)Service啟動模塊接收到廣播消息類型的通知時(shí),啟動所述定時(shí)器,所述定時(shí)器在預(yù)設(shè)的時(shí)間延遲后觸發(fā)所述Service啟動模塊啟動Service服務(wù)。

在上述技術(shù)方案的基礎(chǔ)上,所述時(shí)間延遲根據(jù)安卓系統(tǒng)的CPU使用率動態(tài)調(diào)節(jié)。

在上述技術(shù)方案的基礎(chǔ)上,所述系統(tǒng)還包括控制模塊,所述控制模塊用于根據(jù)安卓系統(tǒng)的CPU使用率動態(tài)調(diào)節(jié)所述時(shí)間延遲。

在上述技術(shù)方案的基礎(chǔ)上,所述控制模塊包括CPU使用率監(jiān)測單元、對應(yīng)規(guī)則設(shè)置單元和延遲動態(tài)調(diào)節(jié)單元;所述CPU使用率監(jiān)測單元用于實(shí)時(shí)監(jiān)測安卓系統(tǒng)的CPU使用率;所述對應(yīng)規(guī)則設(shè)置單元用于獲取CPU使用率與所述時(shí)間延遲之間預(yù)設(shè)的對應(yīng)規(guī)則;所述延遲動態(tài)調(diào)節(jié)單元用于根據(jù)CPU使用率和所述預(yù)設(shè)的對應(yīng)規(guī)則動態(tài)調(diào)整所述時(shí)間延遲。

在上述技術(shù)方案的基礎(chǔ)上,所述對應(yīng)規(guī)則為:時(shí)間延遲=A*(CPU使用率)2+B*(CPU使用率)+C,其中,A>0且CPU使用率≥時(shí)間延遲和CPU使用率均大于0,A、B、C為預(yù)設(shè)的參數(shù)。

在上述技術(shù)方案的基礎(chǔ)上,所述Service啟動模塊通過在廣播接收器中調(diào)用startService方法動Service服務(wù)。

本發(fā)明還公開了一種基于Service的應(yīng)用進(jìn)程?;钕到y(tǒng)的應(yīng)用進(jìn)程保活方法,其特征在于,包括:

廣播接收模塊在安卓系統(tǒng)中注冊自定義的廣播接收器接收預(yù)設(shè)類型的廣播消息;

廣播接收模塊接收到廣播消息時(shí),通知Service啟動模塊接收到的廣播消息類型;

Service啟動模塊獲取用戶預(yù)設(shè)的廣播消息類型與Service服務(wù)之間的對應(yīng)關(guān)系;接收廣播接收模塊發(fā)送的廣播消息類型的通知并根據(jù)接收的廣播消息類型和所述對應(yīng)關(guān)系啟動對應(yīng)的Service服務(wù)。

在上述技術(shù)方案的基礎(chǔ)上,所述定時(shí)模塊在安卓系統(tǒng)中添加定時(shí)器,當(dāng)Service啟動模塊接收到廣播消息類型的通知時(shí),啟動所述定時(shí)器,所述定時(shí)器在預(yù)設(shè)的時(shí)間延遲后觸發(fā)所述Service啟動模塊啟動Service服務(wù)。

在上述技術(shù)方案的基礎(chǔ)上,所述控制模塊根據(jù)安卓系統(tǒng)的CPU使用率動態(tài)調(diào)節(jié)所述定時(shí)器的時(shí)間延遲

與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:

1、本發(fā)明在安卓系統(tǒng)中注冊自定義的廣播接收器接收預(yù)設(shè)類型的廣播消息,在收到預(yù)設(shè)類型的廣播消息的時(shí)候,通過調(diào)用startService方法啟動對應(yīng)的Service服務(wù),從而實(shí)現(xiàn)即使Service服務(wù)被系統(tǒng)退出了,依舊能夠被安卓系統(tǒng)的廣播消息觸發(fā)Service服務(wù)的啟動,確保應(yīng)用程序在后臺服務(wù)的常駐。

2、本發(fā)明還包括定時(shí)模塊,用以在預(yù)設(shè)的時(shí)間延遲后觸發(fā)Service啟動模塊啟動Service服務(wù),從而減輕安卓系統(tǒng)的CPU使用率的負(fù)擔(dān)。

3、本發(fā)明還包括控制模塊,用以根據(jù)安卓系統(tǒng)的CPU使用率動態(tài)調(diào)節(jié)Service啟動模塊啟動Service服務(wù)之前的時(shí)間延遲:CPU使用率越高,時(shí)間延遲越長;CPU使用率越低,時(shí)間延遲越短;能夠在確保CPU使用率平衡的情況下,實(shí)現(xiàn)應(yīng)用進(jìn)程的?;睢?/p>

附圖說明

圖1為本發(fā)明實(shí)施例中基于Service的應(yīng)用進(jìn)程?;钕到y(tǒng)的結(jié)構(gòu)示意圖;

圖2為本發(fā)明實(shí)施例中CPU使用率與時(shí)間延遲之間對應(yīng)關(guān)系的二次函數(shù)示意圖;

圖3為本發(fā)明實(shí)施例中基于Service的應(yīng)用進(jìn)程保活方法的流程示意圖。

具體實(shí)施方式

以下結(jié)合附圖及實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)說明。

參見圖1所示,本發(fā)明實(shí)施例提供一種基于Service的應(yīng)用進(jìn)程?;钕到y(tǒng),包括廣播接收模塊和Service啟動模塊,其中:

廣播接收模塊用于在安卓系統(tǒng)中注冊自定義的廣播接收器接收預(yù)設(shè)類型的廣播消息;接收到廣播消息時(shí),通知Service啟動模塊接收到的廣播消息類型。

Service啟動模塊用于獲取用戶預(yù)設(shè)的廣播消息類型與Service服務(wù)之間的對應(yīng)關(guān)系;接收廣播接收模塊發(fā)送的廣播消息類型的通知并根據(jù)接收的廣播消息類型和對應(yīng)關(guān)系啟動對應(yīng)的Service服務(wù)。Service啟動模塊通過在廣播接收器中調(diào)用startService方法動Service服務(wù)。

Service服務(wù)的啟動特點(diǎn)是:如果Service服務(wù)處于停止?fàn)顟B(tài),通過startService方法能夠?qū)ervice服務(wù)從停止?fàn)顟B(tài)修改為啟動狀態(tài);如果Service服務(wù)處于運(yùn)行狀態(tài),再次調(diào)用startService方法不會對Service服務(wù)造成任何影響,依舊能夠保持原來的裝填運(yùn)行,不會出現(xiàn)重啟Service服務(wù)的問題。

系統(tǒng)還包括定時(shí)模塊,定時(shí)模塊用于在安卓系統(tǒng)中添加定時(shí)器;當(dāng)Service啟動模塊接收到廣播消息類型的通知時(shí),啟動定時(shí)器,定時(shí)器在預(yù)設(shè)的時(shí)間延遲后觸發(fā)Service啟動模塊啟動Service服務(wù)。時(shí)間延遲根據(jù)安卓系統(tǒng)的CPU使用率動態(tài)調(diào)節(jié)。

系統(tǒng)還包括控制模塊,控制模塊用于根據(jù)安卓系統(tǒng)的CPU使用率動態(tài)調(diào)節(jié)時(shí)間延遲。控制模塊包括CPU使用率監(jiān)測單元、對應(yīng)規(guī)則設(shè)置單元和延遲動態(tài)調(diào)節(jié)單元;CPU使用率監(jiān)測單元用于實(shí)時(shí)監(jiān)測安卓系統(tǒng)的CPU使用率;對應(yīng)規(guī)則設(shè)置單元用于獲取CPU使用率與時(shí)間延遲之間預(yù)設(shè)的對應(yīng)規(guī)則;延遲動態(tài)調(diào)節(jié)單元用于根據(jù)CPU使用率和預(yù)設(shè)的對應(yīng)規(guī)則動態(tài)調(diào)整時(shí)間延遲。

例如,CPU使用率與時(shí)間延遲之間預(yù)設(shè)的對應(yīng)規(guī)則為:

當(dāng)CPU的使用率高的時(shí)候,延長定時(shí)器的時(shí)間延遲;當(dāng)CPU的使用率低的時(shí)候,降低定時(shí)器的時(shí)間延遲。

可以通過一個(gè)公式來表示CPU使用率與時(shí)間延遲之間預(yù)設(shè)的對應(yīng)關(guān)系,具體的對應(yīng)規(guī)則為:時(shí)間延遲=A*(CPU使用率)2+B*(CPU使用率)+C,其中,A>0且CPU使用率≥時(shí)間延遲和CPU使用率均大于0,A、B、C為預(yù)設(shè)的參數(shù)。參見圖2所示,表示CPU使用率與時(shí)間延遲之間預(yù)設(shè)的對應(yīng)關(guān)系。

參見圖3所示,本發(fā)明還公開了一種基于Service的應(yīng)用進(jìn)程?;钕到y(tǒng)的應(yīng)用進(jìn)程保活方法,包括:

S1,廣播接收模塊在安卓系統(tǒng)中注冊自定義的廣播接收器接收預(yù)設(shè)類型的廣播消息;

例如,廣播接收模塊在安卓系統(tǒng)中注冊自定義的廣播接收器接收預(yù)設(shè)類型的廣播消息的具體步驟包括:

(1)廣播接收模塊在安卓系統(tǒng)中注冊自定義的廣播接收器;

廣播接收模塊在安卓系統(tǒng)中自定義廣播接收器MyBroadcastReceiver,MyBroadcastReceiver主要功能是用于接收廣播消息。MyBroadcastReceiver繼承自系統(tǒng)提供的BroadcastReceiver廣播接收器,由于是繼承關(guān)系,所以MyBroadcastReceiver也就具備了廣播接收的功能。廣播接收模塊自定義的MyBroadcastReceiver重寫了BroadcastReceiver中的onReceive方法,這樣當(dāng)安卓系統(tǒng)接收到預(yù)設(shè)類型的廣播消息后會直接將廣播消息傳遞到MyBroadcastReceiver中的onReceive方法中來,從而能夠在MyBroadcastReceiver的onReceive方法中處理接收到的廣播消息。

(2)重寫onReceive方法來設(shè)置待接收的廣播事件的類型;

onReceive方法主要是用于接收廣播消息,在onReceive方法參數(shù)中包含了該廣播消息的類型和相應(yīng)的消息內(nèi)容,可以通過重寫onReceive方法來設(shè)置待接收的廣播消息的類型,也可以設(shè)置onReceive方法接收所有類型的廣播消息

S2,廣播接收模塊接收到廣播消息時(shí),通知Service啟動模塊接收到的廣播消息類型;

S3,Service啟動模塊獲取用戶預(yù)設(shè)的廣播消息類型與Service服務(wù)之間的對應(yīng)關(guān)系;接收廣播接收模塊發(fā)送的廣播消息類型的通知并根據(jù)接收的廣播消息類型和對應(yīng)關(guān)系啟動對應(yīng)的Service服務(wù)。Service啟動模塊通過在廣播接收器中調(diào)用startService方法動Service服務(wù)。

定時(shí)模塊在安卓系統(tǒng)中添加定時(shí)器,當(dāng)Service啟動模塊接收到廣播消息類型的通知時(shí),啟動定時(shí)器,定時(shí)器在預(yù)設(shè)的時(shí)間延遲后觸發(fā)Service啟動模塊啟動Service服務(wù)。控制模塊根據(jù)安卓系統(tǒng)的CPU使用率動態(tài)調(diào)節(jié)定時(shí)器的時(shí)間延遲。

控制模塊包括CPU使用率監(jiān)測單元、對應(yīng)規(guī)則設(shè)置單元和延遲動態(tài)調(diào)節(jié)單元。

CPU使用率監(jiān)測單元用于實(shí)時(shí)監(jiān)測安卓系統(tǒng)的CPU使用率;對應(yīng)規(guī)則設(shè)置單元用于獲取CPU使用率與時(shí)間延遲之間預(yù)設(shè)的對應(yīng)規(guī)則;延遲動態(tài)調(diào)節(jié)單元用于根據(jù)CPU使用率和預(yù)設(shè)的對應(yīng)規(guī)則動態(tài)調(diào)整時(shí)間延遲。

例如,CPU使用率監(jiān)測單元用于實(shí)時(shí)監(jiān)測安卓系統(tǒng)的CPU使用率包括:

(1)CPU使用率監(jiān)測單元通過調(diào)用Linux中的top命令的方式來獲取CPU使用率。在Linux中top命令主要功能是返回當(dāng)前CPU的使用詳細(xì)信息。通過調(diào)用top命令,然后讀取top命令的返回值來獲取CPU使用率。

①執(zhí)行top命令,通過代碼執(zhí)行top命令具體方式是Runtime.getRuntime().exec("top");這個(gè)函數(shù)的意思是通過系統(tǒng)提供的運(yùn)行時(shí)環(huán)境去執(zhí)行top命令。

②執(zhí)行完top命令后,通過BufferedReader對top命令的返回值進(jìn)行讀取。具體讀取方式是,Runtime.getRuntime().exec("top")這個(gè)函數(shù)會返回一個(gè)字符串str,將str傳入到BufferedReader的構(gòu)造函數(shù)中。拿到BufferedReader的一個(gè)實(shí)例對象bufReader。

③讀取bufReader中的內(nèi)容,bufReader中有一個(gè)readLine函數(shù),通過readLine函數(shù)讀取到str中的具體內(nèi)容信息。其中讀取出來的內(nèi)容舉例如下:30%xxx等,一行數(shù)據(jù)中第一個(gè)%出現(xiàn)的位置前面的數(shù)據(jù)就是當(dāng)前CPU使用率。

(2)解析獲取到具體的使用率:

為了能夠解析出來具體的百分號前面的數(shù)據(jù),通過調(diào)用split函數(shù)來對這一行數(shù)據(jù)進(jìn)行拆分。split函數(shù)的主要功能是將原始數(shù)據(jù)進(jìn)行拆分,拆分的依據(jù)是根據(jù)傳入的拆分符進(jìn)行判定的。將傳入的拆分符設(shè)置為根據(jù)%進(jìn)行拆分,拆分完成后會返回拆分后的一個(gè)數(shù)組。由于需要獲取CPU使用率,剛好CPU使用率是出現(xiàn)在最前面的,所以數(shù)組的第一個(gè)元素就是當(dāng)前CPU使用率。

本發(fā)明不局限于上述實(shí)施方式,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1