本發(fā)明涉及Android應(yīng)用程序網(wǎng)絡(luò)流量的遠(yuǎn)程采集系統(tǒng)及方法。
背景技術(shù):
采集Android應(yīng)用程序運(yùn)行時(shí)產(chǎn)生的網(wǎng)絡(luò)流量時(shí),通常需要在計(jì)算機(jī)中部署一個(gè)網(wǎng)絡(luò)流量采集平臺(tái),這種方式對(duì)于一般的用戶或者僅需要少量網(wǎng)絡(luò)流量的研究人員而且是費(fèi)時(shí)費(fèi)力的。特別是在采集一些安全性未知的Android應(yīng)用程序時(shí),盲目的采集通常會(huì)帶來(lái)很大的安全隱患。
VNC(Virtual Network Computer)是虛擬網(wǎng)絡(luò)計(jì)算機(jī)的縮寫(xiě)。借助該技術(shù)在遠(yuǎn)程計(jì)算機(jī)上搭建VNC服務(wù)器,從而使用戶可以遠(yuǎn)程使用計(jì)算機(jī)。Android VNC Server是一款可以搭建在Android平臺(tái)上的VNC服務(wù)器,使用戶可以遠(yuǎn)程操控Android設(shè)備。
Guacamole是一個(gè)基于HTML 5和JavaScript的VNC查看器,服務(wù)端基于Java的VNC-to-XML代理開(kāi)發(fā)。要求瀏覽器支持HTML5。使用戶可以通過(guò)支持HTML5的瀏覽器訪問(wèn)遠(yuǎn)程的VNC服務(wù)器。
基于以上現(xiàn)狀,為解決遠(yuǎn)程采集Android應(yīng)用程序產(chǎn)生的網(wǎng)絡(luò)流量這一問(wèn)題,存在以下幾點(diǎn)技術(shù)問(wèn)題需要解決:
(1)如何遠(yuǎn)程運(yùn)行用戶操作指定的Android設(shè)備或者Android虛擬設(shè)備;
(2)如何滿足用戶上傳Android應(yīng)用程序安裝包,并且將Android應(yīng)用程序安裝包安裝到指定的受控Android設(shè)備或者Android虛擬設(shè)備;
(3)如何滿足用戶對(duì)應(yīng)用程序遠(yuǎn)程操作結(jié)束后,下載該應(yīng)用程序運(yùn)行時(shí)產(chǎn)生的網(wǎng)絡(luò)流量文件;
(4)如何滿足用戶遠(yuǎn)程對(duì)Android設(shè)備或者Android虛擬設(shè)備進(jìn)行操作,而不需要下載客戶端。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的就是為了解決上述問(wèn)題,提供一種Android應(yīng)用程序網(wǎng)絡(luò)流量的遠(yuǎn)程采集系統(tǒng)及方法,它具有讓用戶無(wú)需用戶搭建平臺(tái),僅需打開(kāi)網(wǎng)頁(yè)瀏覽器即可方便、快速獲取Android應(yīng)用程序流量的優(yōu)點(diǎn)。
為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:
Android應(yīng)用程序網(wǎng)絡(luò)流量的遠(yuǎn)程采集系統(tǒng),部署在遠(yuǎn)程服務(wù)器中,包括:
Web服務(wù)器,部署Guacamole組件、Guacd組件和Web控制模塊;所述Web服務(wù)器為Guacamole組件和Guacd組件提供運(yùn)行環(huán)境;
Guacamole組件,與數(shù)據(jù)庫(kù)連接,Guacamole組件還通過(guò)Guacd組件與Android終端連接,所述Guacamole組件用于將Android終端上的VNC服務(wù)器發(fā)出的數(shù)據(jù)傳給客戶端的瀏覽器,客戶端的瀏覽器支持HTML5,從而使用戶能夠直接在支持HTML5的瀏覽器中遠(yuǎn)程操控Android終端上的VNC服務(wù)器。
Web控制模塊,分別與數(shù)據(jù)庫(kù)、文件存儲(chǔ)服務(wù)器和Android終端連接,Web控制模塊用于完成用戶注冊(cè)登錄、將Android應(yīng)用程序安裝包遠(yuǎn)程上傳給Android終端和從Android終端下載網(wǎng)絡(luò)流量文件。
Web控制模塊包括:用戶信息處理子模塊、任務(wù)調(diào)配子模塊、Android終端控制子模塊和網(wǎng)絡(luò)流量文件鏈接生成子模塊;
用戶信息處理子模塊,與數(shù)據(jù)庫(kù)連接,負(fù)責(zé)用戶的注冊(cè)申請(qǐng)和登錄驗(yàn)證,當(dāng)用戶請(qǐng)求遠(yuǎn)程采集網(wǎng)絡(luò)流量時(shí),用戶信息處理子模塊會(huì)配合任務(wù)調(diào)配子模塊創(chuàng)建采集任務(wù),并將采集任務(wù)和用戶進(jìn)行綁定;
任務(wù)調(diào)配子模塊,負(fù)責(zé)用戶進(jìn)行流量采集任務(wù)時(shí)的調(diào)配工作,當(dāng)用戶請(qǐng)求遠(yuǎn)程采集網(wǎng)絡(luò)流量時(shí),任務(wù)調(diào)配子模塊創(chuàng)建采集任務(wù),將創(chuàng)建的采集任務(wù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,隨后向Android終端控制子模塊發(fā)送啟動(dòng)Android終端指令;
Android終端控制子模塊,用于接收任務(wù)調(diào)配子模塊的指令,控制Android終端安裝Android應(yīng)用程序,Android終端控制子模塊對(duì)網(wǎng)絡(luò)流量進(jìn)行采集,網(wǎng)絡(luò)流量采集結(jié)束時(shí),Android終端控制子模塊向網(wǎng)絡(luò)流量文件鏈接生成子模塊發(fā)出網(wǎng)絡(luò)流量采集結(jié)束的指令,采集到的網(wǎng)絡(luò)流量文件存儲(chǔ)到文件存儲(chǔ)服務(wù)器中;
網(wǎng)絡(luò)流量文件鏈接生成子模塊,對(duì)文件存儲(chǔ)服務(wù)器中存儲(chǔ)的網(wǎng)絡(luò)流量文件進(jìn)行處理,生成網(wǎng)絡(luò)流量文件鏈接,并將生成的網(wǎng)絡(luò)流量鏈接通過(guò)任務(wù)調(diào)配子模塊發(fā)送給客戶端,供用戶通過(guò)瀏覽器遠(yuǎn)程查看。
優(yōu)選的,所述Android終端包括Android設(shè)備或Android虛擬設(shè)備。
優(yōu)選的,所述Android終端安裝有Android VNC Server。
優(yōu)選的,所述遠(yuǎn)程服務(wù)器與防火墻連接。
優(yōu)選的,所述遠(yuǎn)程服務(wù)器依次通過(guò)防火墻和互聯(lián)網(wǎng)與支持HTML5瀏覽器的客戶端連接。
Android應(yīng)用程序網(wǎng)絡(luò)流量的遠(yuǎn)程采集方法,包括如下步驟:
步驟(1):接收選擇服務(wù)類(lèi)型的指令;若指令是通過(guò)批量Android應(yīng)用程序自動(dòng)操作來(lái)采集Android應(yīng)用程序運(yùn)行時(shí)產(chǎn)生的網(wǎng)絡(luò)流量,則進(jìn)入步驟(2);若指令是通過(guò)單個(gè)Android應(yīng)用程序手動(dòng)操作來(lái)采集Android應(yīng)用程序運(yùn)行時(shí)產(chǎn)生的網(wǎng)絡(luò)流量,則進(jìn)入步驟(3);
步驟(2):調(diào)用批量Android應(yīng)用程序自動(dòng)操作子流程進(jìn)行網(wǎng)絡(luò)流量采集;采集網(wǎng)絡(luò)流量任務(wù)完成后,檢測(cè)批量Android應(yīng)用程序自動(dòng)操作子流程返回的結(jié)果是否存在異常結(jié)束的標(biāo)示,如果存在,則直接結(jié)束;如果不存在異常結(jié)束的標(biāo)示,則向用戶發(fā)送任務(wù)完成指令,通知用戶進(jìn)行下載;
步驟(3):調(diào)用單個(gè)Android應(yīng)用程序手動(dòng)操作子流程進(jìn)行網(wǎng)絡(luò)流量采集;采集網(wǎng)絡(luò)流量任務(wù)完成后,檢測(cè)單個(gè)Android應(yīng)用程序手動(dòng)操作子流程返回的結(jié)果是否存在異常結(jié)束的標(biāo)示,如果存在,則直接結(jié)束;如果不存在異常結(jié)束的標(biāo)示,向用戶提供下載采集到的網(wǎng)絡(luò)流量文件的鏈接。
所述步驟(2)中的批量Android應(yīng)用程序自動(dòng)操作子流程的步驟為:
步驟(2-1):接收用戶批量上傳的Android應(yīng)用程序的安裝包;
步驟(2-2):調(diào)用aapt dump badging命令檢測(cè)Android應(yīng)用程序的安裝包是否完整有效;若Android應(yīng)用程序的安裝包完整有效,則提供不同的自動(dòng)運(yùn)行模式供用戶選擇;根據(jù)用戶的選擇記錄任務(wù)執(zhí)行的模式;若Android應(yīng)用程序的安裝包無(wú)效,則提示用戶無(wú)效并結(jié)束;
步驟(2-3):選取一臺(tái)空閑的Android終端,將Android終端與用戶的信息在數(shù)據(jù)庫(kù)中進(jìn)行綁定,同時(shí)標(biāo)記Android終端為非空閑;
步驟(2-4):在用戶上傳的Android應(yīng)用程序的安裝包中提取出一個(gè)Android應(yīng)用程序安裝包;啟動(dòng)被綁定的Android終端,將用戶上傳的Android應(yīng)用程序安裝到Android終端中,并啟動(dòng)tcpdump程序開(kāi)始采集網(wǎng)絡(luò)流量;
步驟(2-5):?jiǎn)?dòng)安裝的Android應(yīng)用程序,同時(shí)根據(jù)記錄的任務(wù)執(zhí)行模式,啟動(dòng)對(duì)應(yīng)的任務(wù)執(zhí)行模式對(duì)應(yīng)的程序,開(kāi)始產(chǎn)生網(wǎng)絡(luò)流量;
步驟(2-6):自動(dòng)化操作完成后,關(guān)閉Android終端,檢測(cè)在用戶上傳的應(yīng)用程序安裝包的隊(duì)列中是否還有未運(yùn)行的安裝程序,如果還有則返回步驟(2-4)開(kāi)始新的一輪操作;如果用戶上傳的應(yīng)用程序安裝包的隊(duì)列中的應(yīng)用程序都運(yùn)行完畢,則將本次任務(wù)采集的網(wǎng)絡(luò)流量文件打包并生成下載鏈接,結(jié)束。
優(yōu)選的,步驟(2-1)還接收用戶的電子郵箱地址,所述電子郵箱地址用于接收消息。
優(yōu)選的,步驟(2-2)還調(diào)用正則表達(dá)式檢測(cè)電子郵箱地址的格式是否正確。
優(yōu)選的,步驟(2-2)如果應(yīng)用程序安裝包和/或電子郵箱地址格式是無(wú)效的,則提醒用戶無(wú)效,并帶著異常標(biāo)示退出本次操作;如果應(yīng)用程序安裝包和電子郵箱地址格式均檢測(cè)有效,允許用戶選擇自動(dòng)運(yùn)行模式。
優(yōu)選的,步驟(2-2)中所述自動(dòng)運(yùn)行模式包括Monkey運(yùn)行模式、無(wú)干擾運(yùn)行模式和模擬人工操作運(yùn)行模式;
優(yōu)選的,步驟(2-2)提供不同的自動(dòng)運(yùn)行模式供用戶選擇的步驟為:
步驟(2-2-1):當(dāng)接收到Monkey運(yùn)行模式的選擇指令時(shí),記錄本次任務(wù)執(zhí)行的模式,并在應(yīng)用程序運(yùn)行過(guò)程中啟動(dòng)Monkey程序,接收用戶對(duì)Android終端發(fā)出隨機(jī)的點(diǎn)擊、滑動(dòng)等屏幕觸控事件,并在達(dá)到預(yù)設(shè)的觸控次數(shù)之后結(jié)束,完成本次操作;進(jìn)入步驟(2-3);
步驟(2-2-2):當(dāng)接收到無(wú)干擾運(yùn)行模式的選擇指令時(shí),記錄本次任務(wù)執(zhí)行的模式,并在應(yīng)用程序運(yùn)行過(guò)程中,不對(duì)運(yùn)行過(guò)程做任何干涉,待達(dá)到規(guī)定的運(yùn)行時(shí)間后結(jié)束,完成本次操作;進(jìn)入步驟(2-3);
步驟(2-2-3):當(dāng)接收到模擬人工操作運(yùn)行模式的選擇指令時(shí),記錄本次任務(wù)執(zhí)行的模式,并在應(yīng)用程序運(yùn)行過(guò)程中調(diào)用模擬人工操作的程序,對(duì)應(yīng)用程序界面中的可點(diǎn)擊的組件進(jìn)行逐層遍歷式的點(diǎn)擊,從而實(shí)現(xiàn)模擬人工使用應(yīng)用程序時(shí)的操作流程;達(dá)到系統(tǒng)預(yù)設(shè)的點(diǎn)擊次數(shù)后結(jié)束,完成本次操作;進(jìn)入步驟(2-3)。
優(yōu)選的,步驟(2-5)中所述可點(diǎn)擊組件包括按鈕或鏈接。
優(yōu)選的,步驟(2-5)中所述逐層遍歷式的點(diǎn)擊是對(duì)當(dāng)前應(yīng)用程序首界面中的組件逐個(gè)點(diǎn)擊完畢后,在對(duì)第二層界面中的組件逐個(gè)點(diǎn)擊。
所述步驟(3)中的單個(gè)Android應(yīng)用程序手動(dòng)操作子流程的步驟為:
步驟(3-1):接收用戶上傳的單個(gè)Android應(yīng)用程序的安裝包;
步驟(3-2):調(diào)用aapt dump badging命令檢測(cè)應(yīng)用程序的安裝包是否完整有效;如果無(wú)效,則提醒用戶安裝包無(wú)效,帶著異常標(biāo)示結(jié)束;如果有效,則選取一臺(tái)空閑的Android終端;將Android終端與用戶的信息在數(shù)據(jù)庫(kù)中進(jìn)行綁定,同時(shí)標(biāo)記Android終端為非空閑;
步驟(3-3):?jiǎn)?dòng)被綁定的Android終端,并將用戶上傳的Android應(yīng)用程序安裝到Android終端中,同時(shí)啟動(dòng)tcpdump程序開(kāi)始采集網(wǎng)絡(luò)流量;接收用戶遠(yuǎn)程對(duì)Android終端進(jìn)行操作的指令;等待用戶退出操作后,關(guān)閉Android終端,并將采集的網(wǎng)絡(luò)流量文件生成下載鏈接供用戶下載,結(jié)束。
本發(fā)明的有益效果:
(1)為需要采集Android應(yīng)用程序網(wǎng)絡(luò)流量的用戶,提供了一個(gè)便捷的平臺(tái)。讓用戶可以使用計(jì)算機(jī)中的瀏覽器通過(guò)簡(jiǎn)單的注冊(cè)登錄流程,就可以遠(yuǎn)程控制Android終端,運(yùn)行指定的應(yīng)用程序。運(yùn)行結(jié)束后即可下載到運(yùn)行時(shí)產(chǎn)生的網(wǎng)絡(luò)流量。
(2)為用戶提供了一個(gè)安全的遠(yuǎn)程運(yùn)行Android應(yīng)用程序的環(huán)境。本系統(tǒng)部署在帶有防火墻和NAT服務(wù)的網(wǎng)絡(luò)環(huán)境內(nèi)。不僅可以讓用戶獲取安全性未知的Android應(yīng)用程序網(wǎng)絡(luò)流量,也可以在一定程度上保護(hù)系統(tǒng)不會(huì)因?yàn)檫\(yùn)行惡意應(yīng)用程序而受到攻擊。
(3)本發(fā)明還設(shè)計(jì)了批量的采集Android應(yīng)用程序網(wǎng)絡(luò)流量的功能。允許用戶遠(yuǎn)程批量上傳Android應(yīng)用程序的安裝包,并且選擇多種應(yīng)用程序自動(dòng)化運(yùn)行方法。并在運(yùn)行結(jié)束時(shí)向用戶提供的郵箱中發(fā)送下載鏈接。供用戶下載應(yīng)用程序運(yùn)行時(shí)產(chǎn)生的網(wǎng)絡(luò)流量。
附圖說(shuō)明
圖1為可提供遠(yuǎn)程采集Android應(yīng)用程序網(wǎng)絡(luò)流量服務(wù)的系統(tǒng)框架圖;
圖2為Web控制模塊內(nèi)部功能子模塊連接關(guān)系示意圖;
圖3為本發(fā)明的工作總體流程圖;
圖4為本發(fā)明實(shí)現(xiàn)單個(gè)Android應(yīng)用程序手動(dòng)操作的流程圖;
圖5為本發(fā)明實(shí)現(xiàn)批量Android應(yīng)用程序自動(dòng)操作的流程圖。
具體實(shí)施方式
下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。
一種可提供遠(yuǎn)程采集Android應(yīng)用程序網(wǎng)絡(luò)流量服務(wù)的系統(tǒng)具體工作過(guò)程為:
1)系統(tǒng)接收到用戶遠(yuǎn)程的登錄請(qǐng)求,通過(guò)驗(yàn)證后,等待用戶選擇所需要提供的服務(wù)。
2)當(dāng)用戶選擇單個(gè)Android應(yīng)用程序手動(dòng)操作時(shí),首先,系統(tǒng)接收用戶上傳的Android應(yīng)用程序的安裝包;其次,在當(dāng)前空閑的Android終端中選取一臺(tái)分配給該用戶,并將該用戶的信息和Android終端信息綁定存儲(chǔ)在數(shù)據(jù)庫(kù)中;然后,在將用戶上傳的應(yīng)用程序安裝在選中的Android終端中,并啟動(dòng)Android VNC Server(安卓虛擬網(wǎng)絡(luò)計(jì)算機(jī)服務(wù)器)。最后,通知用戶可以登錄平臺(tái)進(jìn)行操作。
3)用戶發(fā)出請(qǐng)求遠(yuǎn)程接入Android終端的命令,系統(tǒng)中的Guacamole組件在數(shù)據(jù)庫(kù)中查找用戶和該Android終端是否已經(jīng)綁定,如果沒(méi)有綁定,則說(shuō)明用戶沒(méi)有權(quán)限接入該終端,對(duì)用戶請(qǐng)求作出拒絕響應(yīng)。如果用戶和該Android終端已經(jīng)綁定,則通過(guò)Guacd組件將遠(yuǎn)程顯示、控制等操作使用的的VNC協(xié)議轉(zhuǎn)換為Guacamole協(xié)議,Guacamole組件再將Guacamole協(xié)議封裝成Http協(xié)議,供用戶在支持HTML5的瀏覽器中遠(yuǎn)程的顯示、操作Android終端。
4)服務(wù)器端的Android終端中運(yùn)行的Tcpdump程序負(fù)責(zé)網(wǎng)絡(luò)流量的采集工作,并將采集到的網(wǎng)絡(luò)流量存儲(chǔ)在文件存儲(chǔ)服務(wù)器中。當(dāng)用戶停止采集網(wǎng)絡(luò)流量后,Tcpdump程序也將停止運(yùn)行,并將本次采集的網(wǎng)絡(luò)流量文件生成下載鏈接,供用戶進(jìn)行下載。
5)當(dāng)用戶登陸系統(tǒng)后選擇的是批量自動(dòng)采集Android應(yīng)用程序網(wǎng)絡(luò)流量時(shí)。系統(tǒng)接收用戶批量上傳的Android應(yīng)用程序安裝包和用戶電子郵箱地址。系統(tǒng)根據(jù)用戶選擇的自動(dòng)采集模式,系統(tǒng)開(kāi)始逐一的安裝Android應(yīng)用程序,并根據(jù)采集模式自動(dòng)運(yùn)行,自動(dòng)采集運(yùn)行時(shí)產(chǎn)生的網(wǎng)絡(luò)流量。其中自動(dòng)采集模式分為程序無(wú)干擾運(yùn)行模式、外掛monkey組件運(yùn)行模式、外掛模擬人工操作組件運(yùn)行模式。程序無(wú)干擾運(yùn)行模式即程序運(yùn)行后,不對(duì)程序做任何操作,等待運(yùn)行一段設(shè)定的時(shí)間后停止。外掛monkey組件運(yùn)行模式即程序運(yùn)行后,啟動(dòng)monkey組件,對(duì)運(yùn)行中的程序發(fā)送隨機(jī)的點(diǎn)擊、滑動(dòng)等觸控事件,當(dāng)完成預(yù)先設(shè)定的觸控次數(shù)后,程序停止運(yùn)行。外掛模擬人工操作組件運(yùn)行模式即程序運(yùn)行后,啟動(dòng)模擬人工操作組件,該組件是編寫(xiě)的Android應(yīng)用程序界面自動(dòng)化遍歷程序,可以實(shí)現(xiàn)模擬人工操作應(yīng)用程序的過(guò)程,實(shí)現(xiàn)對(duì)應(yīng)用程序按鈕等組件的逐一點(diǎn)擊,當(dāng)達(dá)到用戶設(shè)定的點(diǎn)擊次數(shù)或者應(yīng)用程序退出時(shí),程序停止運(yùn)行。
6)當(dāng)系統(tǒng)完成全部Android應(yīng)用程序的網(wǎng)絡(luò)流量采集工作后,系統(tǒng)會(huì)自動(dòng)向用戶提交的電子郵箱中發(fā)送一條采集完成信息,提醒用戶進(jìn)行網(wǎng)絡(luò)流量文件的下載。
為了更好的理解本發(fā)明,以下給出了本發(fā)明更為詳細(xì)的說(shuō)明:
圖1為一種可提供遠(yuǎn)程采集Android應(yīng)用程序網(wǎng)絡(luò)流量服務(wù)的系統(tǒng)框架圖。用戶可以從本地支持HTML5的瀏覽器中登錄系統(tǒng)。系統(tǒng)部署在有防火墻保護(hù)的遠(yuǎn)程服務(wù)器中。系統(tǒng)整體分為三部分:
Web服務(wù)器,部署Guacamole組件、Guacd組件和Web控制模塊;所述Web服務(wù)器用于運(yùn)行Web應(yīng)用程序完成用戶注冊(cè)登錄、將Android應(yīng)用程序安裝包遠(yuǎn)程上傳給Android終端和從Android終端下載網(wǎng)絡(luò)流量文件,以及為Guacamole組件和Guacd組件提供運(yùn)行環(huán)境;
數(shù)據(jù)庫(kù),同時(shí)連接guacamole組件和系統(tǒng)管理程序;
安裝有Android VNC Server的Android終端,通過(guò)guacd組件和guacamole組件使用戶可以實(shí)現(xiàn)遠(yuǎn)程操作終端的功能,同時(shí)系統(tǒng)管理程序控制Android終端進(jìn)行終端的配置、啟動(dòng)、安裝應(yīng)用程序、采集網(wǎng)絡(luò)流量等工作。
如圖2所示,Web控制模塊包括:用戶信息處理子模塊、任務(wù)調(diào)配子模塊、Android終端控制子模塊和網(wǎng)絡(luò)流量文件鏈接生成子模塊;
用戶信息處理子模塊,與數(shù)據(jù)庫(kù)連接,負(fù)責(zé)用戶的注冊(cè)申請(qǐng)和登錄驗(yàn)證,當(dāng)用戶請(qǐng)求遠(yuǎn)程采集網(wǎng)絡(luò)流量時(shí),用戶信息處理子模塊會(huì)配合任務(wù)調(diào)配子模塊創(chuàng)建采集任務(wù),并將采集任務(wù)和用戶進(jìn)行綁定;
任務(wù)調(diào)配子模塊,負(fù)責(zé)用戶進(jìn)行流量采集任務(wù)時(shí)的調(diào)配工作,當(dāng)用戶請(qǐng)求遠(yuǎn)程采集網(wǎng)絡(luò)流量時(shí),任務(wù)調(diào)配子模塊創(chuàng)建采集任務(wù),將創(chuàng)建的采集任務(wù)存儲(chǔ)到數(shù)據(jù)庫(kù)中,隨后向Android終端控制子模塊發(fā)送啟動(dòng)Android終端指令;
Android終端控制子模塊,用于接收任務(wù)調(diào)配子模塊的指令,控制Android終端安裝Android應(yīng)用程序,Android終端控制子模塊對(duì)網(wǎng)絡(luò)流量進(jìn)行采集,網(wǎng)絡(luò)流量采集結(jié)束時(shí),Android終端控制子模塊向網(wǎng)絡(luò)流量文件鏈接生成子模塊發(fā)出網(wǎng)絡(luò)流量采集結(jié)束的指令,采集到的網(wǎng)絡(luò)流量文件存儲(chǔ)到文件存儲(chǔ)服務(wù)器中;
網(wǎng)絡(luò)流量文件鏈接生成子模塊,對(duì)文件存儲(chǔ)服務(wù)器中存儲(chǔ)的網(wǎng)絡(luò)流量文件進(jìn)行處理,生成網(wǎng)絡(luò)流量文件鏈接,并將生成的網(wǎng)絡(luò)流量鏈接通過(guò)任務(wù)調(diào)配子模塊發(fā)送給客戶端,供用戶通過(guò)瀏覽器遠(yuǎn)程查看。
圖3為本發(fā)明的工作總體流程圖,如圖3所示。該方法包括:
步驟110,系統(tǒng)等待用戶選擇服務(wù)類(lèi)型。
步驟111,用戶選擇批量Android應(yīng)用程序自動(dòng)操作的方式采集Android應(yīng)用程序運(yùn)行時(shí)產(chǎn)生的網(wǎng)絡(luò)流量,系統(tǒng)調(diào)用批量Android應(yīng)用程序自動(dòng)操作子流程。
步驟112,系統(tǒng)自動(dòng)化的采集網(wǎng)絡(luò)流量任務(wù)完成后,會(huì)檢測(cè)子流程返回的結(jié)果是否存在異常結(jié)束的標(biāo)示,如果存在,則直接結(jié)束。
步驟113,如果不存在異常結(jié)束的標(biāo)示,則向用戶填寫(xiě)的電子郵箱中發(fā)送一封采集任務(wù)完成的郵件,通知用戶進(jìn)行下載。
步驟114,用戶登陸系統(tǒng),下載采集的網(wǎng)絡(luò)流量文件。
步驟115,用戶選擇單個(gè)Android應(yīng)用程序手動(dòng)操作的方式采集Android應(yīng)用程序運(yùn)行時(shí)產(chǎn)生的網(wǎng)絡(luò)流量,系統(tǒng)調(diào)用單個(gè)Android應(yīng)用程序手動(dòng)操作子流程。
步驟116,用戶手動(dòng)采集網(wǎng)絡(luò)流量任務(wù)完成后,會(huì)檢測(cè)子流程返回的結(jié)果是否存在異常結(jié)束的標(biāo)示,如果存在,則直接結(jié)束。
步驟117,如果不存在異常結(jié)束的標(biāo)示,系統(tǒng)將采集到的網(wǎng)絡(luò)流量文件向用戶提供下載鏈接。
圖4為本發(fā)明實(shí)現(xiàn)單個(gè)Android應(yīng)用程序手動(dòng)操作的流程圖;如圖4所示。該方法包括:
步驟120,系統(tǒng)接收用戶上傳的單個(gè)Android應(yīng)用程序的安裝包。
步驟121,系統(tǒng)調(diào)用aapt dump badging命令檢測(cè)該應(yīng)用程序的安裝包是否完整有效。
步驟122,如果文件無(wú)效,則提醒用戶文件無(wú)效,帶著異常標(biāo)示退出本次操作。
步驟123,如果文件檢測(cè)有效,則系統(tǒng)在當(dāng)前服務(wù)器中空閑的Android終端中選取一臺(tái)。
步驟124,將該終端與該用戶的信息在數(shù)據(jù)庫(kù)中進(jìn)行綁定,同時(shí)標(biāo)記該終端為非空閑。
步驟125,啟動(dòng)被綁定的Android終端,并將用戶上傳的Android應(yīng)用程序安裝到該終端中,同時(shí)啟動(dòng)tcpdump程序開(kāi)始采集網(wǎng)絡(luò)流量。
步驟126,用戶通過(guò)遠(yuǎn)程可視化的方式對(duì)Android終端進(jìn)行操作。
步驟127,用戶退出操作后,系統(tǒng)關(guān)閉Android終端,并將采集的網(wǎng)絡(luò)流量文件生成下載鏈接顯示到用戶的瀏覽器中,供用戶下載,隨后正常退出。
圖5為本發(fā)明實(shí)現(xiàn)批量Android應(yīng)用程序自動(dòng)操作的流程圖;如圖5所示。該方法包括:
步驟130,系統(tǒng)接收用戶批量上傳的Android應(yīng)用程序的安裝包以及用戶接收消息的電子郵箱地址。
步驟131,系統(tǒng)調(diào)用aapt dump badging命令檢測(cè)該應(yīng)用程序的安裝包是否完整有效,調(diào)用正則表達(dá)式檢測(cè)電子郵箱地址的格式是否正確。
步驟132,如果應(yīng)用程序安裝包和電子郵箱地址格式出現(xiàn)一項(xiàng)是無(wú)效的,則提醒用戶具體哪一項(xiàng)無(wú)效,并帶著異常標(biāo)示退出本次操作。
步驟133,如果應(yīng)用程序安裝包和電子郵箱地址格式均檢測(cè)有效,允許用戶選擇一種程序自動(dòng)運(yùn)行時(shí)的模式。
步驟134,當(dāng)用戶選擇Monkey運(yùn)行模式時(shí),系統(tǒng)記錄本次任務(wù)執(zhí)行的模式,并在之后的應(yīng)用程序運(yùn)行中會(huì)額外啟動(dòng)Monkey程序,對(duì)Android終端發(fā)出隨機(jī)的點(diǎn)擊、滑動(dòng)等屏幕觸控事件,并在達(dá)到系統(tǒng)預(yù)設(shè)的觸控次數(shù)之后,退出程序,完成本次操作。
步驟135,當(dāng)用戶選擇無(wú)干擾運(yùn)行模式時(shí),系統(tǒng)記錄本次任務(wù)執(zhí)行的模式,并在之后的應(yīng)用程序運(yùn)行時(shí)不對(duì)運(yùn)行過(guò)程做任何干涉,只是靜待達(dá)到規(guī)定的運(yùn)行時(shí)間后,退出程序,完成本次操作。
步驟136,當(dāng)用戶選擇模擬人工操作運(yùn)行模式時(shí),系統(tǒng)記錄本次任務(wù)執(zhí)行的模式,并在之后的應(yīng)用程序運(yùn)行時(shí)調(diào)用模擬人工操作的程序,實(shí)現(xiàn)對(duì)應(yīng)用程序界面中的按鈕,鏈接等可點(diǎn)擊的組件進(jìn)行點(diǎn)擊,這種點(diǎn)擊是逐層遍歷式的點(diǎn)擊,即對(duì)當(dāng)前應(yīng)用程序首界面中的組件逐個(gè)點(diǎn)擊完畢后,在對(duì)第二層界面中的組件逐個(gè)點(diǎn)擊。從而實(shí)現(xiàn)模擬人工使用應(yīng)用程序時(shí)的操作流程。達(dá)到系統(tǒng)預(yù)設(shè)的點(diǎn)擊次數(shù)后,退出程序,完成本次操作。
步驟137,系統(tǒng)在當(dāng)前服務(wù)器中空閑的Android終端中選取一臺(tái)。
步驟138,將該終端與該用戶的信息在數(shù)據(jù)庫(kù)中進(jìn)行綁定,同時(shí)標(biāo)記該終端為非空閑。
步驟139,系統(tǒng)在用戶上傳的Android應(yīng)用程序安裝包隊(duì)列中提取出一個(gè)Android應(yīng)用程序安裝包。
步驟140,啟動(dòng)被綁定的Android終端,將用戶上傳的Android應(yīng)用程序安裝到該終端中,并啟動(dòng)tcpdump程序開(kāi)始采集網(wǎng)絡(luò)流量。
步驟141,啟動(dòng)安裝的Android應(yīng)用程序,同時(shí)根據(jù)系統(tǒng)記錄的任務(wù)執(zhí)行模式,啟動(dòng)相應(yīng)模式對(duì)應(yīng)的程序,開(kāi)始產(chǎn)生網(wǎng)絡(luò)流量。
步驟142,自動(dòng)化操作完成后,系統(tǒng)關(guān)閉Android終端,系統(tǒng)檢測(cè)在用戶上傳的應(yīng)用程序隊(duì)列中是否還有未運(yùn)行的安裝程序,如果還有則返回步驟139開(kāi)始新的一輪操作。
步驟143,如果用戶上傳的應(yīng)用程序隊(duì)列中的應(yīng)用程序都運(yùn)行完畢,則將本次任務(wù)采集的網(wǎng)絡(luò)流量文件打包并生成下載鏈接,隨后正常退出。
上述雖然結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行了描述,但并非對(duì)本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動(dòng)即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以內(nèi)。