本申請涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種移動設(shè)備的數(shù)據(jù)采集上報方法和系統(tǒng)。
背景技術(shù):
近年來移動互聯(lián)網(wǎng)呈井噴式發(fā)展,從衣食住行各個方面改變著人們的生活。移動智能設(shè)備,如手機(jī)、掌上電腦、可穿戴智能設(shè)備等等,的種類也越來越多。移動智能設(shè)備上的應(yīng)用程序(app)技術(shù)在這個階段得到了充分的發(fā)展,各行各業(yè)開發(fā)出來的app種類和數(shù)量都呈指數(shù)增長。隨之而來的數(shù)據(jù)搜集和采集工作也變成了產(chǎn)品和決策層不可規(guī)避的工作。
數(shù)據(jù)采集上報技術(shù)由來已久,在個人計算機(jī)(pc)領(lǐng)域,數(shù)據(jù)采集上報技術(shù)已經(jīng)發(fā)展得很成熟,由此還產(chǎn)生了“大數(shù)據(jù)”的概念。針對pc的數(shù)據(jù)采集,由于其本身資源相對充裕,且隨著硬件技術(shù)和通信技術(shù)的持續(xù)發(fā)展越來越充裕,pc采集數(shù)據(jù)的方式相對粗放,既沒有考慮到網(wǎng)絡(luò)流量,也沒有考慮設(shè)備用電量、設(shè)備的系統(tǒng)資源消耗。
在目前的移動智能設(shè)備領(lǐng)域,數(shù)據(jù)采集上報的技術(shù)方案依然沿用pc機(jī)的數(shù)據(jù)采集上報技術(shù)。即在移動智能設(shè)備的程序中設(shè)置數(shù)據(jù)埋點(diǎn),所述數(shù)據(jù)埋點(diǎn)就是在程序代碼的關(guān)鍵部位植入數(shù)據(jù)采集統(tǒng)計代碼,用來追蹤每次用戶點(diǎn)擊/行為,統(tǒng)計關(guān)鍵功能的使用次數(shù),或者通過植入多段代碼追蹤用戶連續(xù)行為,以及通過建立模型來量化用戶操作行為。
在現(xiàn)有的數(shù)據(jù)采集上報技術(shù)中,根據(jù)業(yè)務(wù)需求,產(chǎn)生了一條埋點(diǎn)數(shù)據(jù),會立刻將該單條埋點(diǎn)數(shù)據(jù)上報到后臺服務(wù)器。但是,這種每次產(chǎn)生數(shù)據(jù)都進(jìn)行上報的方式?jīng)]有考慮到實際移動智能設(shè)備的網(wǎng)絡(luò)環(huán)境,對于2g、3g、4g、wifi等網(wǎng)絡(luò)環(huán)境沒有差異性對待,在網(wǎng)絡(luò)資源比較緊張的時候連續(xù)上報,嚴(yán) 重影響了移動智能設(shè)備的正常上網(wǎng)需求,在極端情況下也影響app正常的功能性網(wǎng)絡(luò)請求。
而且,當(dāng)移動智能設(shè)備發(fā)生異常時,有可能會使相對應(yīng)模塊重新初始化加載或者重試,某些嚴(yán)重異常在模塊重啟時并不能解決,因此,該模塊在處理異常時不停的發(fā)送異常統(tǒng)計數(shù)據(jù),該部分?jǐn)?shù)據(jù)由于同一原因造成,多次上報浪費(fèi)用戶流量,也會加重后臺接收和處理數(shù)據(jù)的壓力。
總體來講,現(xiàn)有技術(shù)的主要有如下缺點(diǎn):
1)盡管移動智能設(shè)備的硬件發(fā)展迅速,但其性能及設(shè)備資源與pc機(jī)的差距還是很大。再加上移動互聯(lián)網(wǎng)聯(lián)網(wǎng)上網(wǎng)收費(fèi)大部分采用按流量計費(fèi)的方式,現(xiàn)有技術(shù)沒有充分考慮移動設(shè)備硬件和網(wǎng)絡(luò)資源的特殊情況,會導(dǎo)致不同的網(wǎng)絡(luò)環(huán)境(如非wifi和wifi狀態(tài))無差別上報,引起非wifi狀態(tài)下白白耗損用戶流量的問題;
2)現(xiàn)有技術(shù)在后臺服務(wù)器需要調(diào)整,或網(wǎng)絡(luò)異常產(chǎn)生雪崩時,無法及時收斂上報請求的數(shù)量,造成多次上報浪費(fèi)用戶流量,也會加重后臺接收和處理數(shù)據(jù)的壓力。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的主要目的是提供一種移動設(shè)備的數(shù)據(jù)采集上報方法和系統(tǒng),以降低對移動設(shè)備網(wǎng)絡(luò)流量的損耗。
本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
一種移動設(shè)備的數(shù)據(jù)采集上報方法,包括:
在移動設(shè)備采集數(shù)據(jù);
在移動設(shè)備初始上報數(shù)據(jù)之前,下載最新的上報策略,更新本地的當(dāng)前上報策略為最新的上報策略;在每次上報所采集的數(shù)據(jù)成功后,下載最新的上報策略,更新本地的當(dāng)前上報策略為最新的上報策略;
根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù)。
在一種優(yōu)選實施例中,所述上報策略具體包括:二種以上網(wǎng)絡(luò)狀況信息及 每種網(wǎng)絡(luò)狀況信息對應(yīng)的上報方式;
所述根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù),具體包括:確定移動設(shè)備當(dāng)前的網(wǎng)絡(luò)狀況,根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況查詢所述本地當(dāng)前的上報策略中相應(yīng)的網(wǎng)絡(luò)狀況信息所對應(yīng)的上報方式,按照該上報方式上報所采集的數(shù)據(jù)。
在一種優(yōu)選實施例中,所述上報方式具體包括:觸發(fā)上報的周期、和/或觸發(fā)上報的數(shù)據(jù)量。
在一種優(yōu)選實施例中,當(dāng)所述上報方式中包括觸發(fā)上報的周期時,所述根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù),具體包括:通過定時器監(jiān)視時間周期,當(dāng)?shù)竭_(dá)所述觸發(fā)上報的周期時,上報所采集的數(shù)據(jù),并重置定時器繼續(xù)監(jiān)視時間周期;
當(dāng)所述上報方式中包括觸發(fā)上報的數(shù)據(jù)量時,所述根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù),具體包括:通過計數(shù)器監(jiān)視所采集的數(shù)據(jù)量,當(dāng)?shù)竭_(dá)所述觸發(fā)上報的數(shù)據(jù)量時,上報所采集的數(shù)據(jù),并重置計數(shù)器繼續(xù)監(jiān)視所采集的數(shù)據(jù)量;
當(dāng)所述上報方式中包括觸發(fā)上報的周期和觸發(fā)上報的數(shù)據(jù)量時,所述根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù),具體包括:通過定時器監(jiān)視時間周期,和通過計數(shù)器監(jiān)視所采集的數(shù)據(jù)量;當(dāng)?shù)竭_(dá)所述觸發(fā)上報的周期時,上報所采集的數(shù)據(jù),并重置定時器繼續(xù)監(jiān)視時間周期;當(dāng)?shù)竭_(dá)所述觸發(fā)上報的數(shù)據(jù)量時,上報所采集的數(shù)據(jù),并重置計數(shù)器繼續(xù)監(jiān)視所采集的數(shù)據(jù)量。
在一種優(yōu)選實施例中,該方法進(jìn)一步包括:
在移動設(shè)備本地設(shè)置默認(rèn)上報策略;
當(dāng)下載最新的上報策略失敗時或上報數(shù)據(jù)失敗時,將本地的當(dāng)前上報策略回退至默認(rèn)上報策略。
在一種優(yōu)選實施例中,
所述上報策略由后臺服務(wù)器配置并供移動設(shè)備下載;
所述上報策略中進(jìn)一步包括:是否允許上報的標(biāo)記;
所述在移動設(shè)備采集數(shù)據(jù),包括:查詢所述是否允許上報的標(biāo)記,如果為允許上報的標(biāo)記則將采集到的數(shù)據(jù)存入緩存,并執(zhí)行觸發(fā)后續(xù)上報數(shù)據(jù)的步驟,否則將采集到的數(shù)據(jù)丟棄。
一種移動設(shè)備的數(shù)據(jù)采集上報系統(tǒng),包括:
采集模塊,用于在移動設(shè)備采集數(shù)據(jù);
上報模塊,其中包括下載子模塊和上報子模塊;
所述下載子模塊用于在移動設(shè)備初始上報數(shù)據(jù)之前,下載最新的上報策略,更新本地的當(dāng)前上報策略為最新的上報策略;在每次上報所采集的數(shù)據(jù)成功后,下載最新的上報策略,更新本地的當(dāng)前上報策略為最新的上報策略;
所述上報子模塊用于根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù)。
在一種優(yōu)選實施例中,所述上報策略具體包括:二種以上網(wǎng)絡(luò)狀況信息及每種網(wǎng)絡(luò)狀況信息對應(yīng)的上報方式;
所述上報子模塊具體用于:確定移動設(shè)備當(dāng)前的網(wǎng)絡(luò)狀況,根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況查詢所述本地當(dāng)前的上報策略中相應(yīng)的網(wǎng)絡(luò)狀況信息所對應(yīng)的上報方式,按照該上報方式上報所采集的數(shù)據(jù)。
在一種優(yōu)選實施例中,該系統(tǒng)進(jìn)一步包括后臺服務(wù)器模塊,用于設(shè)置并調(diào)整上報策略,供移動設(shè)備下載該上報策略。
在一種優(yōu)選實施例中,所述上報策略中進(jìn)一步包括:是否允許上報的標(biāo)記;
所述采集模塊進(jìn)一步用于:查詢上報策略中的是否允許上報的標(biāo)記,如果為允許上報的標(biāo)記則將采集到的數(shù)據(jù)存入緩存,并執(zhí)行觸發(fā)后續(xù)上報數(shù)據(jù)的步驟,否則將采集到的數(shù)據(jù)丟棄。
與現(xiàn)有技術(shù)相比,本發(fā)明可以下載上報策略,這樣就可以通過不同的上報策略來適應(yīng)移動設(shè)備不同的硬件能力和網(wǎng)絡(luò)狀況,并根據(jù)所述上報策略指示的上報方式上報所采集的數(shù)據(jù)。這樣就可以提高數(shù)據(jù)上報與移動設(shè)備硬件能力和 當(dāng)前網(wǎng)絡(luò)狀況的適配性,實現(xiàn)不同的網(wǎng)絡(luò)環(huán)境(如非wifi和wifi狀態(tài))的有差別上報,以降低對移動設(shè)備網(wǎng)絡(luò)流量的損耗。同時,可以在后臺服務(wù)器及時地根據(jù)數(shù)據(jù)上報情況調(diào)整上報策略后,及時地將最新的上報策略發(fā)送給移動設(shè)備。例如在網(wǎng)絡(luò)異常產(chǎn)生數(shù)據(jù)雪崩時,可以及時通過下發(fā)新的上報策略來收斂數(shù)據(jù)上報請求的數(shù)量,從而進(jìn)一步降低對網(wǎng)絡(luò)流量的消耗,并可以進(jìn)一步降低對后臺服務(wù)器的壓力。
附圖說明
圖1為本發(fā)明公開的一種移動設(shè)備的數(shù)據(jù)采集上報方法的一種流程圖;
圖2為本發(fā)明公開的一種移動設(shè)備的數(shù)據(jù)采集上報系統(tǒng)的一種組成示意圖;
圖3為本發(fā)明的一種初始上報策略更新的詳細(xì)流程圖;
圖4為本發(fā)明的一種每次上報數(shù)據(jù)時進(jìn)行上報策略更新的詳細(xì)流程圖;
圖5為本發(fā)明的一種數(shù)據(jù)采集模塊采集數(shù)據(jù)的流程圖;
圖6為本發(fā)明的一種按照時間上報數(shù)據(jù)的流程圖;
圖7為本發(fā)明的一種按照觸發(fā)上報的數(shù)據(jù)量上報數(shù)據(jù)的流程圖。
具體實施方式
下面結(jié)合附圖及具體實施例對本發(fā)明再作進(jìn)一步詳細(xì)的說明。
本發(fā)明所述的移動設(shè)備,是指具有數(shù)據(jù)處理能力的便攜式智能設(shè)備,包括但不限于智能手機(jī)、掌上電腦、平板電腦等。這些便攜式智能設(shè)備上都安裝有操作系統(tǒng),包括但不限于:android操作系統(tǒng)、symbian操作系統(tǒng)、windowsmobile操作系統(tǒng)、以及蘋果iphoneos操作系統(tǒng)等等。
以上詳細(xì)羅列了一些智能設(shè)備的具體類型和具體的操作系統(tǒng)類型,但是本領(lǐng)域技術(shù)人員可以意識到,本發(fā)明實施方式并不局限于上述羅列的類型,而還可以適用于其他任意的智能設(shè)備類型和操作系統(tǒng)類型之中。
在移動設(shè)備領(lǐng)域,盡管移動設(shè)備的硬件發(fā)展迅速,但其性能及設(shè)備資源 與pc機(jī)的差距還是很大。而且再加上移動互聯(lián)網(wǎng)聯(lián)網(wǎng)上網(wǎng)收費(fèi)大部分采用按流量計費(fèi)的方式。所以在移動智能設(shè)備上的數(shù)據(jù)采集上報方式必定和計算機(jī)的數(shù)據(jù)采集上報方式有所差別。為了解決這種差異,本發(fā)明公開了一種方案,即在移動設(shè)備上使用上報策略控制采集數(shù)據(jù)上報,上報策略從后臺服務(wù)器獲取。
圖1為本發(fā)明公開的一種移動設(shè)備的數(shù)據(jù)采集上報方法的一種流程圖,參見圖1,該方法具體包括:
步驟101、在移動設(shè)備采集數(shù)據(jù);
步驟102、在移動設(shè)備初始上報數(shù)據(jù)之前,下載最新的上報策略,更新本地的當(dāng)前上報策略為最新的上報策略;在每次上報所采集的數(shù)據(jù)成功后,下載最新的上報策略,更新本地的當(dāng)前上報策略為最新的上報策略;
步驟103、根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù)。
所述上報策略由后臺服務(wù)器配置并供移動設(shè)備下載。在更為具體的一種實施例中,所述上報策略為后臺服務(wù)器所返回的json串,所述json為一種輕量級的數(shù)據(jù)交換格式。
本發(fā)明中,對于移動設(shè)備下載上報策略的時機(jī)做出了創(chuàng)造性地改進(jìn),也就是說,當(dāng)移動設(shè)備在的上報模塊初始啟動,第一次上報數(shù)據(jù)前,可以向后臺服務(wù)器請求下載一次最新的上報策略,下載成功后利用該最新的上報策略中的上報方式上報數(shù)據(jù);此后在每一次成功上報數(shù)據(jù)后,即后臺服務(wù)器成功接受了移動設(shè)備上報的數(shù)據(jù)后,都會重新向后臺服務(wù)器請求下載一次最新的上報策略,下載成功后利用該最新的上報策略中的上報方式上報數(shù)據(jù)。
對于下載上報策略失敗或上報數(shù)據(jù)失敗的情況,本發(fā)明的一種實施例中是這樣處理的:在移動設(shè)備本地設(shè)置默認(rèn)上報策略;當(dāng)下載最新的上報策略失敗時或上報數(shù)據(jù)失敗時,將本地的當(dāng)前上報策略回退至默認(rèn)上報策略。
通過上述實施例的處理,可以保證后臺服務(wù)器可以及時地根據(jù)數(shù)據(jù)上報情況調(diào)整上報策略,并及時地將最新的上報策略發(fā)送給移動設(shè)備。當(dāng)在后臺 服務(wù)器需要調(diào)整時,可以及時對移動設(shè)備的上報頻率、數(shù)據(jù)等上報方式進(jìn)行調(diào)整,例如在網(wǎng)絡(luò)異常產(chǎn)生數(shù)據(jù)雪崩時,可以及時通過下發(fā)新的上報策略來收斂數(shù)據(jù)上報請求的數(shù)量。
為了適應(yīng)不同網(wǎng)絡(luò)狀況的要求,例如移動設(shè)備在諸如2g、3g、4g、wifi等不同的網(wǎng)絡(luò)狀況時,其網(wǎng)絡(luò)速度、流量的耗費(fèi)要求、甚至對移動設(shè)備本身性能的要求都是不同的。那么在一種具體的實施例中,所述上報策略具體可以包括:二種以上網(wǎng)絡(luò)狀況信息及每種網(wǎng)絡(luò)狀況信息對應(yīng)的上報方式。所述上報方式具體可以包括:觸發(fā)上報的周期、和/或觸發(fā)上報的數(shù)據(jù)量。
例如下述表1所示為一種具體上報策略所包含的信息:
表1
在本實施例中,所述根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù),具體包括:確定移動設(shè)備當(dāng)前的網(wǎng)絡(luò)狀況,根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況查詢所述本地當(dāng)前的上報策略中相應(yīng)的網(wǎng)絡(luò)狀況信息所對應(yīng)的上報方式,按照該上報方式上報所采集的數(shù)據(jù)。
不同網(wǎng)絡(luò)環(huán)境下的最大上報時間間隔和該網(wǎng)絡(luò)環(huán)境下單次上報的最大數(shù)據(jù)量,這兩種指標(biāo)可以很好的控制不同網(wǎng)絡(luò)情況下,統(tǒng)計數(shù)據(jù)上報的速度。
在更為具體的一種實施例中,
當(dāng)所述上報方式中包括觸發(fā)上報的周期時,所述根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù),具體包括:通過定時器監(jiān)視時間 周期,當(dāng)?shù)竭_(dá)所述觸發(fā)上報的周期時,上報所采集的數(shù)據(jù),其中成功上報的數(shù)據(jù)可以從本地刪除,并重置定時器繼續(xù)監(jiān)視時間周期,到達(dá)下一次觸發(fā)上報的周期時再次上報所采集的數(shù)據(jù),周而復(fù)始;
當(dāng)所述上報方式中包括觸發(fā)上報的數(shù)據(jù)量時,所述根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù),具體包括:通過計數(shù)器監(jiān)視所采集的數(shù)據(jù)量,當(dāng)?shù)竭_(dá)所述觸發(fā)上報的數(shù)據(jù)量時,上報所采集的數(shù)據(jù),其中成功上報的數(shù)據(jù)可以從本地刪除,并重置計數(shù)器繼續(xù)監(jiān)視所采集的數(shù)據(jù)量,到達(dá)下一次觸發(fā)上報的數(shù)據(jù)量時再次上報所采集的數(shù)據(jù),周而復(fù)始;
當(dāng)所述上報方式中包括觸發(fā)上報的周期和觸發(fā)上報的數(shù)據(jù)量時,所述根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù),具體包括:通過定時器監(jiān)視時間周期,和通過計數(shù)器監(jiān)視所采集的數(shù)據(jù)量;當(dāng)?shù)竭_(dá)所述觸發(fā)上報的周期時,上報所采集的數(shù)據(jù),并重置定時器繼續(xù)監(jiān)視時間周期;當(dāng)?shù)竭_(dá)所述觸發(fā)上報的數(shù)據(jù)量時,也上報所采集的數(shù)據(jù),并重置計數(shù)器繼續(xù)監(jiān)視所采集的數(shù)據(jù)量。
因此,本發(fā)明可以通過配置上報策略可以靈活地控制在每種網(wǎng)絡(luò)狀況下的上報數(shù)據(jù)量和時間周期,有效地降低用戶使用app的流量成本。
在進(jìn)一步的實施例中,還可以在所述上報策略中進(jìn)一步包括:是否允許上報的標(biāo)記。在該實施例中,所述在移動設(shè)備采集數(shù)據(jù),具體包括:查詢所述是否允許上報的標(biāo)記,如果為允許上報的標(biāo)記則將采集到的數(shù)據(jù)存入緩存,并執(zhí)行觸發(fā)后續(xù)上報數(shù)據(jù)的步驟,否則將采集到的數(shù)據(jù)丟棄,并不執(zhí)行觸發(fā)后續(xù)上報數(shù)據(jù)的步驟。
所述后臺服務(wù)器可以在上報策略中根據(jù)具體情況來設(shè)置所述是否允許上報的標(biāo)記,例如后臺服務(wù)器可以根據(jù)上報數(shù)據(jù)的異常情況確定是否允許上報的標(biāo)記,如果上報數(shù)據(jù)的異常次數(shù)連續(xù)超過指定閾值,則將最新的上報策略中確定為不允許上報的標(biāo)記,并下發(fā)給對應(yīng)的移動設(shè)備,否則將最新的上報策略中確定為允許上報的標(biāo)記,并下發(fā)給對應(yīng)的移動設(shè)備。
或者,例如后臺服務(wù)器也可以針對移動設(shè)備用戶的類型不同而分別設(shè)置不同的上報策略,例如針對某些用戶,可以在針對該用戶的上報策略中設(shè)置允許上報的標(biāo)記;而針對另一些用戶,可以在針對這些用戶的上報策略中設(shè)置不允許上報的標(biāo)記。
所述移動設(shè)備在收到最新的上報策略后,如果其中包括不允許上報的標(biāo)記,則將采集到的數(shù)據(jù)丟棄,不再上報數(shù)據(jù)。這樣可以在當(dāng)服務(wù)器發(fā)生網(wǎng)絡(luò)請求異常過多或雪崩事故的情況下,可以通過及時在最新的上報策略中設(shè)置不允許上報的標(biāo)記,從而可以緩解當(dāng)前的異常問題,即可以減輕服務(wù)器的壓力,又可以減少對移動設(shè)備資源的浪費(fèi);而且,通過在最新的上報策略中設(shè)置不允許上報的標(biāo)記,可以將惡意刷數(shù)據(jù)的用戶屏蔽掉。
與上述方法對應(yīng),本發(fā)明還公開了一種移動設(shè)備的數(shù)據(jù)采集上報系統(tǒng),,用于執(zhí)行本發(fā)明所述的方法。圖2為本發(fā)明公開的一種移動設(shè)備的數(shù)據(jù)采集上報系統(tǒng)的一種組成示意圖,參見圖2,該系統(tǒng)具體包括:包括:
采集模塊201,用于在移動設(shè)備采集數(shù)據(jù);
上報模塊202,其中包括下載子模塊221和上報子模塊222;
所述下載子模塊221用于在移動設(shè)備初始上報數(shù)據(jù)之前,下載最新的上報策略,更新本地的當(dāng)前上報策略為最新的上報策略;在每次上報所采集的數(shù)據(jù)成功后,下載最新的上報策略,更新本地的當(dāng)前上報策略為最新的上報策略;
所述上報子模塊222用于根據(jù)本地當(dāng)前的上報策略中指示的上報方式,上報所采集的數(shù)據(jù)。
所述采集模塊201和上報模塊202設(shè)置在移動設(shè)備上,其中所述采集模塊201作為埋點(diǎn)sdk設(shè)置在移動設(shè)備的應(yīng)用程序(app)中;所述上報模塊202,例如在andriod操作系統(tǒng)中是移動設(shè)備的一種服務(wù)(service)組件;再例如在ios操作系統(tǒng)中,所述上報模塊可以采用service組件的方式,也可以是類似事件驅(qū)動的一個消息隊列。
下面以service組件為例進(jìn)行說明。
service是移動設(shè)備操作系統(tǒng)的四大組件之一,運(yùn)行于移動設(shè)備操作系統(tǒng)后臺,用于不需要界面的耗時操作。通過應(yīng)用組件可以啟動service,app應(yīng)用組件的切換不會影響service。
在一種優(yōu)選實施例中,所述上報策略具體包括:二種以上網(wǎng)絡(luò)狀況信息及每種網(wǎng)絡(luò)狀況信息對應(yīng)的上報方式;所述上報方式具體包括:觸發(fā)上報的周期、和/或觸發(fā)上報的數(shù)據(jù)量。所述上報子模塊222具體用于:確定移動設(shè)備當(dāng)前的網(wǎng)絡(luò)狀況,根據(jù)當(dāng)前的網(wǎng)絡(luò)狀況查詢所述本地當(dāng)前的上報策略中相應(yīng)的網(wǎng)絡(luò)狀況信息所對應(yīng)的上報方式,按照該上報方式上報所采集的數(shù)據(jù)。
更為具體的,
當(dāng)所述上報方式中包括觸發(fā)上報的周期時,所述上報子模塊222具體用于:通過定時器監(jiān)視時間周期,當(dāng)?shù)竭_(dá)所述觸發(fā)上報的周期時,上報所采集的數(shù)據(jù),并重置定時器繼續(xù)監(jiān)視時間周期;
當(dāng)所述上報方式中包括觸發(fā)上報的數(shù)據(jù)量時,所述上報子模塊222具體用于:通過計數(shù)器監(jiān)視所采集的數(shù)據(jù)量,當(dāng)?shù)竭_(dá)所述觸發(fā)上報的數(shù)據(jù)量時,上報所采集的數(shù)據(jù),并重置計數(shù)器繼續(xù)監(jiān)視所采集的數(shù)據(jù)量;
當(dāng)所述上報方式中包括觸發(fā)上報的周期和觸發(fā)上報的數(shù)據(jù)量時,所述上報子模塊222具體用于:通過定時器監(jiān)視時間周期,和通過計數(shù)器監(jiān)視所采集的數(shù)據(jù)量;當(dāng)?shù)竭_(dá)所述觸發(fā)上報的周期時,上報所采集的數(shù)據(jù),并重置定時器繼續(xù)監(jiān)視時間周期;當(dāng)?shù)竭_(dá)所述觸發(fā)上報的數(shù)據(jù)量時,上報所采集的數(shù)據(jù),并重置計數(shù)器繼續(xù)監(jiān)視所采集的數(shù)據(jù)量。
在進(jìn)一步的實施例中,該系統(tǒng)進(jìn)一步包括后臺服務(wù)器模塊,設(shè)置在用于接收上報數(shù)據(jù)的后臺服務(wù)器側(cè),用于設(shè)置并調(diào)整上報策略,供移動設(shè)備下載該上報策略。還可以根據(jù)具體不同的情況在上報策略中設(shè)置是否允許上報的標(biāo)記。
所述采集模塊201進(jìn)一步用于:查詢上報策略中的所述是否允許上報的標(biāo)記,如果為允許上報的標(biāo)記則將采集到的數(shù)據(jù)存入緩存,并執(zhí)行觸發(fā)后續(xù) 上報數(shù)據(jù)的步驟,否則將采集到的數(shù)據(jù)丟棄。
下面通過更為具體的實施例,對本發(fā)明的方法做進(jìn)一步的說明。
本發(fā)明中,為了防止后臺在下發(fā)上報策略時異常,本發(fā)明的數(shù)據(jù)采集上報系統(tǒng)預(yù)先在移動設(shè)備中準(zhǔn)備一套默認(rèn)的上報策略,初始化上報模塊時,單獨(dú)請求下載一次上報策略,在以后每次上報數(shù)據(jù)成功之后,后臺服務(wù)器會返回合適的上報策略,數(shù)據(jù)采集上報系統(tǒng)據(jù)此更新上報策略之后用于下次上報,這種上報策略的更新方式的實時性更好。因為避免的多次單獨(dú)請求策略,更新策略的開銷也小很多。
圖3為本發(fā)明的一種初始上報策略更新的詳細(xì)流程圖。參見圖3,該流程具體包括:
步驟301.移動設(shè)備初始化埋點(diǎn)sdk(即采集模塊)時,初始化移動設(shè)備端的上報策略為默認(rèn)策略。該默認(rèn)上報策略預(yù)先在移動設(shè)備中設(shè)置好。
步驟302.初始化埋點(diǎn)sdk時,啟動用于上報數(shù)據(jù)的上報模塊對應(yīng)的服務(wù)(service)組件。
步驟303.初始化所述服務(wù)組件,其中包括將上報策略初始化為所述默認(rèn)策略。
步驟304.啟動所述上報模塊。
步驟305.所述上報模塊向后臺服務(wù)器發(fā)起第一次下載上報策略的請求。后臺服務(wù)器收到該請求后會將最新的下載策略下載至發(fā)起請求的移動設(shè)備。
步驟306.最新的上報策略是否下載成功(即是否成功獲取到上報策略),如果成功則跳到步驟307,否則跳到步驟310。
步驟307.更新所述上報模塊的上報策略為所述最新的上報策略。
步驟308.上報模塊獲取到所述最新的上報策略后,在移動設(shè)備中通過廣播(broadcast)的方式將該最新的上報策略發(fā)送給app。broadcast是移動設(shè)備操作系統(tǒng)的4大組件之一,用于應(yīng)用程序之間傳輸數(shù)據(jù)。如activity和service傳輸數(shù)據(jù)時,可以使用廣播技術(shù)。
步驟309.app中的采集模塊收到最新的上報策略后,將本采集模塊中的上報策略更新為最新的上報策略。所述采集模塊主要是利用上報策略中的是否允許上報的標(biāo)記來決定是否將采集到的數(shù)據(jù)存入緩存還是丟棄。
步驟310.回退上報模塊的上報策略為默認(rèn)上報策略。
步驟311.上報模塊在移動設(shè)備中通過廣播的方式將下載上報策略失敗的結(jié)果發(fā)送給app。
步驟312.app中的采集模塊收到下載失敗的結(jié)果后,將本采集模塊中的上報策略回退至默認(rèn)上報策略。
圖4為本發(fā)明的一種每次上報數(shù)據(jù)時進(jìn)行上報策略更新的詳細(xì)流程圖。參見圖4,該流程具體包括:
步驟401.觸發(fā)上報線程上報數(shù)據(jù)。
步驟402.上報數(shù)據(jù)結(jié)束。
步驟403.判斷數(shù)據(jù)上報是否成功,如果成功則跳至步驟404,否則跳至步驟408.
步驟404.向后臺服務(wù)器發(fā)起下載最新的上報策略的請求,并下載最新的上報策略,如果下載成功則跳至步驟405,否則跳至步驟408。
步驟405.更新所述上報模塊的上報策略為所述最新的上報策略。
步驟406.上報模塊獲取到所述最新的上報策略后,在移動設(shè)備中通過廣播的方式將該最新的上報策略發(fā)送給app。
步驟407.app中的采集模塊收到最新的上報策略后,將本采集模塊中的上報策略更新為最新的上報策略。所述采集模塊主要是利用上報策略中的是否允許上報的標(biāo)記來決定是否將采集到的數(shù)據(jù)存入緩存還是丟棄。
步驟408.回退上報模塊的上報策略為默認(rèn)上報策略。
步驟409.上報模塊在移動設(shè)備中通過廣播的方式將下載上報策略失敗的結(jié)果發(fā)送給app。
步驟410.app中的采集模塊收到下載失敗的結(jié)果后,將本采集模塊中的 上報策略回退至默認(rèn)上報策略。
圖5為本發(fā)明的一種數(shù)據(jù)采集模塊采集數(shù)據(jù)的流程圖。參見圖5,該流程包括:
步驟501.采集模塊即所述埋點(diǎn)sdk采集數(shù)據(jù)。
步驟502.采集模塊查詢本地的上報策略中的是否允許上報的標(biāo)記。
步驟503.如果是允許上報的標(biāo)記,則跳至步驟504;如果是不允許上報的標(biāo)記則跳至步驟505。
步驟504.將所采集到的數(shù)據(jù)存入緩存等待上報模塊進(jìn)行上報。
步驟505.將所采集到的數(shù)據(jù)丟棄。
所述后臺服務(wù)器在收到若干次異常數(shù)據(jù)之后進(jìn)行判斷分析,如果認(rèn)為該移動設(shè)備出于異常上報雪崩的狀態(tài),則下發(fā)策略中將攜帶不允許上報的標(biāo)記,以此避免大量重復(fù)的異常數(shù)據(jù)上報。
對于數(shù)據(jù)的上報,所述上報模塊可以根據(jù)本地的上報策略,按照時間(時間周期)和當(dāng)前數(shù)據(jù)累計條數(shù)(即數(shù)據(jù)量)分兩條線路觸發(fā)上報請求。
圖6為本發(fā)明的一種按照時間上報數(shù)據(jù)的流程圖。參見圖6,該流程包括:
步驟601.上報模塊在獲取到最新的上傳策略后,如果該上傳策略中包含觸發(fā)上傳的周期,例如此處為t1,則啟動定時器,將該定時器的時間周期設(shè)置為t1。例如具體的,可以采用移動設(shè)備操作系統(tǒng)的handler函數(shù)設(shè)置定時器,所述handler函數(shù)用于異步消息的處理,可以利用sendmessagedelay的技術(shù)模擬定時器的操作。
步驟602.所述定時器監(jiān)測時間周期,一旦到達(dá)t1,則跳至步驟603;否則繼續(xù)監(jiān)測時間周期。
步驟603.上報模塊從所述緩存中讀取采集的數(shù)據(jù),上報數(shù)據(jù)到后臺服務(wù)器。
步驟604.在所述數(shù)據(jù)上報成功后,后臺服務(wù)器將最新的上報策略下發(fā)給移動設(shè)備的上報模塊,上報模塊利用最新的上報策略更新本地的上報策略。
步驟605.按照最新的上報策略中的觸發(fā)上傳的周期來重新設(shè)置定時器的時間周期。例如此處最新的上報策略中的觸發(fā)上傳的周期為t2,則將定時器重置為t2,等到時間到達(dá)t2時再觸發(fā)下一次數(shù)據(jù)上報。
圖7為本發(fā)明的一種按照觸發(fā)上報的數(shù)據(jù)量上報數(shù)據(jù)的流程圖。在此實施例中,所述觸發(fā)上報的數(shù)據(jù)量是所采集數(shù)據(jù)的累計條數(shù),包含在上報策略中。參見圖7,該流程包括:
步驟701.app端的采集模塊每次采集到需要上報的數(shù)據(jù)后,將所采集的數(shù)據(jù)條數(shù)通知給上報模塊。
步驟702.上報模塊通過計數(shù)器來累加所述采集模塊所采集到的數(shù)據(jù)條數(shù)。該計數(shù)器在初始狀態(tài)下需要置0。
步驟703.判斷計數(shù)器所計的數(shù)據(jù)條數(shù)是否到達(dá)當(dāng)前上報策略中的觸發(fā)上報的數(shù)據(jù)量例如m1,如果是則跳至步驟704;否則繼續(xù)檢查判斷當(dāng)前計數(shù)器所計的數(shù)據(jù)條數(shù)。
步驟704.上報模塊讀取采集的數(shù)據(jù),上報數(shù)據(jù)到后臺服務(wù)器。
步驟705.在所述數(shù)據(jù)上報成功后,后臺服務(wù)器將最新的上報策略下發(fā)給移動設(shè)備的上報模塊,上報模塊利用最新的上報策略更新本地的上報策略,例如此時最新的上報策略中的觸發(fā)上傳的數(shù)據(jù)量例如可以為m2,那么下次在步驟703判斷是判斷數(shù)據(jù)條數(shù)是否超過該m2。
步驟706.重置計數(shù)器為0。
另外,在本發(fā)明各個實施例中的各功能模塊可以集成在一個處理單元中,也可以是各個模塊單獨(dú)物理存在,也可以兩個或兩個以上模塊集成在一個單元中。上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。所述各實施例的功能模塊可以位于一個終端或網(wǎng)絡(luò)節(jié)點(diǎn),或 者也可以分布到多個終端或網(wǎng)絡(luò)節(jié)點(diǎn)上。
另外,本發(fā)明的每一個實施例可以通過由數(shù)據(jù)處理設(shè)備如計算機(jī)執(zhí)行的數(shù)據(jù)處理程序來實現(xiàn)。顯然,數(shù)據(jù)處理程序構(gòu)成了本發(fā)明。此外,通常存儲在一個存儲介質(zhì)中的數(shù)據(jù)處理程序通過直接將程序讀取出存儲介質(zhì)或者通過將程序安裝或復(fù)制到數(shù)據(jù)處理設(shè)備的存儲設(shè)備(如硬盤和或內(nèi)存)中執(zhí)行。因此,這樣的存儲介質(zhì)也構(gòu)成了本發(fā)明。存儲介質(zhì)可以使用任何類型的記錄方式,例如紙張存儲介質(zhì)(如紙帶等)、磁存儲介質(zhì)(如軟盤、硬盤、閃存等)、光存儲介質(zhì)(如cd-rom等)、磁光存儲介質(zhì)(如mo等)等。
因此本發(fā)明還公開了一種存儲介質(zhì),其中存儲有數(shù)據(jù)處理程序,該數(shù)據(jù)處理程序用于執(zhí)行本發(fā)明上述方法的任何一種實施例。
另外,本發(fā)明所述的方法步驟除了可以用數(shù)據(jù)處理程序來實現(xiàn),還可以由硬件來實現(xiàn),例如,可以由邏輯門、開關(guān)、專用集成電路(asic)、可編程邏輯控制器和嵌入微控制器等來實現(xiàn)。因此這種可以實現(xiàn)本發(fā)明所述方法的硬件也可以構(gòu)成本發(fā)明。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明保護(hù)的范圍之內(nèi)。