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

面向Android系統(tǒng)后臺(tái)服務(wù)自動(dòng)喚醒的切斷方法與流程

文檔序號(hào):11729222閱讀:900來源:國知局
面向Android系統(tǒng)后臺(tái)服務(wù)自動(dòng)喚醒的切斷方法與流程

本發(fā)明屬于移動(dòng)終端領(lǐng)域的計(jì)算資源與能耗優(yōu)化技術(shù)領(lǐng)域,特別涉及一種面向android系統(tǒng)后臺(tái)服務(wù)自動(dòng)喚醒的切斷方法。



背景技術(shù):

近年來,移動(dòng)設(shè)備已經(jīng)從用于呼叫和短消息通信的簡單設(shè)備演變?yōu)榭梢赃\(yùn)行各種第三方應(yīng)用的復(fù)雜終端。android的應(yīng)用程序通信模型進(jìn)一步促進(jìn)了豐富應(yīng)用程序的開發(fā)。android開發(fā)人員可以利用其他應(yīng)用程序提供的現(xiàn)有數(shù)據(jù)和服務(wù),同時(shí)仍然可以留給用戶一個(gè)單一、無縫的應(yīng)用程序的使用體驗(yàn)。這樣的開發(fā)模型減少了開發(fā)者負(fù)擔(dān),并促進(jìn)了功能重用?,F(xiàn)有android平臺(tái)將應(yīng)用程序劃分為四種組件(活動(dòng)、廣播接收器、內(nèi)容提供器以及服務(wù))并提供消息傳遞系統(tǒng),以使組件可以在應(yīng)用程序內(nèi)部甚至跨應(yīng)用程序進(jìn)行通信。android提供了特定的組件間通信方法,用于激活組件或觸發(fā)組件之間的通信。

android后臺(tái)任務(wù)主要在關(guān)閉屏幕時(shí)運(yùn)行,也可能于其他應(yīng)用程序在前臺(tái)運(yùn)行時(shí)發(fā)生。通常,后臺(tái)任務(wù)的目的是對應(yīng)用狀態(tài)進(jìn)行刷新,進(jìn)行云服務(wù)同步并獲得狀態(tài)更新/通知,或?yàn)榱藢?shí)現(xiàn)基于非觸摸的用戶交互,例如文件下載或音頻播放。android操作系統(tǒng)提供了一個(gè)名為“服務(wù)”的特殊組件來維護(hù)后臺(tái)任務(wù)。服務(wù)的管理和使用是靈活和開放的,這使得開發(fā)人員可以自由、有效地定義和執(zhí)行自定義后臺(tái)任務(wù)。

然而,這種開放和自由實(shí)際上是一把雙刃劍。后臺(tái)服務(wù)很可能是計(jì)算和能耗密集型的。如果服務(wù)組件被非法應(yīng)用程序不合理地利用,則會(huì)嚴(yán)重影響用戶體驗(yàn)。例如,在當(dāng)前的android系統(tǒng)上,開發(fā)人員可以輕易啟動(dòng)駐留在后臺(tái)的服務(wù)。因?yàn)闆]有提供用戶接口,該服務(wù)對于用戶而言是不可察覺的。因此對于android的設(shè)計(jì)人員和應(yīng)用程序開發(fā)人員來說,應(yīng)正確使用服務(wù)以減少不必要的開銷并改善用戶體驗(yàn)。

目前還少有研究工作探究后臺(tái)服務(wù)在實(shí)際android應(yīng)用程序中是否被合理使用。通過對120個(gè)流行應(yīng)用進(jìn)行的大規(guī)模測量結(jié)果來看,我們發(fā)現(xiàn)服務(wù)組件在現(xiàn)實(shí)部署中被嚴(yán)重過度使用。具體來說,許多應(yīng)用程序?yàn)E用開放式api來激活其他應(yīng)用程序,或者監(jiān)聽系統(tǒng)廣播并激活后臺(tái)服務(wù)。接近32%的后臺(tái)服務(wù)根本不會(huì)被用戶直接使用,且對用戶體驗(yàn)沒有幫助。更嚴(yán)重的是,我們發(fā)現(xiàn)超過67%的服務(wù)會(huì)自行啟動(dòng)另一個(gè)從未被前臺(tái)活動(dòng)使用的服務(wù)。

可見,android后臺(tái)應(yīng)用自動(dòng)喚醒現(xiàn)象非常普遍,且這種現(xiàn)象會(huì)帶來嚴(yán)重的后果。



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

為了克服上述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種面向android系統(tǒng)后臺(tái)服務(wù)自動(dòng)喚醒的切斷方法,能夠有效地切斷非法后臺(tái)應(yīng)用的喚醒途徑,使得對提升用戶體驗(yàn)沒有幫助的后臺(tái)服務(wù)泛濫現(xiàn)象得到有效的緩解;本發(fā)明在保證android終端正常運(yùn)作的前提下,通過合理地管理后臺(tái)服務(wù)、切斷無效的后臺(tái)服務(wù)啟動(dòng)途徑,減小終端的cpu和內(nèi)存的開銷,降低后臺(tái)通信交互時(shí)延,緩解終端運(yùn)行卡頓現(xiàn)象,并降低能耗。

為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:

面向android系統(tǒng)后臺(tái)服務(wù)自動(dòng)喚醒的切斷方法,包括喚醒管理,所述喚醒管理用于避免喚醒不必要的服務(wù),其方法如下:

步驟(1.1),檢測到一次喚醒操作,將當(dāng)前所有決策因子初始化為1;

步驟(1.2),若上一時(shí)段內(nèi)目標(biāo)組件運(yùn)行在前臺(tái)活動(dòng)中,則將其決策因子置為1,否則將其決策因子置為上一時(shí)段決策因子大小以及服務(wù)利用率的加權(quán)平均值;

步驟(1.3),若當(dāng)前決策因子小于閾值,則切斷該喚醒操作,否則允許當(dāng)前喚醒操作。

所述步驟(1.2)中,加權(quán)平均值計(jì)算公式為:

其中,dft(s,d)表示t時(shí)段的組件s與組件d之間的決策因子,每隔單位時(shí)間會(huì)進(jìn)行更新,組件d為所述目標(biāo)組件,是喚醒流的目標(biāo)節(jié)點(diǎn),組件s是該喚醒流的源節(jié)點(diǎn),t-1表示t時(shí)段的上一時(shí)段,utilizationa(t)表示當(dāng)前服務(wù)在t時(shí)段內(nèi)執(zhí)行正常服務(wù)功能的時(shí)間百分比,act_num表示當(dāng)前服務(wù)所需執(zhí)行功能的數(shù)量。

所述喚醒管理是利用喚醒管理器,劫持系統(tǒng)的所有進(jìn)程間通信,并解析所有喚醒流的源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)信息,然后計(jì)算出源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)之間的決策因子,當(dāng)認(rèn)為需要切斷喚醒操作時(shí),通過劫持的方式阻止activitymanagerservice系統(tǒng)模塊啟動(dòng)這次喚醒。

本發(fā)明還可包括服務(wù)管理,所述服務(wù)管理用于禁用后臺(tái)的無效服務(wù),其方法如下:

步驟(2.1)初始化工作時(shí)間窗口和休眠時(shí)間窗口大小,進(jìn)入步驟(2.2);

步驟(2.2)令當(dāng)前后臺(tái)服務(wù)進(jìn)入工作時(shí)間窗口,在此期間服務(wù)可以使用系統(tǒng)計(jì)算和網(wǎng)絡(luò)資源,若在該窗口時(shí)間段內(nèi)該服務(wù)與前臺(tái)活動(dòng)發(fā)生過交互,則等本段工作時(shí)間窗口結(jié)束后進(jìn)入步驟(2.3),否則等本段工作時(shí)間窗口結(jié)束后進(jìn)入步驟(2.4);

步驟(2.3)令當(dāng)前后臺(tái)服務(wù)進(jìn)入休眠時(shí)間窗口,不得使用系統(tǒng)計(jì)算和網(wǎng)絡(luò)資源,若在此期間該后臺(tái)服務(wù)被前臺(tái)應(yīng)用喚醒,則立即重復(fù)步驟(2.1);否則直到本休眠時(shí)間窗口結(jié)束后,重復(fù)步驟(2.2);

步驟(2.4)將休眠時(shí)間窗口大小翻倍,進(jìn)入步驟(2.3)。

與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果是:

1)利用劫持方式識(shí)別android系統(tǒng)中不必要的服務(wù)喚醒,并提出了一種定量衡量喚醒必要性的決策因子;

2)提出了一種基于二進(jìn)制指數(shù)退避思想的后臺(tái)服務(wù)管理模式,通過設(shè)置工作時(shí)間窗口和休眠時(shí)間窗口,在保證正常的后臺(tái)服務(wù)功能的前提下,有效地限制無效后臺(tái)服務(wù)持續(xù)占用設(shè)備的網(wǎng)絡(luò)資源和計(jì)算資源。

3)本發(fā)明提出的系統(tǒng)方案不需要修改android系統(tǒng)源碼,用戶只需要經(jīng)過簡單易行的操作即可將本系統(tǒng)部署到設(shè)備上,可行性高。

附圖說明

圖1為本發(fā)明系統(tǒng)架構(gòu)原理圖。

圖2為面向android系統(tǒng)后臺(tái)服務(wù)自動(dòng)喚醒的切斷技術(shù)的喚醒管理器工作流程圖。

圖3為面向android系統(tǒng)后臺(tái)服務(wù)自動(dòng)喚醒的切斷技術(shù)的服務(wù)管理器工作流程圖。

具體實(shí)施方式

下面結(jié)合附圖和實(shí)施例詳細(xì)說明本發(fā)明的實(shí)施方式。

本發(fā)明面向android系統(tǒng)后臺(tái)服務(wù)自動(dòng)喚醒的切斷方法,主要設(shè)計(jì)思路是:

(1)對后臺(tái)服務(wù)的利用率進(jìn)行預(yù)測,并切斷與用戶體驗(yàn)完全無關(guān)的后臺(tái)服務(wù)的激活途徑;

(2)將所有未被使用的后臺(tái)服務(wù)殺死。

為此,如圖1所示,本發(fā)明設(shè)計(jì)了兩個(gè)重要的技術(shù)模塊:

(1)喚醒管理器,它能夠切斷不必要的后臺(tái)服務(wù)的喚醒,而且不會(huì)對用戶體驗(yàn)造成影響;

(2)服務(wù)管理器,它能夠根據(jù)用戶使用習(xí)慣,智能地禁用無用的后臺(tái)服務(wù)。

在android系統(tǒng)中,當(dāng)發(fā)起一個(gè)啟動(dòng)新服務(wù)的組件間通信(例如startservice()方法)時(shí),該請求會(huì)被發(fā)送到系統(tǒng)的activitymanagerservice模塊中。接收到請求之后,activitymanagerservice模塊會(huì)首先檢測該服務(wù)是否已經(jīng)被啟用。若否,activitymanagerservice模塊會(huì)開啟一個(gè)新的線程(受activitythread類控制),并在該新線程上啟動(dòng)指定的服務(wù)。在系統(tǒng)運(yùn)行時(shí),喚醒管理器會(huì)劫持與記錄每次服務(wù)喚醒的信息,并根據(jù)當(dāng)前后臺(tái)服務(wù)的使用情況決定是否允許服務(wù)的喚醒。此外,服務(wù)管理器也會(huì)監(jiān)控所有正在后臺(tái)運(yùn)行的服務(wù),并限制無效的服務(wù)持續(xù)占用系統(tǒng)的計(jì)算資源和網(wǎng)絡(luò)帶寬資源。以下兩段將詳細(xì)闡述喚醒管理器與服務(wù)管理器的設(shè)計(jì)。

喚醒管理器的目標(biāo)是避免喚醒不必要的服務(wù)。具體而言,喚醒管理器會(huì)劫持系統(tǒng)的所有進(jìn)程間通信,并解析所有喚醒流的源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)信息,然后計(jì)算出源節(jié)點(diǎn)和目標(biāo)節(jié)點(diǎn)之間的決策因子。喚醒管理器的切斷算法會(huì)根據(jù)決策因子的大小決定是否切斷本次喚醒。關(guān)于決策因子的設(shè)計(jì),基本思想如下:若一個(gè)組件被喚醒,卻沒有與前臺(tái)活動(dòng)發(fā)生任何的信息交互,則認(rèn)為這種喚醒是無用的(只會(huì)增加終端開銷);關(guān)于切斷算法的設(shè)計(jì),除了根據(jù)決策因子決定是否切斷一次喚醒以外,還會(huì)周全地考慮該切斷是否會(huì)影響正常的用戶體驗(yàn)。因此,本發(fā)明在喚醒管理器中設(shè)置了一個(gè)閾值β。若決策因子低于該閾值,喚醒管理器會(huì)認(rèn)為本次喚醒是不必要的,因此會(huì)通過劫持的方式阻止activitymanagerservice系統(tǒng)模塊啟動(dòng)這次喚醒。

對于喚醒管理器,如圖2所示,其喚醒管理主要分為四個(gè)步驟:(設(shè)當(dāng)前為t時(shí)段)

步驟(1.1)檢測到一次喚醒操作,開始初始化,將當(dāng)前所有決策因子df的值置為1,進(jìn)入步驟(1.2)。

步驟(1.2)若t-1時(shí)段內(nèi),組件d運(yùn)行在前臺(tái)活動(dòng)中,則將dft(s,d)置為1,進(jìn)入步驟(1.3),否則進(jìn)入步驟(1.4);

步驟(1.3)若t-1時(shí)段內(nèi)d沒有運(yùn)行在前臺(tái)活動(dòng)中,進(jìn)入步驟(1.4);

步驟(1.4)若dft(s,d)<β,則當(dāng)前喚醒是有害的,切斷之;若dft(s,d)≥β,不做額外操作。

其中,參數(shù)定義如下:

dft(s,d),t時(shí)段的組件s與組件d之間的決策因子,每隔單位時(shí)間會(huì)進(jìn)行更新。組件d為喚醒流的目標(biāo)節(jié)點(diǎn),組件s為該喚醒流的源節(jié)點(diǎn)utilizationa(t),當(dāng)前服務(wù)在t時(shí)段內(nèi)的利用率,即當(dāng)前服務(wù)在t時(shí)段內(nèi)執(zhí)行正常服務(wù)功能的時(shí)間百分比。

act_num,當(dāng)前服務(wù)所需執(zhí)行功能的數(shù)量。

β,決策因子閾值,低于該值則認(rèn)為本次喚醒為有害喚醒。

服務(wù)管理器的作用是禁用后臺(tái)的無效服務(wù)。如前文所述,喚醒管理器會(huì)阻止不必要的服務(wù)喚醒。然而,現(xiàn)有android系統(tǒng)中仍有相當(dāng)部分的無效服務(wù)無法通過上述方法禁用。例如,某些后臺(tái)服務(wù)對于一些特定的前臺(tái)操作是必要的,但是在完成該前臺(tái)操作后,這些服務(wù)卻會(huì)常駐后臺(tái),占用著終端的網(wǎng)絡(luò)和cpu資源。為解決這種問題,服務(wù)管理器的基本思路是:令無用的服務(wù)進(jìn)入休眠態(tài),僅當(dāng)前臺(tái)活動(dòng)需要時(shí)才將其喚醒。android系統(tǒng)對啟用的服務(wù)沒有加以限制。這些服務(wù)可以自由地使用cpu和網(wǎng)絡(luò)帶寬資源,即使它們對用戶體驗(yàn)并沒有任何幫助??紤]到android系統(tǒng)對后臺(tái)服務(wù)疏于管理的現(xiàn)狀,服務(wù)管理器為每個(gè)服務(wù)分別設(shè)置了工作時(shí)間窗口和休眠時(shí)間窗口,并采用了一種基于二進(jìn)制指數(shù)退避思想的后臺(tái)服務(wù)管理模式。當(dāng)服務(wù)處于工作時(shí)間窗口內(nèi)時(shí),服務(wù)可以使用cpu和網(wǎng)絡(luò)資源;當(dāng)服務(wù)處于休眠時(shí)間窗口內(nèi)時(shí),服務(wù)不能夠使用cpu和網(wǎng)絡(luò)資源。而對于每個(gè)服務(wù),這兩種窗口機(jī)制是交替運(yùn)行的。若某服務(wù)在工作時(shí)間窗口內(nèi)沒有與前臺(tái)進(jìn)程發(fā)生數(shù)據(jù)交互,服務(wù)管理器會(huì)將其休眠時(shí)間窗口加倍,使其休眠的時(shí)間更長。通過這種方式,服務(wù)管理器能夠逐步將很少被前臺(tái)活動(dòng)調(diào)用的服務(wù)置于休眠態(tài),使其不過度占用系統(tǒng)的計(jì)算資源和網(wǎng)絡(luò)資源。若在休眠過程中,前臺(tái)應(yīng)用需要用到后臺(tái)服務(wù),服務(wù)管理器會(huì)立刻將該服務(wù)調(diào)整到工作時(shí)間窗口內(nèi),并將其對應(yīng)的休眠時(shí)間窗口置為初始值。

對于服務(wù)管理器,如圖3所示,其服務(wù)管理主要分為四個(gè)步驟:

步驟(2.1)初始化工作時(shí)間窗口和休眠時(shí)間窗口大小。進(jìn)入步驟(2.2)。

步驟(2.2)令當(dāng)前后臺(tái)服務(wù)進(jìn)入工作時(shí)間窗口,在此期間服務(wù)可以使用系統(tǒng)計(jì)算和網(wǎng)絡(luò)資源。若在該窗口時(shí)間段內(nèi)該服務(wù)與前臺(tái)活動(dòng)發(fā)生過交互,則等本段工作時(shí)間窗口結(jié)束后進(jìn)入步驟(2.3),否則進(jìn)入步驟(2.4)。

步驟(2.3)令當(dāng)前后臺(tái)服務(wù)進(jìn)入休眠時(shí)間窗口,不得使用系統(tǒng)計(jì)算和網(wǎng)絡(luò)資源。若在此期間該后臺(tái)服務(wù)被前臺(tái)應(yīng)用喚醒,則立即重復(fù)步驟(2.1);否則直到本休眠時(shí)間窗口結(jié)束后,重復(fù)步驟(2.2)。

步驟(2.4)將休眠時(shí)間窗口大小翻倍。進(jìn)入步驟(2.3)。

綜上所述,本發(fā)明提出了一種基于android平臺(tái)的后臺(tái)應(yīng)用喚醒切斷方法,能夠有效地切斷非法后臺(tái)服務(wù)的喚醒途徑,并限制無效后臺(tái)服務(wù)持續(xù)占用系統(tǒng)的計(jì)算資源和網(wǎng)絡(luò)帶寬資源,使得對提升用戶體驗(yàn)沒有幫助的后臺(tái)服務(wù)泛濫和相互喚醒現(xiàn)象得到有效的緩解。

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