本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,具體涉及一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取方法和裝置。
背景技術(shù):
隨著移動(dòng)終端的普及,移動(dòng)應(yīng)用,簡(jiǎn)稱APP,種類越來(lái)越多樣化。由于APP開(kāi)發(fā)商的開(kāi)發(fā)水平不一,同時(shí)對(duì)于APP質(zhì)量把關(guān)標(biāo)準(zhǔn)不同,導(dǎo)致不同開(kāi)發(fā)商的APP的質(zhì)量高低不等。對(duì)于質(zhì)量較低的APP,其發(fā)生運(yùn)行異常的幾率就會(huì)較大。另外,不同的移動(dòng)終端所處的網(wǎng)絡(luò)環(huán)境、所使用的操作系統(tǒng)、屏幕分辨率等因素也會(huì)影響APP的運(yùn)行,如誘發(fā)APP的崩潰(crash)、導(dǎo)致APP運(yùn)行緩慢等性能問(wèn)題的發(fā)生。
為了能夠及時(shí)修復(fù)上述問(wèn)題,進(jìn)一步完善APP的整體性能,APP開(kāi)發(fā)者需要及時(shí)了解APP運(yùn)行異常的原因。
目前,當(dāng)APP發(fā)生異常時(shí),移動(dòng)終端會(huì)記錄發(fā)生異常的代碼堆棧,如代碼的調(diào)用關(guān)系,或者會(huì)記錄異常發(fā)生時(shí)的表層信息,如網(wǎng)絡(luò)異常的url地址。但是,上述記錄的信息僅能夠啟到告知APP開(kāi)發(fā)者異常已經(jīng)發(fā)生,以及發(fā)生在哪個(gè)步驟,并不能為APP開(kāi)發(fā)者提供找到APP運(yùn)行異常的最終原因的依據(jù)。
技術(shù)實(shí)現(xiàn)要素:
為了給APP開(kāi)發(fā)者提供運(yùn)行異常的分析依據(jù),本發(fā)明提供了一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取方法和裝置。
本發(fā)明提供了一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取方法,所述方法包括:
實(shí)時(shí)監(jiān)控APP的運(yùn)行狀態(tài),并判斷所述運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài),所述運(yùn)行異常狀態(tài)包括所述APP發(fā)生崩潰,或者所述APP的運(yùn)行速度低于速度閾值;
一旦所述APP處于運(yùn)行異常狀態(tài),則抓取所述APP在所述運(yùn)行異常狀態(tài) 下的場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因,所述場(chǎng)景數(shù)據(jù)包括與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù)和\或當(dāng)前移動(dòng)終端的屬性信息。
優(yōu)選地,所述方法還包括:
將抓取的所述場(chǎng)景數(shù)據(jù)上傳至服務(wù)器;
當(dāng)所述APP的開(kāi)發(fā)者訪問(wèn)所述服務(wù)器時(shí),所述服務(wù)器為所述APP的開(kāi)發(fā)者提供所述場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因。
優(yōu)選地,所述抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),包括:
通過(guò)訪問(wèn)系統(tǒng)API接口,獲取當(dāng)前移動(dòng)終端的屬性信息,所述屬性信息包括操作系統(tǒng)、內(nèi)存大小、屏幕分辨率、運(yùn)營(yíng)商信息以及自定義的用戶信息。
優(yōu)選地,所述方法還包括:
實(shí)時(shí)記錄用戶對(duì)所述APP的操作路徑,并將所述操作路徑存儲(chǔ)在內(nèi)存;
相應(yīng)的,所述抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),包括:
通過(guò)讀取內(nèi)存,獲取所述用戶的最新操作路徑,所述最新操作路徑為所述用戶在本次異常之前的連續(xù)N次操作路徑,所述N為自然數(shù)。
優(yōu)選地,所述方法還包括:
以預(yù)設(shè)的頻率,檢測(cè)所述內(nèi)存中的操作路徑的數(shù)量;
當(dāng)所述內(nèi)存中的操作路徑大于M條時(shí),刪除最早存儲(chǔ)的操作路徑,以便所述內(nèi)存中保持存有M條最新操作路徑,所述M為自然數(shù)。
本發(fā)明還提供了一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取裝置,所述裝置包括:
監(jiān)控判斷模塊,用于實(shí)時(shí)監(jiān)控APP的運(yùn)行狀態(tài),并判斷所述運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài),所述運(yùn)行異常狀態(tài)包括所述APP發(fā)生崩潰,或者所述APP的運(yùn)行速度低于速度閾值;
抓取模塊,用于一旦所述APP處于運(yùn)行異常狀態(tài),則抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因,所述場(chǎng)景數(shù)據(jù)包括與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù) 和\或當(dāng)前移動(dòng)終端的屬性信息。
優(yōu)選地,所述裝置還包括:
上傳模塊,用于將抓取的所述場(chǎng)景數(shù)據(jù)上傳至服務(wù)器;其中,當(dāng)所述APP的開(kāi)發(fā)者訪問(wèn)所述服務(wù)器時(shí),所述服務(wù)器為所述APP的開(kāi)發(fā)者提供所述場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因。
優(yōu)選地,所述抓取模塊,包括:
獲取子模塊,用于通過(guò)訪問(wèn)系統(tǒng)API接口,獲取當(dāng)前移動(dòng)終端的屬性信息,所述屬性信息包括操作系統(tǒng)、內(nèi)存大小、屏幕分辨率、運(yùn)營(yíng)商信息以及自定義的用戶信息。
優(yōu)選地,所述裝置還包括:
記錄存儲(chǔ)模塊,用于實(shí)時(shí)記錄用戶對(duì)所述APP的操作路徑,并將所述操作路徑存儲(chǔ)在內(nèi)存;
相應(yīng)的,所述抓取模塊,包括:
獲取模塊,用于通過(guò)讀取內(nèi)存,獲取所述用戶的最新操作路徑,所述最新操作路徑為所述用戶在本次異常之前的連續(xù)N次操作路徑,所述N為自然數(shù)。
優(yōu)選地,所述裝置還包括:
檢測(cè)模塊,用于以預(yù)設(shè)的頻率,檢測(cè)所述內(nèi)存中的操作路徑的數(shù)量;
刪除模塊,用于當(dāng)所述內(nèi)存中的操作路徑大于M條時(shí),刪除最早存儲(chǔ)的操作路徑,以便所述內(nèi)存中保持存有M條最新操作路徑,所述M為自然數(shù)。
本發(fā)明中,實(shí)時(shí)監(jiān)控APP的運(yùn)行狀態(tài),并判斷所述運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài),所述運(yùn)行異常狀態(tài)包括所述APP發(fā)生崩潰,或者所述APP的運(yùn)行速度低于速度閾值;一旦所述APP處于運(yùn)行異常狀態(tài),則抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因,所述場(chǎng)景數(shù)據(jù)包括與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù)和\或當(dāng)前移動(dòng)終端的屬性信息。與現(xiàn)有技術(shù)相比,本發(fā)明中APP開(kāi)發(fā)者能夠根據(jù)異常發(fā)生時(shí)系統(tǒng)抓取的場(chǎng)景數(shù)據(jù),分析得出APP運(yùn)行異常的原因,以便解決運(yùn)行異常的問(wèn)題,進(jìn)一步完善APP的功能。
附圖說(shuō)明
為了更清楚地說(shuō)明本申請(qǐng)實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本申請(qǐng)的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取方法流程圖;
圖2為本發(fā)明實(shí)施例提供的另一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取方法流程圖;
圖3為本發(fā)明實(shí)施例提供的一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取裝置結(jié)構(gòu)圖;
圖4為本發(fā)明提供的客戶端的部分結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本申請(qǐng)實(shí)施例中的附圖,對(duì)本申請(qǐng)實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請(qǐng)一部分實(shí)施例,而不是全部的實(shí)施例。基于本申請(qǐng)中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請(qǐng)保護(hù)的范圍。
參考圖1,為本發(fā)明實(shí)施例提供的一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取方法流程圖,所述方法具體可以包括:
S101:實(shí)時(shí)監(jiān)控APP的運(yùn)行狀態(tài),并判斷所述運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài),所述運(yùn)行異常狀態(tài)包括所述APP發(fā)生崩潰,或者所述APP的運(yùn)行速度低于速度閾值。
本實(shí)施例中,移動(dòng)終端安裝APP后,只要所述APP處于運(yùn)行狀態(tài),系統(tǒng)則會(huì)實(shí)時(shí)監(jiān)控所述APP的運(yùn)行狀態(tài)。同時(shí),系統(tǒng)會(huì)判斷所述APP的運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài)。也就是說(shuō),系統(tǒng)可以判斷所述APP的當(dāng)前運(yùn)行狀態(tài)是否為所述APP發(fā)生崩潰的狀態(tài),或者是否為所述APP的運(yùn)行速度低于速度閾值,具體的,所述速度閾值可以是當(dāng)前移動(dòng)終端的用戶自己設(shè)置的,也可以是在當(dāng)前移動(dòng)終端聯(lián)網(wǎng)時(shí),服務(wù)器統(tǒng)一下發(fā)的。另外,速度閾值可以根據(jù)用戶需 要進(jìn)行修改,可以在移動(dòng)終端自行修改,也可以是服務(wù)器統(tǒng)一修改并統(tǒng)一下發(fā)。
S102:一旦所述APP處于運(yùn)行異常狀態(tài),則抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因,所述場(chǎng)景數(shù)據(jù)包括與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù)和\或當(dāng)前移動(dòng)終端的屬性信息。
本實(shí)施例中,如果系統(tǒng)在判斷所述APP的運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài)時(shí),確定所述APP的運(yùn)行狀態(tài)為運(yùn)行異常狀態(tài),則立即抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)。其中,運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)包括與本次發(fā)生異常相關(guān)的實(shí)時(shí)數(shù)據(jù)、當(dāng)前移動(dòng)終端的屬性信息。具體的,與本次發(fā)生異常相關(guān)的實(shí)時(shí)數(shù)據(jù)可以包括當(dāng)前移動(dòng)終端的內(nèi)存剩余量、CPU使用率。當(dāng)前移動(dòng)終端的屬性信息可以包括當(dāng)前移動(dòng)終端的操作系統(tǒng)、內(nèi)存大小、屏幕分辨率、運(yùn)營(yíng)商信息以及自定義的用戶信息,如用戶郵箱等。APP開(kāi)發(fā)者通過(guò)分析發(fā)生異常的APP所安裝的移動(dòng)終端的屬性信息,可以判斷是否某類異常的發(fā)生與某種類型的移動(dòng)終端有關(guān)。另外,移動(dòng)終端的內(nèi)存剩余量、CPU使用率等也會(huì)導(dǎo)致某種類型的APP運(yùn)行異常。實(shí)際操作中,通過(guò)訪問(wèn)系統(tǒng)API接口,獲取與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù),以及當(dāng)前移動(dòng)終端的屬性信息。所述APP的開(kāi)發(fā)者可以根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因。
另外,場(chǎng)景數(shù)據(jù)中與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù)還可以包括所述APP的操作用戶的操作路徑。實(shí)際操作中,一旦系統(tǒng)確定所述APP處于運(yùn)行異常狀態(tài),則獲取用戶對(duì)該APP的操作路徑。事實(shí)上,在APP運(yùn)行的過(guò)程中,系統(tǒng)可以實(shí)時(shí)的記錄操作用戶對(duì)所述APP的操作路徑,并將記錄的操作路徑存儲(chǔ)在系統(tǒng)的內(nèi)存中。當(dāng)系統(tǒng)確定所述APP處于運(yùn)行異常狀態(tài)時(shí),系統(tǒng)可以通過(guò)讀取內(nèi)存,獲取所述用戶的最新操作路徑,如用戶點(diǎn)擊或觸摸所述APP的各個(gè)功能按鍵的先后順序等。具體的,APP開(kāi)發(fā)者可以根據(jù)用戶的操作路徑分析該APP的異常原因。
值得注意的是,系統(tǒng)通過(guò)讀取內(nèi)存獲取的最新操作路徑為所述用戶在本次異常之前的連續(xù)N次操作路徑,所述N為自然數(shù)。也就是說(shuō),只有距異常發(fā)生最近的若干次操作,才可能是導(dǎo)致APP運(yùn)行異常的原因。
另外,實(shí)際操作中,本實(shí)施例還可以通過(guò)刪除早期存儲(chǔ)的操作路徑的方法 管理系統(tǒng)的內(nèi)存。具體的,系統(tǒng)可以以預(yù)設(shè)的頻率,檢測(cè)所述內(nèi)存中的操作路徑的數(shù)量。如每天十二點(diǎn)檢測(cè)一次內(nèi)存的操作路徑數(shù)量。當(dāng)檢測(cè)到所述內(nèi)存中的操作路徑大于M條時(shí),刪除最早存儲(chǔ)的操作路徑,以便所述內(nèi)存中保持存有M條最新操作路徑,所述M為自然數(shù)。具體的,M可以設(shè)置為30。
本發(fā)明實(shí)施例中,系統(tǒng)實(shí)時(shí)監(jiān)控APP的運(yùn)行狀態(tài),并判斷所述運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài),所述運(yùn)行異常狀態(tài)包括所述APP發(fā)生崩潰,或者所述APP的運(yùn)行速度低于速度閾值。一旦所述APP處于運(yùn)行異常狀態(tài),則抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因,所述場(chǎng)景數(shù)據(jù)包括與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù)和\或當(dāng)前移動(dòng)終端的屬性信息。與現(xiàn)有技術(shù)相比,本發(fā)明中APP開(kāi)發(fā)者能夠根據(jù)異常發(fā)生時(shí)系統(tǒng)抓取的場(chǎng)景數(shù)據(jù),分析得出APP運(yùn)行異常的原因,以便解決運(yùn)行異常的問(wèn)題,進(jìn)一步完善APP的功能。
參考圖2,為本發(fā)明實(shí)施例提供的另一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取方法流程圖,所述方法包括:
S201:實(shí)時(shí)監(jiān)控APP的運(yùn)行狀態(tài),并判斷所述運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài),所述運(yùn)行異常狀態(tài)包括所述APP發(fā)生崩潰,或者所述APP的運(yùn)行速度低于速度閾值;
S202:一旦所述APP處于運(yùn)行異常狀態(tài),則抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因,所述場(chǎng)景數(shù)據(jù)包括與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù)和\或當(dāng)前移動(dòng)終端的屬性信息。
S201、S202與S101、S102分別相同,可以參照理解,在此不再贅述。
S203:將抓取的所述場(chǎng)景數(shù)據(jù)上傳至服務(wù)器。
實(shí)際操作中,移動(dòng)終端可以將抓取的各個(gè)APP的場(chǎng)景數(shù)據(jù)上傳至同一服務(wù)器。具體的,所述服務(wù)器可以用于管理各個(gè)APP的場(chǎng)景數(shù)據(jù),并供APP開(kāi)發(fā)者查看。
S204:當(dāng)所述APP的開(kāi)發(fā)者訪問(wèn)所述服務(wù)器時(shí),所述服務(wù)器為所述APP的開(kāi)發(fā)者提供所述場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析 所述APP運(yùn)行異常的原因。
實(shí)際操作中,APP開(kāi)發(fā)者可以通過(guò)預(yù)先注冊(cè)的用戶名和密碼登錄服務(wù)器。同時(shí),可以查看或者下載所述APP的場(chǎng)景數(shù)據(jù),以便根據(jù)這些場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因。
通過(guò)本實(shí)施例的方法,APP開(kāi)發(fā)者能夠統(tǒng)一登錄到服務(wù)器了解APP運(yùn)行異常的場(chǎng)景數(shù)據(jù),并根據(jù)這些場(chǎng)景數(shù)據(jù)分析得出所述APP運(yùn)行異常的原因。
參考圖3,為本發(fā)明實(shí)施例提供的一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取裝置,所述裝置具體包括:
監(jiān)控判斷模塊301,用于實(shí)時(shí)監(jiān)控APP的運(yùn)行狀態(tài),并判斷所述運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài),所述運(yùn)行異常狀態(tài)包括所述APP發(fā)生崩潰,或者所述APP的運(yùn)行速度低于速度閾值;
抓取模塊302,用于一旦所述APP處于運(yùn)行異常狀態(tài),則抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因,所述場(chǎng)景數(shù)據(jù)包括與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù)和\或當(dāng)前移動(dòng)終端的屬性信息。
實(shí)際操作中,所述裝置還可以包括:上傳模塊,用于將抓取的所述場(chǎng)景數(shù)據(jù)上傳至服務(wù)器;其中,當(dāng)所述APP的開(kāi)發(fā)者訪問(wèn)所述服務(wù)器時(shí),所述服務(wù)器為所述APP的開(kāi)發(fā)者提供所述場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因。
一種實(shí)現(xiàn)方式中,所述抓取模塊可以包括:
獲取子模塊,用于通過(guò)訪問(wèn)系統(tǒng)API接口,獲取當(dāng)前移動(dòng)終端的屬性信息,所述屬性信息包括操作系統(tǒng)、內(nèi)存大小、屏幕分辨率、運(yùn)營(yíng)商信息以及自定義的用戶信息。
另一種實(shí)現(xiàn)方式中,所述抓取模塊可以包括:
獲取子模塊,用于在所述監(jiān)控判斷模塊的判斷結(jié)果為是時(shí),獲取當(dāng)前安裝所述APP的移動(dòng)終端的屬性信息,所述屬性信息包括操作系統(tǒng)、內(nèi)存大小、CPU占比、屏幕分辨率、運(yùn)營(yíng)商信息以及自定義的用戶信息。
為了更方便APP開(kāi)發(fā)人員分析APP運(yùn)行異常的原因,所述裝置還包括:
記錄存儲(chǔ)模塊,用于實(shí)時(shí)記錄用戶對(duì)所述APP的操作路徑,并將所述操作路徑存儲(chǔ)在內(nèi)存;
相應(yīng)的,所述抓取模塊,包括:
獲取模塊,用于通過(guò)讀取內(nèi)存,獲取所述用戶的最新操作路徑,所述最新操作路徑為所述用戶在本次異常之前的連續(xù)N次操作路徑,所述N為自然數(shù)。
為了維護(hù)系統(tǒng)內(nèi)存的反映性能,所述裝置還可以包括:
檢測(cè)模塊,用于以預(yù)設(shè)的頻率,檢測(cè)所述內(nèi)存中的操作路徑的數(shù)量;
刪除模塊,用于當(dāng)所述內(nèi)存中的操作路徑大于M條時(shí),刪除最早存儲(chǔ)的操作路徑,以便所述內(nèi)存中保持存有M條最新操作路徑,所述M為自然數(shù)。
本發(fā)明實(shí)施例中,監(jiān)控判斷模塊,用于實(shí)時(shí)監(jiān)控APP的運(yùn)行狀態(tài),并判斷所述運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài),所述運(yùn)行異常狀態(tài)包括所述APP發(fā)生崩潰,或者所述APP的運(yùn)行速度低于速度閾值;抓取模塊,用于一旦所述APP處于運(yùn)行異常狀態(tài),則抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因,所述場(chǎng)景數(shù)據(jù)包括與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù)和\或當(dāng)前移動(dòng)終端的屬性信息。與現(xiàn)有技術(shù)相比,本發(fā)明中APP開(kāi)發(fā)者能夠根據(jù)異常發(fā)生時(shí)系統(tǒng)抓取的場(chǎng)景數(shù)據(jù),分析得出APP運(yùn)行異常的原因,以便解決運(yùn)行異常的問(wèn)題,進(jìn)一步完善APP的功能。
本發(fā)明實(shí)施例還提供了一種終端,如圖4所示,為了便于說(shuō)明,僅示出了與本發(fā)明實(shí)施例相關(guān)的部分,具體技術(shù)細(xì)節(jié)未揭示的,請(qǐng)參照本發(fā)明實(shí)施例方法部分。該終端可以包括手機(jī)、平板電腦、PDA(Personal Digital Assistant,個(gè)人數(shù)字助理)、POS(Point of Sales,銷售終端)、車載電腦、個(gè)人計(jì)算機(jī)等任意終端設(shè)備,以終端為手機(jī)為例:
圖4示出的是與本發(fā)明實(shí)施例提供的終端相關(guān)的手機(jī)的部分結(jié)構(gòu)的框圖。參考圖4,手機(jī)包括:射頻(Radio Frequency,RF)電路410、存儲(chǔ)器420、輸入單元430、顯示單元440、傳感器450、音頻電路460、無(wú)線保真(wireless fidelity,WiFi)模塊470、處理器480、以及電源490等部件。本領(lǐng)域技術(shù)人員可以理解,圖4中示出的手機(jī)結(jié)構(gòu)并不構(gòu)成對(duì)手機(jī)的限定,可以包括比圖示 更多或更少的部件,或者組合某些部件,或者不同的部件布置。
下面結(jié)合圖4對(duì)手機(jī)的各個(gè)構(gòu)成部件進(jìn)行具體的介紹:
RF電路410可用于收發(fā)信息或通話過(guò)程中,信號(hào)的接收和發(fā)送,特別地,將基站的下行信息接收后,給處理器480處理;另外,將設(shè)計(jì)上行的數(shù)據(jù)發(fā)送給基站。通常,RF電路包括但不限于天線、至少一個(gè)放大器、收發(fā)信機(jī)、耦合器、低噪聲放大器(Low Noise Amplifier,LNA)、雙工器等。此外,RF電路410還可以通過(guò)無(wú)線通信與網(wǎng)絡(luò)和其他設(shè)備通信。上述無(wú)線通信可以使用任一通信標(biāo)準(zhǔn)或協(xié)議,包括但不限于全球移動(dòng)通訊系統(tǒng)(Global System of Mobile communication,GSM)、通用分組無(wú)線服務(wù)(General Packet Radio Service,GPRS)、碼分多址(Code Division Multiple Access,CDMA)、寬帶碼分多址(Wideband Code Division Multiple Access,WCDMA)、長(zhǎng)期演進(jìn)(Long Term Evolution,LTE))、電子郵件、短消息服務(wù)(Short Messaging Service,SMS)等。
存儲(chǔ)器420可用于存儲(chǔ)軟件程序以及模塊,處理器480通過(guò)運(yùn)行存儲(chǔ)在存儲(chǔ)器420的軟件程序以及模塊,從而執(zhí)行手機(jī)的各種功能應(yīng)用以及數(shù)據(jù)處理。存儲(chǔ)器420可主要包括存儲(chǔ)程序區(qū)和存儲(chǔ)數(shù)據(jù)區(qū),其中,存儲(chǔ)程序區(qū)可存儲(chǔ)操作系統(tǒng)、至少一個(gè)功能所需的應(yīng)用程序(比如聲音播放功能、圖像播放功能等)等;存儲(chǔ)數(shù)據(jù)區(qū)可存儲(chǔ)根據(jù)手機(jī)的使用所創(chuàng)建的數(shù)據(jù)(比如音頻數(shù)據(jù)、電話本等)等。此外,存儲(chǔ)器420可以包括高速隨機(jī)存取存儲(chǔ)器,還可以包括非易失性存儲(chǔ)器,例如至少一個(gè)磁盤存儲(chǔ)器件、閃存器件、或其他易失性固態(tài)存儲(chǔ)器件。
輸入單元430可用于接收輸入的數(shù)字或字符信息,以及產(chǎn)生與手機(jī)400的用戶設(shè)置以及功能控制有關(guān)的鍵信號(hào)輸入。具體地,輸入單元430可包括觸控面板431以及其他輸入設(shè)備432。觸控面板431,也稱為觸摸屏,可收集用戶在其上或附近的觸摸操作(比如用戶使用手指、觸筆等任何適合的物體或附件在觸控面板431上或在觸控面板431附近的操作),并根據(jù)預(yù)先設(shè)定的程式驅(qū)動(dòng)相應(yīng)的連接裝置。可選的,觸控面板431可包括觸摸檢測(cè)裝置和觸摸控制器兩個(gè)部分。其中,觸摸檢測(cè)裝置檢測(cè)用戶的觸摸方位,并檢測(cè)觸摸操作帶來(lái)的信號(hào),將信號(hào)傳送給觸摸控制器;觸摸控制器從觸摸檢測(cè)裝置上接收觸摸信 息,并將它轉(zhuǎn)換成觸點(diǎn)坐標(biāo),再送給處理器480,并能接收處理器480發(fā)來(lái)的命令并加以執(zhí)行。此外,可以采用電阻式、電容式、紅外線以及表面聲波等多種類型實(shí)現(xiàn)觸控面板431。除了觸控面板431,輸入單元430還可以包括其他輸入設(shè)備432。具體地,其他輸入設(shè)備432可以包括但不限于物理鍵盤、功能鍵(比如音量控制按鍵、開(kāi)關(guān)按鍵等)、軌跡球、鼠標(biāo)、操作桿等中的一種或多種。
顯示單元440可用于顯示由用戶輸入的信息或提供給用戶的信息以及手機(jī)的各種菜單。顯示單元440可包括顯示面板441,可選的,可以采用液晶顯示器(Liquid Crystal Display,LCD)、有機(jī)發(fā)光二極管(Organic Light-Emitting Diode,OLED)等形式來(lái)配置顯示面板441。進(jìn)一步的,觸控面板431可覆蓋顯示面板441,當(dāng)觸控面板431檢測(cè)到在其上或附近的觸摸操作后,傳送給處理器480以確定觸摸事件的類型,隨后處理器480根據(jù)觸摸事件的類型在顯示面板441上提供相應(yīng)的視覺(jué)輸出。雖然在圖4中,觸控面板431與顯示面板441是作為兩個(gè)獨(dú)立的部件來(lái)實(shí)現(xiàn)手機(jī)的輸入和輸入功能,但是在某些實(shí)施例中,可以將觸控面板431與顯示面板441集成而實(shí)現(xiàn)手機(jī)的輸入和輸出功能。
手機(jī)400還可包括至少一種傳感器450,比如光傳感器、運(yùn)動(dòng)傳感器以及其他傳感器。具體地,光傳感器可包括環(huán)境光傳感器及接近傳感器,其中,環(huán)境光傳感器可根據(jù)環(huán)境光線的明暗來(lái)調(diào)節(jié)顯示面板441的亮度,接近傳感器可在手機(jī)移動(dòng)到耳邊時(shí),關(guān)閉顯示面板441和/或背光。作為運(yùn)動(dòng)傳感器的一種,加速計(jì)傳感器可檢測(cè)各個(gè)方向上(一般為三軸)加速度的大小,靜止時(shí)可檢測(cè)出重力的大小及方向,可用于識(shí)別手機(jī)姿態(tài)的應(yīng)用(比如橫豎屏切換、相關(guān)游戲、磁力計(jì)姿態(tài)校準(zhǔn))、振動(dòng)識(shí)別相關(guān)功能(比如計(jì)步器、敲擊)等;至于手機(jī)還可配置的陀螺儀、氣壓計(jì)、濕度計(jì)、溫度計(jì)、紅外線傳感器等其他傳感器,在此不再贅述。
音頻電路460、揚(yáng)聲器461,傳聲器462可提供用戶與手機(jī)之間的音頻接口。音頻電路460可將接收到的音頻數(shù)據(jù)轉(zhuǎn)換后的電信號(hào),傳輸?shù)綋P(yáng)聲器761,由揚(yáng)聲器461轉(zhuǎn)換為聲音信號(hào)輸出;另一方面,傳聲器462將收集的聲音信號(hào)轉(zhuǎn)換為電信號(hào),由音頻電路460接收后轉(zhuǎn)換為音頻數(shù)據(jù),再將音頻數(shù)據(jù)輸出處理器480處理后,經(jīng)RF電路410以發(fā)送給比如另一手機(jī),或者將音頻數(shù)據(jù)輸 出至存儲(chǔ)器420以便進(jìn)一步處理。
WiFi屬于短距離無(wú)線傳輸技術(shù),手機(jī)通過(guò)WiFi模塊470可以幫助用戶收發(fā)電子郵件、瀏覽網(wǎng)頁(yè)和訪問(wèn)流式媒體等,它為用戶提供了無(wú)線的寬帶互聯(lián)網(wǎng)訪問(wèn)。雖然圖4示出了WiFi模塊470,但是可以理解的是,其并不屬于手機(jī)400的必須構(gòu)成,完全可以根據(jù)需要在不改變發(fā)明的本質(zhì)的范圍內(nèi)而省略。
處理器480是手機(jī)的控制中心,利用各種接口和線路連接整個(gè)手機(jī)的各個(gè)部分,通過(guò)運(yùn)行或執(zhí)行存儲(chǔ)在存儲(chǔ)器420內(nèi)的軟件程序和/或模塊,以及調(diào)用存儲(chǔ)在存儲(chǔ)器420內(nèi)的數(shù)據(jù),執(zhí)行手機(jī)的各種功能和處理數(shù)據(jù),從而對(duì)手機(jī)進(jìn)行整體監(jiān)控??蛇x的,處理器480可包括一個(gè)或多個(gè)處理單元;優(yōu)選的,處理器480可集成應(yīng)用處理器和調(diào)制解調(diào)處理器,其中,應(yīng)用處理器主要處理操作系統(tǒng)、用戶界面和應(yīng)用程序等,調(diào)制解調(diào)處理器主要處理無(wú)線通信??梢岳斫獾氖?,上述調(diào)制解調(diào)處理器也可以不集成到處理器480中。
手機(jī)400還包括給各個(gè)部件供電的電源490(比如電池),優(yōu)選的,電源可以通過(guò)電源管理系統(tǒng)與處理器480邏輯相連,從而通過(guò)電源管理系統(tǒng)實(shí)現(xiàn)管理充電、放電、以及功耗管理等功能。
盡管未示出,手機(jī)400還可以包括攝像頭、藍(lán)牙模塊等,在此不再贅述。
具體在本實(shí)施例中,終端中的處理器480會(huì)按照如下的指令,將一個(gè)或一個(gè)以上的應(yīng)用程序的進(jìn)程對(duì)應(yīng)的可執(zhí)行文件加載到存儲(chǔ)器420中,并由處理器480來(lái)運(yùn)行存儲(chǔ)在存儲(chǔ)器420中的應(yīng)用程序,從而實(shí)現(xiàn)以下功能:
實(shí)時(shí)監(jiān)控APP的運(yùn)行狀態(tài),并判斷所述運(yùn)行狀態(tài)是否為運(yùn)行異常狀態(tài),所述運(yùn)行異常狀態(tài)包括所述APP發(fā)生崩潰,或者所述APP的運(yùn)行速度低于速度閾值;
一旦所述APP處于運(yùn)行異常狀態(tài),則抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因,所述場(chǎng)景數(shù)據(jù)包括與本次異常相關(guān)的實(shí)時(shí)數(shù)據(jù)和\或當(dāng)前移動(dòng)終端的屬性信息。
優(yōu)選地,所述方法還包括:
將抓取的所述場(chǎng)景數(shù)據(jù)上傳至服務(wù)器;
當(dāng)所述APP的開(kāi)發(fā)者訪問(wèn)所述服務(wù)器時(shí),所述服務(wù)器為所述APP的開(kāi)發(fā) 者提供所述場(chǎng)景數(shù)據(jù),以便所述APP的開(kāi)發(fā)者根據(jù)所述場(chǎng)景數(shù)據(jù)分析所述APP運(yùn)行異常的原因。
優(yōu)選地,所述抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),包括:
通過(guò)訪問(wèn)系統(tǒng)API接口,獲取當(dāng)前移動(dòng)終端的屬性信息,所述屬性信息包括操作系統(tǒng)、內(nèi)存大小、屏幕分辨率、運(yùn)營(yíng)商信息以及自定義的用戶信息。
優(yōu)選地,所述方法還包括:
實(shí)時(shí)記錄用戶對(duì)所述APP的操作路徑,并將所述操作路徑存儲(chǔ)在內(nèi)存;
相應(yīng)的,所述抓取所述APP在所述運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù),包括:
通過(guò)讀取內(nèi)存,獲取所述用戶的最新操作路徑,所述最新操作路徑為所述用戶在本次異常之前的連續(xù)N次操作路徑,所述N為自然數(shù)。
優(yōu)選地,所述方法還包括:
以預(yù)設(shè)的頻率,檢測(cè)所述內(nèi)存中的操作路徑的數(shù)量;
當(dāng)所述內(nèi)存中的操作路徑大于M條時(shí),刪除最早存儲(chǔ)的操作路徑,以便所述內(nèi)存中保持存有M條最新操作路徑,所述M為自然數(shù)。
對(duì)于裝置實(shí)施例而言,由于其基本對(duì)應(yīng)于方法實(shí)施例,所以相關(guān)之處參見(jiàn)方法實(shí)施例的部分說(shuō)明即可。以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動(dòng)的情況下,即可以理解并實(shí)施。
需要說(shuō)明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)……”限定的要素,并不排除在包括 所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同要素。
以上對(duì)本發(fā)明實(shí)施例所提供的一種移動(dòng)應(yīng)用運(yùn)行異常狀態(tài)下的場(chǎng)景數(shù)據(jù)抓取方法和裝置進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說(shuō)明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說(shuō)明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。