本發(fā)明涉及軟件開(kāi)發(fā)領(lǐng)域,尤其涉及一種基于android待機(jī)節(jié)能的任務(wù)優(yōu)化方法、設(shè)備及介質(zhì)。
背景技術(shù):
1、aosp是一個(gè)適用于移動(dòng)設(shè)備的android開(kāi)源操作系統(tǒng),任何開(kāi)發(fā)者能夠在這套開(kāi)源代碼上做任何修改。
2、alarm為android中的一種任務(wù)類(lèi)型,用于在指定時(shí)間或者經(jīng)過(guò)指定的時(shí)間周期后觸發(fā),應(yīng)用開(kāi)發(fā)者可以使用鬧鐘執(zhí)行生命周期之外的操作,可以設(shè)置長(zhǎng)期并且重復(fù)的任務(wù),被廣泛用于定時(shí)和提醒等場(chǎng)景。在待機(jī)的狀態(tài)下,應(yīng)用想要執(zhí)行任務(wù)或者某些操作,需要通過(guò)設(shè)置alarm來(lái)完成相應(yīng)的操作。因?yàn)閍larm能夠通過(guò)設(shè)置內(nèi)核的喚醒時(shí)間來(lái)喚醒cpu,從而達(dá)到執(zhí)行作業(yè)的目的。同時(shí)并不是所有alarm都能夠喚醒cpu,alarm分為wakeup類(lèi)型和非wakeup類(lèi)型,其中只有屬于非wakeup類(lèi)型的alarm才能夠喚醒cpu。
3、安卓的低電耗模式在用戶不插入電源并且屏幕關(guān)閉的情況下,通過(guò)限制應(yīng)用訪問(wèn)網(wǎng)絡(luò)和cpu來(lái)節(jié)省電源,同時(shí)在這段時(shí)間內(nèi),非wakeup類(lèi)型的alarm將不會(huì)喚醒內(nèi)核,即不會(huì)主動(dòng)觸發(fā),會(huì)延遲到下一次喚醒時(shí)觸發(fā)。同時(shí)系統(tǒng)會(huì)定時(shí)退出低電耗模式,來(lái)執(zhí)行這些被延遲的alarm,這種機(jī)制使得在低電耗模式期間沒(méi)有運(yùn)行的alarm在退出低電耗模式后集中觸發(fā)。
4、安卓的低電耗模式雖然能夠?qū)⒍喾N任務(wù)類(lèi)型合并到一起觸發(fā),但這種方式只是簡(jiǎn)單的將任務(wù)推遲到一個(gè)時(shí)間點(diǎn)進(jìn)行執(zhí)行,并沒(méi)有考慮在不改變執(zhí)行時(shí)間的前提下,對(duì)任務(wù)進(jìn)行合并,這種方式會(huì)對(duì)用戶體驗(yàn)造成一定影響。
5、google本身的standby?bucket有類(lèi)似的優(yōu)化機(jī)制,該機(jī)制通過(guò)用戶上一次某個(gè)應(yīng)用的時(shí)間以及使用該應(yīng)用的頻率,將應(yīng)用設(shè)置為5個(gè)等級(jí),分別是active、working?set、frequent、rare以及never。只有active不對(duì)應(yīng)用進(jìn)行限制,其他的四種等級(jí)的應(yīng)用都會(huì)存在一定程度上限制。原理是限制應(yīng)用在一段時(shí)間的喚醒數(shù)量來(lái)減少任務(wù)的喚醒數(shù),從而達(dá)到節(jié)約能耗的目的。standby?bucket的機(jī)制雖然能夠?qū)τ脩羰褂蒙俚膽?yīng)用進(jìn)行限制,但并沒(méi)有對(duì)用戶使用多的應(yīng)用進(jìn)行優(yōu)化,而這些應(yīng)用往往會(huì)設(shè)置更多的任務(wù)。在實(shí)際觀察中,絕大部分的應(yīng)用會(huì)處于active的狀態(tài),因此帶來(lái)的節(jié)能效果可能極小。同時(shí),用戶對(duì)于某些重要的應(yīng)用,使用頻率不是那么頻繁,但是對(duì)用戶的重要性卻很高,如果standby?bucket機(jī)制將其設(shè)置為非active的應(yīng)用,對(duì)其任務(wù)調(diào)度進(jìn)行限制,那么會(huì)對(duì)用戶體驗(yàn)造成極大影響。
技術(shù)實(shí)現(xiàn)思路
1、為了解決上述問(wèn)題,本發(fā)明提出了一種基于android待機(jī)節(jié)能的任務(wù)優(yōu)化方法、設(shè)備及介質(zhì)。
2、具體方案如下:
3、一種基于android待機(jī)節(jié)能的任務(wù)優(yōu)化方法,包括以下步驟:
4、對(duì)batchingalarmstore中隊(duì)列的加入機(jī)制進(jìn)行更改,為batchingalarmstore中的隊(duì)列設(shè)置wakeup屬性,隊(duì)列的wakeup屬性與隊(duì)列中的alarm的類(lèi)型一致;當(dāng)新的alarm需要加入隊(duì)列時(shí),判斷其需要加入的隊(duì)列的wakeup屬性是否與該新的alarm的類(lèi)型一致,如果一致,則加入該隊(duì)列;否則,新建一個(gè)隊(duì)列;
5、將batchingalarmstore中各隊(duì)列用于喚醒內(nèi)核時(shí)使用的隊(duì)列的起始時(shí)間mstart更改為結(jié)束時(shí)間mend;
6、當(dāng)batchingalarmstore中的某個(gè)隊(duì)列為精確alarm時(shí),將其后面相鄰的wakeup類(lèi)型的隊(duì)列的用于喚醒內(nèi)核的時(shí)間從隊(duì)列的起始時(shí)間mstart修改為隊(duì)列起始時(shí)間mstart減去隊(duì)列的模糊時(shí)間;隊(duì)列的模糊時(shí)間的計(jì)算方法為:隊(duì)列的結(jié)束時(shí)間mend與起始時(shí)間mstart的差與比例系數(shù)的乘積;比例系數(shù)根據(jù)隊(duì)列中是否存在active的alarm,和系統(tǒng)doze所處的狀態(tài)進(jìn)行設(shè)定。
7、進(jìn)一步的,在模糊率的設(shè)定中,當(dāng)隊(duì)列存在active的alarm時(shí),當(dāng)系統(tǒng)doze所處的狀態(tài)為standard時(shí),設(shè)定模糊率為0%;當(dāng)系統(tǒng)doze所處的狀態(tài)為light?doze時(shí),設(shè)定模糊率為10%;當(dāng)系統(tǒng)doze所處的狀態(tài)為deep?doze時(shí),設(shè)定模糊率為20%。
8、進(jìn)一步的,在模糊率的設(shè)定中,當(dāng)隊(duì)列不存在active的alarm時(shí),當(dāng)系統(tǒng)doze所處的狀態(tài)為standard時(shí),設(shè)定模糊率為0%;當(dāng)系統(tǒng)doze所處的狀態(tài)為light?doze時(shí),設(shè)定模糊率為20%;當(dāng)系統(tǒng)doze所處的狀態(tài)為deep?doze時(shí),設(shè)定模糊率為40%。
9、一種基于android待機(jī)節(jié)能的任務(wù)優(yōu)化終端設(shè)備,包括處理器、存儲(chǔ)器以及存儲(chǔ)在所述存儲(chǔ)器中并可在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)本發(fā)明實(shí)施例上述的方法的步驟。
10、一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)本發(fā)明實(shí)施例上述的方法的步驟。
11、本發(fā)明采用如上技術(shù)方案,減少了喚醒內(nèi)核的次數(shù),達(dá)到減少內(nèi)耗的目的。
1.一種基于android待機(jī)節(jié)能的任務(wù)優(yōu)化方法,其特征在于,包括:
2.?根據(jù)權(quán)利要求1所述的基于android待機(jī)節(jié)能的任務(wù)優(yōu)化方法,其特征在于:在模糊率的設(shè)定中,當(dāng)隊(duì)列存在active的alarm時(shí),當(dāng)系統(tǒng)doze所處的狀態(tài)為standard時(shí),設(shè)定模糊率為0%;當(dāng)系統(tǒng)doze所處的狀態(tài)為light?doze時(shí),設(shè)定模糊率為10%;當(dāng)系統(tǒng)doze所處的狀態(tài)為deep?doze時(shí),設(shè)定模糊率為20%。
3.?根據(jù)權(quán)利要求1所述的基于android待機(jī)節(jié)能的任務(wù)優(yōu)化方法,其特征在于:在模糊率的設(shè)定中,當(dāng)隊(duì)列不存在active的alarm時(shí),當(dāng)系統(tǒng)doze所處的狀態(tài)為standard時(shí),設(shè)定模糊率為0%;當(dāng)系統(tǒng)doze所處的狀態(tài)為light?doze時(shí),設(shè)定模糊率為20%;當(dāng)系統(tǒng)doze所處的狀態(tài)為deep?doze時(shí),設(shè)定模糊率為40%。
4.一種基于android待機(jī)節(jié)能的任務(wù)優(yōu)化終端設(shè)備,其特征在于:包括處理器、存儲(chǔ)器以及存儲(chǔ)在所述存儲(chǔ)器中并在所述處理器上運(yùn)行的計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí)實(shí)現(xiàn)如權(quán)利要求1~3中任一所述方法的步驟。
5.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)存儲(chǔ)有計(jì)算機(jī)程序,其特征在于:所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)如權(quán)利要求1~3中任一所述方法的步驟。