本發(fā)明涉及數(shù)字通信領(lǐng)域,特別是涉及一種心跳報(bào)文的發(fā)送方法和裝置。
背景技術(shù):
在移動(dòng)通信網(wǎng)絡(luò)中,移動(dòng)終端的無線資源控制(英文:radioresourcecontrol,縮寫:rrc)模塊主要負(fù)責(zé)處理移動(dòng)終端與陸地?zé)o線接入網(wǎng)(英文:umtsterrestrialradioaccessnetwork,縮寫:utran)之間控制平面的第三層信息。
為了較好地管理移動(dòng)網(wǎng)絡(luò)資源,rrc連接狀態(tài)會(huì)維護(hù)至少三種主要的連接狀態(tài),包括專用通道(英文:dedicatedchannel,縮寫:dch)狀態(tài)、前向接入通道(英文:forwardaccesschannel,縮寫:fach)狀態(tài)和空閑狀態(tài)(英文:idle)。當(dāng)移動(dòng)終端的rrc連接狀態(tài)處于dch狀態(tài)時(shí),所述移動(dòng)終端占用dch,可以進(jìn)行話音或大量的數(shù)據(jù)業(yè)務(wù)的處理,需要較大的電量維護(hù)dch狀態(tài)。當(dāng)移動(dòng)終端的rrc連接狀態(tài)處于fach狀態(tài)時(shí),所述移動(dòng)終端占用fach,所述移動(dòng)終端可以進(jìn)行少量的數(shù)據(jù)業(yè)務(wù)處理,需要比較少的電量開銷維護(hù)fach狀態(tài)。當(dāng)移動(dòng)終端的rrc連接狀態(tài)處于idle狀態(tài)時(shí),所述移動(dòng)終端無法進(jìn)行網(wǎng)絡(luò)交互,電量消耗很小。
當(dāng)移動(dòng)終端的rrc連接狀態(tài)為dch狀態(tài)時(shí),若一段空閑時(shí)間內(nèi)沒有數(shù)據(jù)傳輸,所述移動(dòng)終端的rrc連接狀態(tài)會(huì)從dch狀態(tài)改變?yōu)閒ach狀態(tài),這段沒有數(shù)據(jù)傳輸?shù)目臻e時(shí)間可以稱為dch狀態(tài)空閑時(shí)的?;顣r(shí)間(英文:dchtail)。當(dāng)移動(dòng)終端的rrc連接狀態(tài)為fach狀態(tài)時(shí),若一段空閑時(shí)間內(nèi)沒有數(shù)據(jù)傳輸,所述移動(dòng)終端的rrc連接狀態(tài)會(huì)從fach狀態(tài)改變?yōu)閕dle狀態(tài),這段沒有數(shù)據(jù)傳輸?shù)目臻e時(shí)間可以稱為fach狀態(tài)空閑時(shí)的保活時(shí)間(英文:fachtail)。在fach狀態(tài)或idle狀態(tài)下,若移動(dòng)終端發(fā)生了數(shù)據(jù)傳輸,所述移動(dòng)終端的rrc連接狀態(tài)將改變?yōu)閐ch狀態(tài)。所述移動(dòng)終端的rrc連接狀態(tài)從fach狀態(tài)改變?yōu)閐ch狀態(tài)或從idle狀態(tài)改變?yōu)閐ch狀態(tài)時(shí),會(huì)對所述移動(dòng)終端產(chǎn)生一定的延遲。
可以看出,不同的rrc連接狀態(tài)耗電量不同。以移動(dòng)終端中安裝的新聞閱讀型的應(yīng)用(英文:application,縮寫:app)為例,用戶在移動(dòng)終端上使用這類app時(shí)不會(huì)頻繁地對移動(dòng)終端進(jìn)行操作(即移動(dòng)終端不會(huì)有持續(xù)的網(wǎng)絡(luò)數(shù)據(jù)交互),而rrc各個(gè)連接狀態(tài)的tailtime(空閑時(shí)的狀態(tài)?;顣r(shí)間)又較為短暫。上述這類場景意味著用戶移動(dòng)終端的rrc連接狀態(tài)需要頻繁地在dch狀態(tài)、fach狀態(tài)、idle狀態(tài)三種連接狀態(tài)間進(jìn)行遷移。狀態(tài)遷移引入的系統(tǒng)延時(shí)將大幅地增大app網(wǎng)絡(luò)交互延遲,影響用戶的真實(shí)體驗(yàn)。
技術(shù)實(shí)現(xiàn)要素:
為了解決上述技術(shù)問題,本發(fā)明提供了一種心跳報(bào)文的發(fā)送方法和裝置,在所述app處于活躍狀態(tài)下,通過心跳報(bào)文?;顁rc連接狀態(tài),使得不會(huì)在用戶操作時(shí)出現(xiàn)能量狀態(tài)切換的情況,從而不會(huì)給用戶體現(xiàn)出因切換能量狀態(tài)所帶來的系統(tǒng)延遲,提高了用戶體驗(yàn)。
本發(fā)明實(shí)施例公開了如下技術(shù)方案:
一種心跳報(bào)文的發(fā)送方法,應(yīng)用于移動(dòng)終端,所述方法包括:
從存儲(chǔ)單元中調(diào)取app所對應(yīng)的設(shè)定心跳間隔,所述app安裝在所述移動(dòng)終端中;
根據(jù)預(yù)設(shè)最小間隔,對所述設(shè)定心跳間隔進(jìn)行評估,以便根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔,并將調(diào)整結(jié)果作為對應(yīng)所述app的設(shè)定心跳間隔更新到所述存儲(chǔ)單元中,所述預(yù)設(shè)最小間隔為保持所述移動(dòng)終端處于完整能量狀態(tài)的心跳報(bào)文發(fā)送間隔;
若識(shí)別所述app處于活躍狀態(tài),以從所述存儲(chǔ)單元中獲取的所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,使得所述移動(dòng)終端在所述app處于活躍狀態(tài)的過程中不會(huì)觸發(fā)所述移動(dòng)終端能量狀態(tài)的切換條件,從而所述移動(dòng)終端的能量狀態(tài)保持在所述完整能量狀態(tài)不變。
可選的,所述根據(jù)預(yù)設(shè)最小間隔,對所述設(shè)定心跳間隔進(jìn)行評估,具體包括:
根據(jù)所述設(shè)定心跳間隔發(fā)送心跳報(bào)文;
根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第一響應(yīng)時(shí)間;
依據(jù)所述預(yù)設(shè)最小間隔發(fā)送心跳報(bào)文;
根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第二響應(yīng)時(shí)間;
比對所述第一響應(yīng)時(shí)間和第二響應(yīng)時(shí)間之間的差值是否大于預(yù)設(shè)閾值;
若所述差值大于所述預(yù)設(shè)閾值,確定評估結(jié)果為不好,若所述差值小于所述預(yù)設(shè)閾值,確定評估結(jié)果為好。
可選的,所述根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔,包括:
若相鄰的兩次評估過程的評估結(jié)果均為不好,對所述設(shè)定心跳間隔進(jìn)行調(diào)整,將所述設(shè)定心跳間隔調(diào)小第一時(shí)長;將調(diào)整后的設(shè)定心跳間隔作為所述設(shè)定心跳間隔,重新執(zhí)行對所述設(shè)定心跳間隔進(jìn)行評估;
若相鄰的兩次評估過程的評估結(jié)果均為好,對所述設(shè)定心跳間隔進(jìn)行調(diào)整,將所述設(shè)定心跳間隔調(diào)大第二時(shí)長;將調(diào)整后的設(shè)定心跳間隔作為所述設(shè)定心跳間隔,重新執(zhí)行對所述設(shè)定心跳間隔進(jìn)行評估;
若相鄰的兩次評估過程的評估結(jié)果從好變?yōu)椴缓?,將這兩次評估過程中評估結(jié)果為好的評估過程確定為目標(biāo)評估過程,將所述目標(biāo)評估過程中所評估的設(shè)定心跳間隔作為目標(biāo)間隔,并暫停對所述設(shè)定心跳間隔進(jìn)行評估;
將所述目標(biāo)間隔更新到所述存儲(chǔ)單元中,作為所述app對應(yīng)的設(shè)定心跳間隔。
可選的,所述根據(jù)所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,包括:
根據(jù)所述設(shè)定心跳間隔連續(xù)發(fā)送多次心跳報(bào)文;
根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第一響應(yīng)時(shí)間,包括:
根據(jù)對應(yīng)心跳報(bào)文返回的每一次響應(yīng)報(bào)文,確定出一個(gè)響應(yīng)時(shí)間;計(jì)算多個(gè)響應(yīng)時(shí)間的均值,得到所述第一響應(yīng)時(shí)間;
依據(jù)預(yù)設(shè)最小間隔發(fā)送心跳報(bào)文,包括:
依據(jù)預(yù)設(shè)最小間隔連續(xù)發(fā)送多次心跳報(bào)文;
根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第二響應(yīng)時(shí)間,包括:
根據(jù)對應(yīng)心跳報(bào)文返回的每一次響應(yīng)報(bào)文,確定出一個(gè)響應(yīng)時(shí)間;計(jì)算多個(gè)響應(yīng)時(shí)間的均值,得到所述第二響應(yīng)時(shí)間。
可選的,若識(shí)別所述app處于活躍狀態(tài),所述以從所述存儲(chǔ)單元中獲取的所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,包括:
在發(fā)送一次心跳報(bào)文后,在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)檢測所 述移動(dòng)終端是否發(fā)送業(yè)務(wù)數(shù)據(jù);
若是,停止發(fā)送心跳報(bào)文;
從所述移動(dòng)終端發(fā)送業(yè)務(wù)數(shù)據(jù)的時(shí)間點(diǎn)開始,在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)繼續(xù)檢測所述移動(dòng)終端是否發(fā)送業(yè)務(wù)數(shù)據(jù),直到在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)未檢測到所述移動(dòng)終端發(fā)送業(yè)務(wù)數(shù)據(jù);
繼續(xù)以所述設(shè)定心跳間隔發(fā)送心跳報(bào)文。
可選的,在所述從存儲(chǔ)單元中調(diào)取app所對應(yīng)的設(shè)定心跳間隔之前,還包括:
檢測所述app的狀態(tài),若所述app處于后臺(tái)狀態(tài),執(zhí)行所述從存儲(chǔ)單元中調(diào)取app所對應(yīng)的設(shè)定心跳間隔。
可選的,所述識(shí)別所述app處于活躍狀態(tài),包括:
當(dāng)所述app處于前臺(tái)狀態(tài)時(shí),判斷預(yù)設(shè)時(shí)間內(nèi)所述app是否發(fā)生業(yè)務(wù)數(shù)據(jù)交互,若是,識(shí)別所述app處于活躍狀態(tài)。
一種心跳報(bào)文的發(fā)送裝置,應(yīng)用于移動(dòng)終端,所述裝置包括:
調(diào)取單元,用于從存儲(chǔ)單元中調(diào)取app所對應(yīng)的設(shè)定心跳間隔,所述app安裝在所述移動(dòng)終端中;
評估單元,用于根據(jù)預(yù)設(shè)最小間隔,對所述設(shè)定心跳間隔進(jìn)行評估,以便根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔,并將調(diào)整結(jié)果作為對應(yīng)所述app的設(shè)定心跳間隔更新到所述存儲(chǔ)單元中,所述預(yù)設(shè)最小間隔為保持所述移動(dòng)終端處于完整能量狀態(tài)的心跳報(bào)文發(fā)送間隔;若識(shí)別所述app處于活躍狀態(tài),觸發(fā)心跳發(fā)送單元;
心跳發(fā)送單元,用于以從所述存儲(chǔ)單元中獲取的所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,使得所述移動(dòng)終端在所述app處于活躍狀態(tài)的過程中不會(huì)觸發(fā)所述移動(dòng)終端能量狀態(tài)的切換條件,從而所述移動(dòng)終端的能量狀態(tài)保持在所述完整能量狀態(tài)不變。
可選的,所述評估單元包括:
第一發(fā)送子單元,用于根據(jù)所述設(shè)定心跳間隔發(fā)送心跳報(bào)文;
第一確定子單元,用于根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第一響應(yīng)時(shí)間;
第二發(fā)送子單元,用于依據(jù)所述預(yù)設(shè)最小間隔發(fā)送心跳報(bào)文;
第二確定子單元,用于根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第二響應(yīng)時(shí)間;
比對子單元,用于比對所述第一響應(yīng)時(shí)間和第二響應(yīng)時(shí)間之間的差值是否大于預(yù)設(shè)閾值;
評估子單元,用于若所述差值大于所述預(yù)設(shè)閾值,確定評估結(jié)果為不好,若所述差值小于所述預(yù)設(shè)閾值,確定評估結(jié)果為好。
可選的,還包括調(diào)整單元:
若相鄰的兩次評估過程的評估結(jié)果均為不好,所述調(diào)整單元,用于對所述設(shè)定心跳間隔進(jìn)行調(diào)整,將所述設(shè)定心跳間隔調(diào)小第一時(shí)長;將調(diào)整后的設(shè)定心跳間隔作為所述設(shè)定心跳間隔,重新執(zhí)行對所述設(shè)定心跳間隔進(jìn)行評估;
若相鄰的兩次評估過程的評估結(jié)果均為好,所述調(diào)整單元還用于對所述設(shè)定心跳間隔進(jìn)行調(diào)整,將所述設(shè)定心跳間隔調(diào)大第二時(shí)長;將調(diào)整后的設(shè)定心跳間隔作為所述設(shè)定心跳間隔,重新執(zhí)行對所述設(shè)定心跳間隔進(jìn)行評估;
若相鄰的兩次評估過程的評估結(jié)果從好變?yōu)椴缓?,所述調(diào)整單元還用于將這兩次評估過程中評估結(jié)果為好的評估過程確定為目標(biāo)評估過程,將所述目標(biāo)評估過程中所評估的設(shè)定心跳間隔作為目標(biāo)間隔,并暫停對所述設(shè)定心跳間隔進(jìn)行評估;
所述調(diào)整單元還用于將所述目標(biāo)間隔更新到所述存儲(chǔ)單元中,作為所述app對應(yīng)的設(shè)定心跳間隔。
可選的,
所述第一發(fā)送子單元還用于根據(jù)所述設(shè)定心跳間隔連續(xù)發(fā)送多次心跳報(bào)文;
所述第一確定子單元還用于根據(jù)對應(yīng)心跳報(bào)文返回的每一次響應(yīng)報(bào)文,確定出一個(gè)響應(yīng)時(shí)間;計(jì)算多個(gè)響應(yīng)時(shí)間的均值,得到所述第一響應(yīng)時(shí)間;
所述第二發(fā)送子單元還用于依據(jù)預(yù)設(shè)最小間隔連續(xù)發(fā)送多次心跳報(bào)文;
所述第二確定子單元還用于根據(jù)對應(yīng)心跳報(bào)文返回的每一次響應(yīng)報(bào)文,確定出一個(gè)響應(yīng)時(shí)間;計(jì)算多個(gè)響應(yīng)時(shí)間的均值,得到所述第二響應(yīng)時(shí)間。
可選的,還包括檢測單元:
所述檢測單元,用于在所述心跳發(fā)送單元發(fā)送一次心跳報(bào)文后,在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)檢測所述移動(dòng)終端是否發(fā)送業(yè)務(wù)數(shù)據(jù);
若是,觸發(fā)所述心跳發(fā)送單元停止發(fā)送心跳報(bào)文;
所述檢測單元還用于從所述移動(dòng)終端發(fā)送業(yè)務(wù)數(shù)據(jù)的時(shí)間點(diǎn)開始,在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)繼續(xù)檢測所述移動(dòng)終端是否發(fā)送業(yè)務(wù)數(shù)據(jù),直到在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)未檢測到所述移動(dòng)終端發(fā)送業(yè)務(wù)數(shù)據(jù)時(shí),觸發(fā)所述心跳發(fā)送單元繼續(xù)以所述設(shè)定心跳間隔發(fā)送心跳報(bào)文。
可選的,還包括狀態(tài)判斷單元:
所述狀態(tài)判斷單元,用于在觸發(fā)所述調(diào)取單元之前檢測所述app的狀態(tài),若所述app處于后臺(tái)狀態(tài),觸發(fā)所述調(diào)取單元。
可選的,所述評估單元還用于當(dāng)所述app處于前臺(tái)狀態(tài)時(shí),判斷預(yù)設(shè)時(shí)間內(nèi)所述app是否發(fā)生業(yè)務(wù)數(shù)據(jù)交互,若是,識(shí)別所述app處于活躍狀態(tài)。
由上述技術(shù)方案可以看出,根據(jù)保持所述移動(dòng)終端處于完整能量狀態(tài)的預(yù)設(shè)最小間隔,對所述設(shè)定心跳間隔進(jìn)行評估,從而根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔,并將調(diào)整結(jié)果作為對應(yīng)app的設(shè)定心跳間隔更新到所述存儲(chǔ)單元中,若識(shí)別所述app處于活躍狀態(tài),以從所述存儲(chǔ)單元中獲取的所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,使得所述移動(dòng)終端在所述app處于活躍狀態(tài)的過程中,將傳統(tǒng)的發(fā)送心跳報(bào)文作為一種形成數(shù)據(jù)傳輸?shù)男问?,按照?jīng)過調(diào)整后的設(shè)定心跳間隔發(fā)送的心跳報(bào)文,以確保所述移動(dòng)終端在滿足切換能量狀態(tài)的時(shí)間條件之前,會(huì)出現(xiàn)一定的數(shù)據(jù)傳輸,從而在所述app處于活躍狀態(tài)下,所述移動(dòng)終端的能量狀態(tài)可以一直保持在所述完整能量狀態(tài)不變,不會(huì)在用戶操作時(shí)出現(xiàn)能量狀態(tài)切換的情況,從而不會(huì)給用戶體現(xiàn)出因切換能量狀態(tài)所帶來的系統(tǒng)延遲,提高了用戶體驗(yàn)。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種心跳報(bào)文的發(fā)送方法的方法流程圖;
圖2為本發(fā)明實(shí)施例提供的一種判斷是否發(fā)送心跳報(bào)文方法的方法流程圖;
圖3為本發(fā)明實(shí)施例提供的一種心跳間隔評估方法的方法流程圖;
圖4為本發(fā)明實(shí)施例提供的一種心跳報(bào)文的發(fā)送裝置的裝置結(jié)構(gòu)圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
鑒于移動(dòng)終端的rrc連接狀態(tài)的耗電特點(diǎn)和tailtime較為短暫的特點(diǎn),為了簡化rrc連接狀態(tài)變遷對移動(dòng)終端能耗與網(wǎng)絡(luò)通訊效率造成的影響,發(fā)明人建立一個(gè)移動(dòng)終端的能量模型來描述這種rrc連接狀態(tài)的變化,即:發(fā)明人將移動(dòng)終端的能量狀態(tài)分為空閑狀態(tài)(idle)、半能量狀態(tài)(fach)、完整能量狀態(tài)(dch)三種能量狀態(tài),分別對應(yīng)相應(yīng)的rrc連接狀態(tài)。rrc連接狀態(tài)處于idle狀態(tài)時(shí),移動(dòng)終端可以認(rèn)為處于能量狀態(tài)中的空閑狀態(tài),此時(shí)由于移動(dòng)終端無網(wǎng)絡(luò)交互,移動(dòng)終端僅需少量的電能即可維持該空閑狀態(tài);當(dāng)rrc連接狀態(tài)處于fach狀態(tài)時(shí),移動(dòng)終端可以認(rèn)為處于半能量狀態(tài)下。在半能量狀態(tài)下,由于移動(dòng)終端僅能夠使用共享信道,且數(shù)據(jù)傳輸速率很低,移動(dòng)終端維持這個(gè)狀態(tài)所消耗的電量大約是維持完整能量狀態(tài)時(shí)的一半;當(dāng)rrc連接狀態(tài)處于dch狀態(tài)時(shí),移動(dòng)終端可以認(rèn)為處于完整能量狀態(tài)下,由于移動(dòng)終端此時(shí)占用專有信道,可以獲取最大的帶寬傳輸能力,同時(shí)也會(huì)消耗更多的電量。
能量狀態(tài)的切換條件一般是移動(dòng)終端沒有數(shù)據(jù)傳輸?shù)臅r(shí)間長度,可以和rrc連接狀態(tài)改變的tailtime相同。能量狀態(tài)的切換可以起到高效的電量使用,有效降低了移動(dòng)終端的充電頻率。然而能量狀態(tài)切換時(shí),尤其是從低耗電量的能量狀態(tài)切換到高耗電量的能量狀態(tài)時(shí),同樣會(huì)造成通信鏈路的額外延遲(這種延遲來源于rrc狀態(tài)切換帶來的系統(tǒng)延遲)。而且,從越低耗電 量的能量狀態(tài)切換到高耗電量的能量狀態(tài)的過程所造成的系統(tǒng)延遲就越長。例如,從半能量狀態(tài)切換到完整能量狀態(tài)會(huì)對系統(tǒng)造成1.5秒左右的延遲,從空閑狀態(tài)切換到完整能量狀態(tài)會(huì)對系統(tǒng)造成2秒左右的延遲。這些延遲會(huì)對用戶帶來不好的體驗(yàn)。
而且,能量狀態(tài)的切換條件中,持續(xù)無數(shù)據(jù)傳輸?shù)臅r(shí)間是比較短的,很有可能造成用戶正在使用移動(dòng)終端時(shí),例如進(jìn)行看新聞、看小說等長時(shí)間不需要移動(dòng)終端進(jìn)行數(shù)據(jù)交互的功能時(shí),移動(dòng)終端就已經(jīng)根據(jù)切換條件將能量狀態(tài)切換到耗電量低的能量狀態(tài)。切換后,若用戶開始操作移動(dòng)終端,例如翻頁、評論等需要移動(dòng)終端出現(xiàn)數(shù)據(jù)交互的操作時(shí),會(huì)導(dǎo)致所述移動(dòng)終端將能量狀態(tài)切換回耗電量高的能量狀態(tài)。能量狀態(tài)的切換會(huì)直接導(dǎo)致明顯的系統(tǒng)延遲,并直接將系統(tǒng)延遲體現(xiàn)給正在對所述移動(dòng)終端進(jìn)行操作的用戶,例如對操作反應(yīng)的遲鈍等,對用戶帶來不好的體驗(yàn)。
為了解決這個(gè)問題,發(fā)明人對傳統(tǒng)的心跳報(bào)文進(jìn)行研究。心跳報(bào)文主要是用于數(shù)據(jù)鏈路的保活,例如,移動(dòng)終端與通訊基站建立數(shù)據(jù)連接后,可以實(shí)現(xiàn)與其他通信設(shè)備之間的遠(yuǎn)程數(shù)據(jù)傳輸、通話等。移動(dòng)終端在建立了與其他設(shè)備的數(shù)據(jù)連接后,連接鏈路上并不一定保持時(shí)刻都有數(shù)據(jù)的傳輸,當(dāng)長時(shí)間沒有數(shù)據(jù)傳輸時(shí),這條連接鏈路將處于空閑鏈路。為了保證空閑鏈路的有效性、可用性,一般通過持續(xù)發(fā)送心跳報(bào)文進(jìn)行鏈路?;睢0l(fā)明人發(fā)現(xiàn),心跳報(bào)文對系統(tǒng)資源消耗很少,而且可以形成一定的數(shù)據(jù)傳輸,具有將所述心跳報(bào)文應(yīng)用于移動(dòng)終端,使用心跳報(bào)文保活rrc連接狀態(tài),也就是相當(dāng)于使用心跳報(bào)文?;钜苿?dòng)終端的能量狀態(tài)。尤其是適用于當(dāng)移動(dòng)終端有app處于活躍狀態(tài)時(shí),對移動(dòng)終端的能量狀態(tài)的保活。
但是,傳統(tǒng)的心跳報(bào)文的發(fā)送間隔一般較長,并不適合用于保活能量狀態(tài),需要有針對心跳報(bào)文?;钅芰繝顟B(tài)的策略。為此,本發(fā)明實(shí)施例提供了一種心跳報(bào)文的發(fā)送方法和裝置,根據(jù)保持所述移動(dòng)終端處于完整能量狀態(tài)的預(yù)設(shè)最小間隔,對所述設(shè)定心跳間隔進(jìn)行評估,從而根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔,并將調(diào)整結(jié)果作為對應(yīng)app的設(shè)定心跳間隔更新到所述存儲(chǔ)單元中,若識(shí)別所述app處于活躍狀態(tài),以從所述存儲(chǔ)單元中獲取的所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,使得所述移動(dòng)終端在所述app處于活躍狀態(tài)的 過程中,將傳統(tǒng)的發(fā)送心跳報(bào)文作為一種形成數(shù)據(jù)傳輸?shù)男问?,按照?jīng)過調(diào)整后的設(shè)定心跳間隔發(fā)送的心跳報(bào)文,以確保所述移動(dòng)終端在滿足切換能量狀態(tài)的時(shí)間條件之前,會(huì)出現(xiàn)一定的數(shù)據(jù)傳輸,從而在所述app處于活躍狀態(tài)下,所述移動(dòng)終端的能量狀態(tài)可以一直保持在所述完整能量狀態(tài)不變,不會(huì)在用戶操作時(shí)出現(xiàn)能量狀態(tài)切換的情況,從而不會(huì)給用戶體現(xiàn)出因切換能量狀態(tài)所帶來的系統(tǒng)延遲,提高了用戶體驗(yàn)。
需要注意的是,由于按照所述設(shè)定心跳間隔發(fā)送心跳報(bào)文是在所述app處于活躍狀態(tài)時(shí),故發(fā)送心跳報(bào)文的過程中應(yīng)該時(shí)常會(huì)出現(xiàn)其他數(shù)據(jù)傳輸,例如移動(dòng)終端發(fā)送業(yè)務(wù)數(shù)據(jù)。為了節(jié)約移動(dòng)終端的系統(tǒng)資源,在發(fā)送心跳報(bào)文的過程中,當(dāng)檢測到出現(xiàn)一次發(fā)送業(yè)務(wù)數(shù)據(jù)的行為時(shí),由于發(fā)生業(yè)務(wù)數(shù)據(jù)相當(dāng)于重置了記錄無數(shù)據(jù)傳輸時(shí)間的定時(shí)器所記錄的時(shí)間,和發(fā)送心跳報(bào)文的功能一樣,都起到了對所述移動(dòng)終端?;钅芰繝顟B(tài)的作用。故可以認(rèn)為這次業(yè)務(wù)數(shù)據(jù)的發(fā)送相當(dāng)于發(fā)送了一次心跳報(bào)文。從這次業(yè)務(wù)數(shù)據(jù)的發(fā)送時(shí)間開始重新以所述預(yù)設(shè)發(fā)送間隔發(fā)送心跳報(bào)文,從而減少了所述app處于活躍狀態(tài)時(shí)心跳報(bào)文的發(fā)送次數(shù),節(jié)約了系統(tǒng)資源,降低了發(fā)送心跳報(bào)文的耗電量。
實(shí)施例一
圖1本發(fā)明實(shí)施例提供的一種心跳報(bào)文的發(fā)送方法的方法流程圖,應(yīng)用于移動(dòng)終端,所述方法包括:
s101:從存儲(chǔ)單元中調(diào)取應(yīng)用app所對應(yīng)的設(shè)定心跳間隔,所述app安裝在所述移動(dòng)終端中。
舉例說明,所述存儲(chǔ)單元可以為所述移動(dòng)終端自身的持久存儲(chǔ)器中劃分出來專用于存儲(chǔ)設(shè)定心跳間隔的存儲(chǔ)區(qū)域,也可以是移動(dòng)終端緩存中用于存儲(chǔ)所述設(shè)定心跳間隔的專門存儲(chǔ)區(qū)域。
實(shí)施本發(fā)明實(shí)施例提供的心跳報(bào)文?;钅芰繝顟B(tài)策略的執(zhí)行主體可以是所述移動(dòng)終端的操作系統(tǒng)或者是所述移動(dòng)終端中運(yùn)行的一個(gè)應(yīng)用程序,具體的,所述策略可以由軟件承載,或者錄入在一段代碼或程序中。通過在后臺(tái)運(yùn)行該軟件、代碼或程序來實(shí)施所述策略。所述app為與所述策略相關(guān)聯(lián)的app。本發(fā)明并不限定這個(gè)app的具體類型,例如,可以是用戶常用的app 之一。在實(shí)施本發(fā)明實(shí)施例提供的所述策略的過程中,可以根據(jù)需求更改與所述策略相關(guān)聯(lián)的app,或者,當(dāng)與所述策略相關(guān)聯(lián)的app不能運(yùn)行或從移動(dòng)終端中移除時(shí),也可以更換其他app與所述策略相關(guān)聯(lián)。但是,一般情況下,在同一時(shí)間窗內(nèi),所述策略同時(shí)只與一個(gè)app建立關(guān)聯(lián)關(guān)系。在所述策略與不同app關(guān)聯(lián)時(shí),所對應(yīng)的設(shè)定心跳間隔有可能不同,也有可能相同。
需要注意的是,由于所述app在處于前臺(tái)狀態(tài)時(shí),可能會(huì)有較多的數(shù)據(jù)交互,若在所述app處于前臺(tái)狀態(tài)對所述設(shè)定心跳間隔進(jìn)行評估,可能會(huì)受到來自數(shù)據(jù)傳輸?shù)母蓴_,影響到評估的準(zhǔn)確性。故在從存儲(chǔ)單元中調(diào)取app所對應(yīng)的設(shè)定心跳間隔進(jìn)行評估之前,可以先確定出所述app的狀態(tài)。
可選的,在s101之前,還包括:
檢測所述app的狀態(tài),若所述app處于后臺(tái)狀態(tài),執(zhí)行s101。
這里所述的后臺(tái)狀態(tài)可以理解為至少包括兩種情況。
第一種情況,所述app處于所述移動(dòng)終端的后臺(tái),且前臺(tái)沒有處于活躍狀態(tài)的其他app。第二種情況,所述移動(dòng)終端處于鎖屏狀態(tài)。在所述移動(dòng)終端進(jìn)入鎖屏狀態(tài)之前,不論所述app具體是處于前臺(tái)狀態(tài)還是后臺(tái)狀態(tài),當(dāng)所述移動(dòng)終端進(jìn)入鎖屏狀態(tài)后,所述app都會(huì)進(jìn)入后臺(tái)狀態(tài)。
當(dāng)所述app處于后臺(tái)狀態(tài)時(shí),所述移動(dòng)終端基本上不會(huì)出現(xiàn)什么數(shù)據(jù)傳輸,對評估所帶來的干擾相對較少,可以得到更為準(zhǔn)確的評估結(jié)果,從而獲取更為準(zhǔn)確的調(diào)整結(jié)果。
需要注意的是,本發(fā)明實(shí)施例中所述的后臺(tái)狀態(tài),不論是上述的第一種情況還是第二種情況,都需要滿足在所述app處于后臺(tái)狀態(tài)時(shí),所述app不會(huì)保持持續(xù)的數(shù)據(jù)下載?;蛘哒f,所述后臺(tái)狀態(tài)可以理解為所述移動(dòng)終端沒有數(shù)據(jù)交互的一種狀態(tài)。
s102:根據(jù)預(yù)設(shè)最小間隔,對所述設(shè)定心跳間隔進(jìn)行評估,以便根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔,并將調(diào)整結(jié)果作為對應(yīng)所述app的設(shè)定心跳間隔更新到所述存儲(chǔ)單元中,所述預(yù)設(shè)最小間隔為保持所述移動(dòng)終端處于完整能量狀態(tài)的心跳報(bào)文發(fā)送間隔。
舉例說明,所述完整能量狀態(tài)可以理解為所述移動(dòng)終端可以穩(wěn)定保持的一種能量狀態(tài),不會(huì)因?yàn)槌霈F(xiàn)了數(shù)據(jù)傳輸?shù)惹闆r而發(fā)生能量狀態(tài)切換的能量 狀態(tài)。所述完整能量狀態(tài)可以為本發(fā)明實(shí)施例中,希望在所述app處于活躍狀態(tài)時(shí),通過心跳報(bào)文?;畹哪芰繝顟B(tài)。一般來說,所述完整能量狀態(tài)是所述移動(dòng)終端占用dch時(shí)所對應(yīng)的能量狀態(tài),即耗電量較大的能量狀態(tài)。在完整能量狀態(tài)下,所述移動(dòng)終端的rrc連接狀態(tài)處于dch狀態(tài)。需要注意的是,由于針對不同的運(yùn)行商或者不同的服務(wù)提供商,移動(dòng)終端的rrc連接狀態(tài)從dch狀態(tài)改變到下一級狀態(tài)(例如fach狀態(tài))的時(shí)間條件可能有所不同,故所述預(yù)設(shè)最小間隔可以設(shè)置的相對較小(一般小于導(dǎo)致改變r(jià)rc連接狀態(tài)的無數(shù)據(jù)傳輸持續(xù)時(shí)間,或者說tailtime),以使得可以保證在現(xiàn)有所了解的rrc連接狀態(tài)從dch狀態(tài)改變到fach狀態(tài)的各種時(shí)間條件下,以所述預(yù)設(shè)最小間隔發(fā)送心跳報(bào)文時(shí),所述移動(dòng)終端可以保持占用dch,所述移動(dòng)終端的rrc連接狀態(tài)可以保持dch狀態(tài),所述移動(dòng)終端可以保持所述完整能量狀態(tài)。
例如,若觸發(fā)所述移動(dòng)終端的rrc連接狀態(tài)從dch狀態(tài)改變?yōu)閒ach狀態(tài)的無數(shù)據(jù)傳輸持續(xù)時(shí)間具體為沒有數(shù)據(jù)傳輸持續(xù)5秒,所述預(yù)設(shè)最小間隔可小于5秒的時(shí)間間隔。
通過評估,可以對所述設(shè)定心跳間隔進(jìn)行調(diào)整,調(diào)整后的設(shè)定心跳間隔小于觸發(fā)所述移動(dòng)終端的rrc連接狀態(tài)從dch狀態(tài)改變?yōu)閒ach狀態(tài)的無數(shù)據(jù)傳輸持續(xù)時(shí)間。而且通過評估的調(diào)整,使得調(diào)整后的設(shè)定心跳間隔既可以保證以此間隔發(fā)送心跳報(bào)文不會(huì)觸發(fā)所述rrc連接狀態(tài)的改變,從而導(dǎo)致移動(dòng)終端的能量狀態(tài)發(fā)生改變,也可以不過于頻繁的發(fā)送心態(tài)報(bào)文,盡量少的消耗系統(tǒng)資源,避免在發(fā)送心跳報(bào)文上造成額外的耗電。在評估過程中,還可以根據(jù)不同的網(wǎng)絡(luò)質(zhì)量、通信效果等進(jìn)行調(diào)整,從而達(dá)到智能調(diào)整設(shè)定心跳間隔的能力。將評估完成后的調(diào)整結(jié)果,或者說對原設(shè)定心跳間隔的調(diào)整結(jié)果更新到所述存儲(chǔ)單元中,這樣當(dāng)需要進(jìn)行心跳報(bào)文?;钅芰繝顟B(tài)(或者說?;顁rc連接狀態(tài))時(shí),可以使用s102得到的評估后的調(diào)整結(jié)果作為發(fā)送心跳報(bào)文的間隔。
s103:若識(shí)別所述app處于活躍狀態(tài),以從所述存儲(chǔ)單元中獲取的所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,使得所述移動(dòng)終端在所述app處于活躍狀態(tài)的過程中不會(huì)觸發(fā)所述移動(dòng)終端能量狀態(tài)的切換條件,從而所述移動(dòng)終端的能 量狀態(tài)保持在所述完整能量狀態(tài)不變。
舉例說明,本發(fā)明實(shí)施例中所述的心跳報(bào)文,可以理解為用于在所述app處于活躍狀態(tài)時(shí),對所述移動(dòng)終端能量狀態(tài)進(jìn)行?;畹男奶鴪?bào)文。
所述活躍狀態(tài)可以理解為所述app處于前臺(tái)狀態(tài),或者,所述活躍狀態(tài)也可以理解為所述app處于前臺(tái)時(shí)的一種子狀態(tài)。在所述活躍狀態(tài)為所述app處于前臺(tái)時(shí)的一種子狀態(tài)的情況下,本發(fā)明實(shí)施例提供一種識(shí)別app狀態(tài)的方式,可選的,所述識(shí)別所述app處于活躍狀態(tài),包括:
當(dāng)所述app處于前臺(tái)狀態(tài)時(shí),判斷預(yù)設(shè)時(shí)間內(nèi)所述app是否發(fā)生業(yè)務(wù)數(shù)據(jù)交互,若是,識(shí)別所述app處于活躍狀態(tài)。
也就是說,所述app處于后臺(tái),可以明確為處于非活躍狀態(tài),所述app處于前臺(tái)時(shí),若預(yù)設(shè)時(shí)間內(nèi)所述app未發(fā)生業(yè)務(wù)數(shù)據(jù)交互,也可以認(rèn)為所述app處于非活躍狀態(tài)。若所述app處于前臺(tái),且預(yù)設(shè)時(shí)間內(nèi)所述app發(fā)生了業(yè)務(wù)數(shù)據(jù)交互,可以認(rèn)為所述app處于活躍狀態(tài)。
通過圖1所對應(yīng)實(shí)施例可以看出,根據(jù)所述保持所述移動(dòng)終端處于完整能量狀態(tài)的預(yù)設(shè)最小間隔對所述設(shè)定心跳間隔進(jìn)行評估,從而根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔,并將調(diào)整結(jié)果作為對應(yīng)app的設(shè)定心跳間隔更新到所述存儲(chǔ)單元中,若識(shí)別所述app處于活躍狀態(tài),以從所述存儲(chǔ)單元中獲取的所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,使得所述移動(dòng)終端在所述app處于活躍狀態(tài)的過程中,將傳統(tǒng)的發(fā)送心跳報(bào)文作為一種形成數(shù)據(jù)傳輸?shù)男问?,按照?jīng)過調(diào)整后的設(shè)定心跳間隔發(fā)送的心跳報(bào)文,以確保所述移動(dòng)終端在滿足切換能量狀態(tài)的時(shí)間條件之前,會(huì)出現(xiàn)一定的數(shù)據(jù)傳輸,從而在所述app處于活躍狀態(tài)下,所述移動(dòng)終端的能量狀態(tài)可以一直保持在所述完整能量狀態(tài)不變,不會(huì)在用戶操作時(shí)出現(xiàn)能量狀態(tài)切換的情況,也就是說不會(huì)給用戶體現(xiàn)出因切換能量狀態(tài)所帶來的系統(tǒng)延遲,提高了用戶體驗(yàn)。
需要注意的是,由于按照所述設(shè)定心跳間隔發(fā)送心跳報(bào)文是在所述app處于活躍狀態(tài)時(shí),故發(fā)送心跳報(bào)文的過程中應(yīng)該時(shí)常會(huì)出現(xiàn)其他數(shù)據(jù)傳輸,例如移動(dòng)終端發(fā)送業(yè)務(wù)數(shù)據(jù)。為了節(jié)約移動(dòng)終端的系統(tǒng)資源,在發(fā)送心跳報(bào)文的過程中,當(dāng)檢測到出現(xiàn)一次發(fā)送業(yè)務(wù)數(shù)據(jù)的行為時(shí),由于發(fā)生業(yè)務(wù)數(shù)據(jù)相當(dāng)于重置了能量狀態(tài)切換的時(shí)間,和發(fā)送心跳報(bào)文的功能一樣,都對所述 移動(dòng)終端起到了保活能量狀態(tài)的作用。
在圖1所對應(yīng)實(shí)施例的基礎(chǔ)上,可選的,若識(shí)別所述app處于活躍狀態(tài),所述以從所述存儲(chǔ)單元中獲取的所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,如圖2所示,包括:
s201:在發(fā)送一次心跳報(bào)文后,在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)檢測所述移動(dòng)終端是否發(fā)送業(yè)務(wù)數(shù)據(jù);若是,執(zhí)行s202,若否,執(zhí)行s203。
s202:停止發(fā)送心跳報(bào)文;從所述移動(dòng)終端發(fā)送業(yè)務(wù)數(shù)據(jù)的時(shí)間點(diǎn)開始,在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)繼續(xù)檢測所述移動(dòng)終端是否發(fā)送業(yè)務(wù)數(shù)據(jù),直到在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)未檢測到所述移動(dòng)終端發(fā)送業(yè)務(wù)數(shù)據(jù)。
s203:繼續(xù)以所述設(shè)定心跳間隔發(fā)送心跳報(bào)文。
舉例說明,若所述設(shè)定心跳間隔為4秒,發(fā)送一次心跳報(bào)文后,檢測在4秒之內(nèi)是否有發(fā)送業(yè)務(wù)報(bào)文,如果其間出現(xiàn)了一次業(yè)務(wù)數(shù)據(jù)的發(fā)送,那么從這次發(fā)送的時(shí)間點(diǎn)開始,繼續(xù)檢測4秒內(nèi)是否有發(fā)送業(yè)務(wù)報(bào)文。例如,在第10秒時(shí)發(fā)送一次心跳報(bào)文1,開始檢測4秒內(nèi)是否有發(fā)送業(yè)務(wù)報(bào)文。發(fā)現(xiàn)在第12秒時(shí)發(fā)送了一次業(yè)務(wù)報(bào)文1,發(fā)送心跳報(bào)文1和業(yè)務(wù)報(bào)文1之間間隔為12-10=2秒,未超過所述設(shè)定心跳間隔(4秒),繼續(xù)從第12秒開始檢測4秒。若直到第16秒都未出現(xiàn)發(fā)送業(yè)務(wù)數(shù)據(jù),則在第16秒發(fā)送一次心跳報(bào)文2。若在第15秒又發(fā)送了一次業(yè)務(wù)報(bào)文2,發(fā)送業(yè)務(wù)數(shù)據(jù)1和業(yè)務(wù)數(shù)據(jù)2之間間隔為15-12=3秒,未超過所述設(shè)定心跳間隔,繼續(xù)從第15秒開始檢測4秒。若直到第19秒都未出現(xiàn)發(fā)送業(yè)務(wù)數(shù)據(jù),則在第19秒發(fā)送一次心跳報(bào)文2。然后,繼續(xù)從第19秒開始檢測4秒內(nèi)是否有發(fā)送業(yè)務(wù)報(bào)文。以此類推。
可見,由于業(yè)務(wù)數(shù)據(jù)的發(fā)送這一動(dòng)作,在對移動(dòng)終端能量狀態(tài)的?;钌系男Ч?,和發(fā)送了一次心跳報(bào)文相似,故可以將發(fā)送業(yè)務(wù)數(shù)據(jù)的動(dòng)作相當(dāng)于發(fā)送心跳報(bào)文的動(dòng)作??梢詮倪@次業(yè)務(wù)數(shù)據(jù)的發(fā)送時(shí)間開始重新以所述預(yù)設(shè)發(fā)送間隔發(fā)送心跳報(bào)文,從而減少了所述app處于活躍狀態(tài)時(shí)心跳報(bào)文的發(fā)送次數(shù),節(jié)約了系統(tǒng)資源,降低了發(fā)送心跳報(bào)文的耗電量。
實(shí)施例二
在圖1所對應(yīng)實(shí)施例的基礎(chǔ)上,為了達(dá)到如s102中所描述的評估效果,可選的,針對s102的對所述設(shè)定心跳間隔的評估,本發(fā)明實(shí)施例提供了一種評估方式。圖3為本發(fā)明實(shí)施例提供的一種心跳間隔評估方法的方法流程圖,如圖3所示,包括:
s301:根據(jù)所述設(shè)定心跳間隔發(fā)送心跳報(bào)文。
舉例說明,這里的所述設(shè)定心跳間隔為從所述存儲(chǔ)單元中調(diào)取的設(shè)定心跳間隔。
s302:根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第一響應(yīng)時(shí)間。
舉例說明,這里可以只發(fā)送一次心跳報(bào)文,根據(jù)發(fā)送心跳報(bào)文的時(shí)間以及接收到響應(yīng)報(bào)文的時(shí)間,確定出第一響應(yīng)時(shí)間。不過考慮到網(wǎng)絡(luò)質(zhì)量的波動(dòng),為了盡可能確定出能夠真實(shí)反映網(wǎng)絡(luò)質(zhì)量的響應(yīng)時(shí)間,還可以通過以所述設(shè)定心跳間隔發(fā)送多次心跳報(bào)文。
故可選的,s301還可以為:根據(jù)所述設(shè)定心跳間隔連續(xù)發(fā)送多次心跳報(bào)文。
相應(yīng)的,s302還可以為:根據(jù)對應(yīng)心跳報(bào)文返回的每一次響應(yīng)報(bào)文,確定出一個(gè)響應(yīng)時(shí)間;計(jì)算多個(gè)響應(yīng)時(shí)間的均值,得到所述第一響應(yīng)時(shí)間。
s303:依據(jù)所述預(yù)設(shè)最小間隔發(fā)送心跳報(bào)文。
s304:根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第二響應(yīng)時(shí)間。
舉例說明,通過所述預(yù)設(shè)最小間隔發(fā)送心跳報(bào)文,可以使得所述移動(dòng)終端的rrc連接狀態(tài)的連接狀態(tài)改變?yōu)閐ch狀態(tài),在這個(gè)連接狀態(tài)下,網(wǎng)絡(luò)質(zhì)量、數(shù)據(jù)傳輸速度等相對較好,故從發(fā)送心跳報(bào)文到接收到返回的響應(yīng)報(bào)文的時(shí)間應(yīng)該相對較短。也就是說,所述第二響應(yīng)時(shí)間可以為所述移動(dòng)終端占用dch時(shí),發(fā)送心跳報(bào)文到接收響應(yīng)報(bào)文應(yīng)該達(dá)到的時(shí)間。
依據(jù)預(yù)設(shè)最小間隔發(fā)送心跳報(bào)文s303,可以在執(zhí)行s301之前執(zhí)行完成,也可以在執(zhí)行完s301后再執(zhí)行。不過,在本發(fā)明提供的一種可選的實(shí)施例中,在執(zhí)行根據(jù)所述設(shè)定心跳間隔發(fā)送心跳報(bào)文之前,執(zhí)行依據(jù)預(yù)設(shè)最小間隔發(fā)送心跳報(bào)文。
需要注意的是,考慮到網(wǎng)絡(luò)質(zhì)量的波動(dòng),為了盡可能確定出能夠真實(shí)反映網(wǎng)絡(luò)質(zhì)量的響應(yīng)時(shí)間,還可以通過以所述預(yù)設(shè)最小間隔發(fā)送多次心跳報(bào)文。
故可選的,所述依據(jù)預(yù)設(shè)最小間隔發(fā)送心跳報(bào)文,包括:
依據(jù)預(yù)設(shè)最小間隔連續(xù)發(fā)送多次心跳報(bào)文;
根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第二響應(yīng)時(shí)間,包括:
根據(jù)對應(yīng)心跳報(bào)文返回的每一次響應(yīng)報(bào)文,確定出一個(gè)響應(yīng)時(shí)間;計(jì)算多個(gè)響應(yīng)時(shí)間的均值,得到所述第二響應(yīng)時(shí)間。
s305:比對所述第一響應(yīng)時(shí)間和第二響應(yīng)時(shí)間之間的差值是否大于預(yù)設(shè)閾值,所述預(yù)設(shè)閾值根據(jù)所述切換條件確定。
若所述差值大于所述預(yù)設(shè)閾值,確定評估結(jié)果為不好。
若所述差值小于所述預(yù)設(shè)閾值,確定評估結(jié)果為好。
舉例說明,當(dāng)所述第一響應(yīng)時(shí)間與所述第二響應(yīng)時(shí)間差距較大時(shí)(一般情況下是所述第一響應(yīng)時(shí)間大于或遠(yuǎn)大于所述第二響應(yīng)時(shí)間),可以確定在使用所述設(shè)定心跳間隔發(fā)送心跳報(bào)文時(shí),所述設(shè)定心跳間隔較大,未能將所述移動(dòng)終端的rrc連接狀態(tài)保持在dch狀態(tài),而有可能使得所述rrc連接狀態(tài)改變?yōu)閒ach狀態(tài)等。也就是說,在用所述設(shè)定心跳間隔發(fā)送心跳報(bào)文時(shí),所述移動(dòng)終端未能占用dch,而是占用其他低級別的通道,例如fach,這類低級別的通道的網(wǎng)絡(luò)質(zhì)量或網(wǎng)絡(luò)響應(yīng)速度相對較慢,另一方面所述心跳報(bào)文有可能觸發(fā)所述移動(dòng)終端的rrc連接狀態(tài)由fach升級為dch狀態(tài),從而引入額外的系統(tǒng)延遲,導(dǎo)致發(fā)送心跳報(bào)文到接收到返回的響應(yīng)報(bào)文的時(shí)間(即所述第一響應(yīng)時(shí)間)較大。故,當(dāng)所述第一響應(yīng)時(shí)間越接近所述第二響應(yīng)時(shí)間,可以認(rèn)為,以所述設(shè)定心跳間隔發(fā)送心跳報(bào)文越可能將所述移動(dòng)終端的rrc連接狀態(tài)?;钤赿ch狀態(tài),也就是說越有可能?;钏鲆苿?dòng)終端的完整能量狀態(tài)。
通過s305,可以準(zhǔn)確的根據(jù)所述第二響應(yīng)時(shí)間,確定出針對所述設(shè)定心跳間隔的評估結(jié)果。由此可以準(zhǔn)確的根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔。
可選的,本發(fā)明實(shí)施例還給出了一種詳細(xì)的根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔的過程,如圖3所示:
s306:根據(jù)所述切換條件,評估所述第一響應(yīng)時(shí)間。若相鄰的兩次評估過程的評估結(jié)果均為不好,執(zhí)行s307;若相鄰的兩次評估過程的評估結(jié)果均為好,執(zhí)行s308;若相鄰的兩次評估過程的評估結(jié)果從好變?yōu)椴缓?,?zhí)行s309。
如s305中所描述的,所述預(yù)設(shè)閾值根據(jù)所述移動(dòng)終端占用dch發(fā)送心跳報(bào)文的響應(yīng)時(shí)間和占用非dch發(fā)送心跳報(bào)文的響應(yīng)時(shí)間之差確定,若第一響應(yīng)時(shí)間和第二響應(yīng)時(shí)間的所述差值超過了這個(gè)預(yù)設(shè)閾值,可以認(rèn)為使用所述設(shè)定心跳間隔發(fā)送心跳報(bào)文時(shí),無法保持完整能量狀態(tài)不改變,難以起到保活移動(dòng)終端能量狀態(tài)的功能,故需要調(diào)小發(fā)送心跳報(bào)文的發(fā)送間隔。若所述差值未超過這個(gè)預(yù)設(shè)閾值,可以認(rèn)為使用所述設(shè)定心跳間隔發(fā)送心跳報(bào)文時(shí),能夠保持完整能量狀態(tài)不改變,可以有效起到?;钜苿?dòng)終端能量狀態(tài)的功能,這時(shí)可以考慮到節(jié)能的需求,嘗試增大發(fā)送心跳報(bào)文的間隔。
s307:對所述設(shè)定心跳間隔進(jìn)行調(diào)整,將所述設(shè)定心跳間隔調(diào)小第一時(shí)長;將調(diào)整后的設(shè)定心跳間隔作為所述設(shè)定心跳間隔,重新執(zhí)行對所述設(shè)定心跳間隔進(jìn)行評估。
s308:對所述設(shè)定心跳間隔進(jìn)行調(diào)整,將所述設(shè)定心跳間隔調(diào)大第二時(shí)長;將調(diào)整后的設(shè)定心跳間隔作為所述設(shè)定心跳間隔,重新執(zhí)行對所述設(shè)定心跳間隔進(jìn)行評估。
舉例說明,s307和s308屬于并列的調(diào)整步驟,不限定執(zhí)行的先后關(guān)系,僅根據(jù)相鄰的兩次評估過程的評估結(jié)果作為觸發(fā)執(zhí)行的條件。
若相鄰的兩次評估過程的評估結(jié)果均為不好,可以確定在目前的網(wǎng)絡(luò)質(zhì)量下,設(shè)定心跳間隔將很難實(shí)現(xiàn)對移動(dòng)終端能量狀態(tài)的?;?,需要縮短發(fā)送心跳報(bào)文的間隔,以確保實(shí)現(xiàn)?;钜苿?dòng)終端能量狀態(tài)的能力。
若相鄰的兩次評估過程的評估結(jié)果均為好,證明這時(shí)的設(shè)定心跳間隔可以有效的滿足?;钜苿?dòng)終端能量狀態(tài)的需求,可以考慮發(fā)送間隔是否可以再大一點(diǎn),進(jìn)一步節(jié)約發(fā)送心跳報(bào)文帶來的耗電量。
其中,所述第一時(shí)長和第二時(shí)長可以相同,也可以依據(jù)不同的具體精度要求,將所述第一時(shí)長和第二時(shí)長設(shè)置為不同。
s309:將這兩次評估過程中評估結(jié)果為好的評估過程確定為目標(biāo)評估過程,將所述目標(biāo)評估過程中所評估的設(shè)定心跳間隔作為目標(biāo)間隔,并暫停對所述設(shè)定心跳間隔進(jìn)行評估。
舉例說明,通過評估結(jié)果調(diào)整設(shè)定心跳間隔,可以根據(jù)評估結(jié)果確定出設(shè)定心跳間隔的邊界,這里所述的設(shè)定心跳間隔的邊界可以理解為既可以實(shí) 現(xiàn)?;钜苿?dòng)終端能量狀態(tài)的功能,又能最大程度上的減少發(fā)送心跳報(bào)文耗電的心跳發(fā)送間隔。
例如,未評估前的設(shè)定心跳間隔為4秒。第一次、第二次的評估,評估結(jié)果均為好。將設(shè)定心跳間隔調(diào)大第二時(shí)長,假設(shè)是0.4秒,調(diào)整后的設(shè)定心跳間隔為4.4秒。對調(diào)整為4.4秒的設(shè)定系統(tǒng)間隔進(jìn)行第三次評估,結(jié)果第三次評估過程的評估結(jié)果依然為好,由于相鄰的兩次評估過程(第二次和第三次)的評估結(jié)果相同且均為好,再一次將設(shè)定心跳間隔調(diào)大第二時(shí)長,從4.4秒調(diào)整到4.8秒。對調(diào)整為4.8秒的設(shè)定系統(tǒng)間隔進(jìn)行第四次評估,結(jié)果第四次評估過程的評估結(jié)果為不好,且相鄰的兩次評估過程(第三次和第四次)的評估結(jié)果是從好變?yōu)椴缓?,故將第三次評估過程確定為目標(biāo)評估過程,將第三次評估過程中所評估的設(shè)定心跳間隔(4.4秒)作為目標(biāo)間隔。
s310:將所述目標(biāo)間隔更新到所述存儲(chǔ)單元中,作為所述app對應(yīng)的設(shè)定心跳間隔。
確定出目標(biāo)間隔后,可以更新原來保存在所述存儲(chǔ)單元中的設(shè)定心跳間隔(對應(yīng)于所述app的)。以上述的例子,原先在所述存儲(chǔ)單元中存儲(chǔ)的對應(yīng)于所述app的設(shè)定心跳間隔為4秒,更新后,所述存儲(chǔ)單元中存儲(chǔ)的對應(yīng)于所述app的設(shè)定心跳間隔為4.4秒。
由上述實(shí)施例可以看出,通過對設(shè)定心跳間隔進(jìn)行評估,可以根據(jù)評估結(jié)果將設(shè)定心跳間隔調(diào)整到相對于網(wǎng)絡(luò)狀態(tài)為最優(yōu)的目標(biāo)間隔,將所述目標(biāo)間隔作為設(shè)定心跳間隔發(fā)送心跳報(bào)文時(shí),既可以實(shí)現(xiàn)在所述app處于活躍狀態(tài)時(shí)?;钜苿?dòng)終端能量狀態(tài)的功能,又能最大程度上的減少發(fā)送心跳報(bào)文耗電,提高了用戶體驗(yàn)。
實(shí)施例三
圖4為本發(fā)明實(shí)施例提供的一種心跳報(bào)文的發(fā)送裝置的裝置結(jié)構(gòu)圖,應(yīng)用于移動(dòng)終端,所述裝置包括:
調(diào)取單元401,用于從存儲(chǔ)單元中調(diào)取app所對應(yīng)的設(shè)定心跳間隔,所述app安裝在所述移動(dòng)終端中;
評估單元402,用于根據(jù)預(yù)設(shè)最小間隔,對所述設(shè)定心跳間隔進(jìn)行評估, 以便根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔,并將調(diào)整結(jié)果作為對應(yīng)所述app的設(shè)定心跳間隔更新到所述存儲(chǔ)單元中,所述預(yù)設(shè)最小間隔為保持所述移動(dòng)終端處于完整能量狀態(tài)的心跳報(bào)文發(fā)送間隔;若識(shí)別所述app處于活躍狀態(tài),觸發(fā)心跳發(fā)送單元403;
心跳發(fā)送單元403,用于以從所述存儲(chǔ)單元中獲取的所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,使得所述移動(dòng)終端在所述app處于活躍狀態(tài)的過程中不會(huì)觸發(fā)所述移動(dòng)終端能量狀態(tài)的切換條件,從而所述移動(dòng)終端的能量狀態(tài)保持在所述完整能量狀態(tài)不變。
可見,根據(jù)保持所述移動(dòng)終端處于完整能量狀態(tài)的預(yù)設(shè)最小間隔,對所述設(shè)定心跳間隔進(jìn)行評估,從而根據(jù)評估結(jié)果調(diào)整所述設(shè)定心跳間隔,并將調(diào)整結(jié)果作為對應(yīng)app的設(shè)定心跳間隔更新到所述存儲(chǔ)單元中,若識(shí)別所述app處于活躍狀態(tài),以從所述存儲(chǔ)單元中獲取的所述設(shè)定心跳間隔發(fā)送心跳報(bào)文,使得所述移動(dòng)終端在所述app處于活躍狀態(tài)的過程中,將傳統(tǒng)的發(fā)送心跳報(bào)文作為一種形成數(shù)據(jù)傳輸?shù)男问剑凑战?jīng)過調(diào)整后的設(shè)定心跳間隔發(fā)送的心跳報(bào)文,以確保所述移動(dòng)終端在滿足切換能量狀態(tài)的時(shí)間條件之前,會(huì)出現(xiàn)一定的數(shù)據(jù)傳輸,從而在所述app處于活躍狀態(tài)下,所述移動(dòng)終端的能量狀態(tài)可以一直保持在所述完整能量狀態(tài)不變,不會(huì)在用戶操作時(shí)出現(xiàn)能量狀態(tài)切換的情況,從而不會(huì)給用戶體現(xiàn)出因切換能量狀態(tài)所帶來的系統(tǒng)延遲,提高了用戶體驗(yàn)。
可選的,所述評估單元包括:
第一發(fā)送子單元,用于根據(jù)所述設(shè)定心跳間隔發(fā)送心跳報(bào)文;
第一確定子單元,用于根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第一響應(yīng)時(shí)間;
第二發(fā)送子單元,用于依據(jù)所述預(yù)設(shè)最小間隔發(fā)送心跳報(bào)文;
第二確定子單元,用于根據(jù)對應(yīng)心跳報(bào)文返回的響應(yīng)報(bào)文,確定出第二響應(yīng)時(shí)間;
比對子單元,用于比對所述第一響應(yīng)時(shí)間和第二響應(yīng)時(shí)間之間的差值是否大于預(yù)設(shè)閾值;
評估子單元,用于若所述差值大于所述預(yù)設(shè)閾值,確定評估結(jié)果為不好, 若所述差值小于所述預(yù)設(shè)閾值,確定評估結(jié)果為好。
可選的,還包括調(diào)整單元:
若相鄰的兩次評估過程的評估結(jié)果均為不好,所述調(diào)整單元,用于對所述設(shè)定心跳間隔進(jìn)行調(diào)整,將所述設(shè)定心跳間隔調(diào)小第一時(shí)長;將調(diào)整后的設(shè)定心跳間隔作為所述設(shè)定心跳間隔,重新執(zhí)行對所述設(shè)定心跳間隔進(jìn)行評估;
若相鄰的兩次評估過程的評估結(jié)果均為好,所述調(diào)整單元還用于對所述設(shè)定心跳間隔進(jìn)行調(diào)整,將所述設(shè)定心跳間隔調(diào)大第二時(shí)長;將調(diào)整后的設(shè)定心跳間隔作為所述設(shè)定心跳間隔,重新執(zhí)行對所述設(shè)定心跳間隔進(jìn)行評估;
若相鄰的兩次評估過程的評估結(jié)果從好變?yōu)椴缓?,所述調(diào)整單元還用于將這兩次評估過程中評估結(jié)果為好的評估過程確定為目標(biāo)評估過程,將所述目標(biāo)評估過程中所評估的設(shè)定心跳間隔作為目標(biāo)間隔,并暫停對所述設(shè)定心跳間隔進(jìn)行評估;
所述調(diào)整單元還用于將所述目標(biāo)間隔更新到所述存儲(chǔ)單元中,作為所述app對應(yīng)的設(shè)定心跳間隔。
可選的,
所述第一發(fā)送子單元還用于根據(jù)所述設(shè)定心跳間隔連續(xù)發(fā)送多次心跳報(bào)文;
所述第一確定子單元還用于根據(jù)對應(yīng)心跳報(bào)文返回的每一次響應(yīng)報(bào)文,確定出一個(gè)響應(yīng)時(shí)間;計(jì)算多個(gè)響應(yīng)時(shí)間的均值,得到所述第一響應(yīng)時(shí)間;
所述第二發(fā)送子單元還用于依據(jù)預(yù)設(shè)最小間隔連續(xù)發(fā)送多次心跳報(bào)文;
所述第二確定子單元還用于根據(jù)對應(yīng)心跳報(bào)文返回的每一次響應(yīng)報(bào)文,確定出一個(gè)響應(yīng)時(shí)間;計(jì)算多個(gè)響應(yīng)時(shí)間的均值,得到所述第二響應(yīng)時(shí)間。
可選的,還包括檢測單元:
所述檢測單元,用于在所述心跳發(fā)送單元發(fā)送一次心跳報(bào)文后,在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)檢測所述移動(dòng)終端是否發(fā)送業(yè)務(wù)數(shù)據(jù);
若是,觸發(fā)所述心跳發(fā)送單元停止發(fā)送心跳報(bào)文;
所述檢測單元還用于從所述移動(dòng)終端發(fā)送業(yè)務(wù)數(shù)據(jù)的時(shí)間點(diǎn)開始,在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)繼續(xù)檢測所述移動(dòng)終端是否發(fā)送業(yè)務(wù)數(shù) 據(jù),直到在所述設(shè)定心跳間隔指示的時(shí)間長度內(nèi)未檢測到所述移動(dòng)終端發(fā)送業(yè)務(wù)數(shù)據(jù)時(shí),觸發(fā)所述心跳發(fā)送單元繼續(xù)以所述設(shè)定心跳間隔發(fā)送心跳報(bào)文。
可選的,還包括狀態(tài)判斷單元:
所述狀態(tài)判斷單元,用于在觸發(fā)所述調(diào)取單元之前檢測所述app的狀態(tài),若所述app處于后臺(tái)狀態(tài),觸發(fā)所述調(diào)取單元。
可選的,所述評估單元還用于當(dāng)所述app處于前臺(tái)狀態(tài)時(shí),判斷預(yù)設(shè)時(shí)間內(nèi)所述app是否發(fā)生業(yè)務(wù)數(shù)據(jù)交互,若是,識(shí)別所述app處于活躍狀態(tài)。
由上述實(shí)施例可以看出,通過對設(shè)定心跳間隔進(jìn)行評估,可以根據(jù)評估結(jié)果將設(shè)定心跳間隔調(diào)整到相對于網(wǎng)絡(luò)狀態(tài)為最優(yōu)的目標(biāo)間隔,將所述目標(biāo)間隔作為設(shè)定心跳間隔發(fā)送心跳報(bào)文時(shí),既可以實(shí)現(xiàn)在所述app處于活躍狀態(tài)時(shí)保活移動(dòng)終端能量狀態(tài)的功能,又能最大程度上的減少發(fā)送心跳報(bào)文耗電,提高了用戶體驗(yàn)。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述程序可以存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)可以是下述介質(zhì)中的至少一種:只讀存儲(chǔ)器(英文:read-onlymemory,縮寫:rom)、ram、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
需要說明的是,本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,各個(gè)實(shí)施例之間相同相似的部分互相參見即可,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處。尤其,對于設(shè)備及系統(tǒng)實(shí)施例而言,由于其基本相似于方法實(shí)施例,所以描述得比較簡單,相關(guān)之處參見方法實(shí)施例的部分說明即可。以上所描述的設(shè)備及系統(tǒng)實(shí)施例僅僅是示意性的,其中作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不 局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。