本發(fā)明涉及手機遠程操控
技術(shù)領(lǐng)域:
,具體涉及一種多手機遠程操控系統(tǒng)及方法。
背景技術(shù):
:在當今移動互聯(lián)網(wǎng)飛速發(fā)展,Android手機的更新?lián)Q代非??臁_@就導致了市場上Android手機的種類多,系統(tǒng)碎片化嚴重。一個好的Android應(yīng)用如果需要進入市場,需要適配很多機型。而在手機的黑盒測試中,測試人員只能對一個個手機進行單獨測試,這樣效率低,測試人員需大量的重復相同的測試操作。亟需一種可以解決在測試時,測試人員只需要操作一部手機,其他所有手機都可以跟著模擬同樣的操作方案,以解決解決手機測試人員測試時效率低,測試重復的問題。技術(shù)實現(xiàn)要素:針對現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種多手機遠程操控系統(tǒng)及方法,實現(xiàn)只需操作一部手機,其他所有手機都可以跟著模擬同樣的操作。為達到以上目的,本發(fā)明采取的技術(shù)方案是:一種多手機遠程操控系統(tǒng),用于同一局域網(wǎng)內(nèi)多臺裝有所述多手機遠程操控系統(tǒng)的手機之間的相互控制,多臺手機中一臺手機為主控手機;其他手機均為被控手機,包括:主控模塊,設(shè)于所述主控手機上,用于獲取局域網(wǎng)內(nèi)全部被控手機的ip地址列表;向ip地址列表中的全部ip地址對應(yīng)的被控手機的被控模塊發(fā)送控制請求及主控手機的ip地址,并接收被控手機的被控模塊返回的被控手機的ID和ip地址;采集主控手機被操作時的操作數(shù)據(jù)并將操作數(shù)據(jù)發(fā)送至被控手機的被控模塊;被控模塊,設(shè)于所述被控手機上,用于接收主控手機的主控模塊發(fā)送的控制請求并返回被控手機的ID和ip地址;接收主控手機的主控模塊發(fā)送的控制命令并執(zhí)行該控制命令;將主控手機的主控模塊發(fā)送的操作數(shù)據(jù)轉(zhuǎn)換為模擬操作命令并在被控手機上執(zhí)行所述模擬操作命令。在上述技術(shù)方案的基礎(chǔ)上,包括:Ip地址獲取單元,所述Ip地址獲取單元用于獲取局域網(wǎng)內(nèi)被控手機的ip地址列表;控制請求發(fā)送單元,所述控制請求發(fā)送單元用于向ip地址列表中的全部ip地址對應(yīng)的被控手機的被控模塊發(fā)送控制請求及主控手機的ip地址,并接收被控手機的被控模塊返回的被控手機的ID和ip地址;控制命令發(fā)送單元,所述控制命令發(fā)送單元用于向被控子單元發(fā)送控制命令;操作數(shù)據(jù)采集單元,所述操作數(shù)據(jù)采集單元用于采集主控手機被操作時的操作數(shù)據(jù)并將操作數(shù)據(jù)發(fā)送至被控手機的被控模塊。在上述技術(shù)方案的基礎(chǔ)上,所述被控模塊,包括:控制請求接收單元,所述控制請求接收單元用于接收主控手機的主控模塊發(fā)送的控制請求及主控手機的ip地址并返回被控手機的ID和ip地址;控制命令執(zhí)行單元,接收主控手機的主控模塊發(fā)送的控制命令并執(zhí)行該控制命令;操作數(shù)據(jù)處理單元,用于將主控手機的主控模塊發(fā)送的操作數(shù)據(jù)轉(zhuǎn)換為模擬操作命令并在被控手機上執(zhí)行所述模擬操作命令。在上述技術(shù)方案的基礎(chǔ)上,所述主控模塊還包括RSA加密單元,用于對其發(fā)送的控制請求、控制命令和操作數(shù)據(jù)進行RSA證書加密;所述被控模塊還包括RSA驗證單元,用于驗證主控模塊發(fā)送的控制請求、控制命令和操作數(shù)據(jù)中的RSA證書。在上述技術(shù)方案的基礎(chǔ)上,每臺手機上均設(shè)有主控模塊和被控模塊,任意一臺手機均可為主控手機,主控手機僅開啟主控模塊;其他手機為被控手機,被控手機僅開啟被控主模塊。本發(fā)明還公開了一種采用所述一種多手機遠程操控系統(tǒng)的多手機遠程操控方法:步驟S1,建立具有多臺裝有手機遠程操控模塊的手機的局域網(wǎng);所述手機遠程操控模塊包括主控模塊和被控模塊;所述多臺手機中一臺手機為主控手機;其他手機均為被控手機;步驟S2,所述主控手機的主控模塊獲取局域網(wǎng)內(nèi)全部被控手機的手機ID和ip地址;步驟S3,所述主控手機的主控模塊向ip地址列表中的全部ip地址對應(yīng)的被控手機的被控模塊發(fā)送控制請求及主控手機的ip地址,并接收被控手機的被控模塊返回的被控手機的ID和ip地址;步驟S4,所述主控手機的主控模塊向所述被控手機的被控模塊發(fā)送開啟socket端口長鏈接的控制命令;接收主控手機的主控模塊發(fā)送的開啟socket端口長鏈接的控制命令,并開啟socket端口長鏈接;步驟S5,所述主控手機的主控模塊采集主控手機被操作時的操作數(shù)據(jù),將操作數(shù)據(jù)發(fā)送至被控手機的被控手機的被控模塊;步驟S6,所述主控手機的被控模塊接收主控手機的主控模塊發(fā)送的包括操作數(shù)據(jù)并轉(zhuǎn)換為模擬操作命令;并在被控手機上執(zhí)行所述模擬操作命令,結(jié)束。在上述技術(shù)方案的基礎(chǔ)上,步驟S6結(jié)束后,所述主控手機的主控模塊向所述被控手機的被控模塊發(fā)送關(guān)閉socket端口長鏈接的控制命令,所述被控手機的被控模塊關(guān)閉socket端口,結(jié)束此次手機操控。在上述技術(shù)方案的基礎(chǔ)上,步驟S2的具體過程包括:主控手機的主控模塊開啟主控手機的socket端口,被控手機的被控模塊開啟被控手機的socket端口;主控手機的主控模塊向局域網(wǎng)類全部ip地址發(fā)送詢問請求;被控手機的被控模塊接收詢問請求并向主控模塊返回響應(yīng);主控手機的主控模塊統(tǒng)計返回響應(yīng)的ip地址列表。在上述技術(shù)方案的基礎(chǔ)上,步驟S3的具體過程包括:主控手機的主控模塊向ip地址列表中的全部ip地址對應(yīng)的被控手機的被控模塊發(fā)送控制請求及主控手機的ip地址;被控手機的被控模塊向主控模塊返回的被控手機的ID和ip地址;主控手機的主控模塊接收被控模塊返回的被控手機的ID和ip地址。在上述技術(shù)方案的基礎(chǔ)上,步驟S6的具體過程包括:所述被控手機的被控模塊生成的模擬操作命令為shell命令,并執(zhí)行所述shell命令用于模擬點擊操作。與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點在于:1、本發(fā)明建立包括多臺手機的局域網(wǎng),每臺手機上均設(shè)有手機遠程操控模塊;多臺手機中一臺手機為主控手機;其他手機均為被控手機;手機遠程操控模塊包括主控模塊和被控模塊,所述主控手機僅開啟主控模塊,所述被控手機僅開啟被控模塊。主控手機接收到用戶點擊操作時,主控模塊采集用戶點擊操作的操作數(shù)據(jù)并發(fā)送至被控手機的被控模塊,被控手機的被控模塊將操作數(shù)據(jù)轉(zhuǎn)化為模擬操作命令并執(zhí)行該操作命令,從而實現(xiàn)只需操作一部手機,其他所有手機都可以跟著模擬同樣的操作。2、為了防止其他惡意控制設(shè)備,所述主控模塊與所述被控模塊通過手機上的socket端口進行包括控制請求、控制命令和操作數(shù)據(jù)的通訊時需要驗證RSA證書,以確保手機的安全性。附圖說明圖1為本發(fā)明實施例中多手機遠程操控的系統(tǒng)的結(jié)構(gòu)示意圖;圖2為本發(fā)明實施例中多手機遠程操控的方法的流程示意圖。具體實施方式以下結(jié)合附圖及實施例對本發(fā)明作進一步詳細說明。參見圖1所示,本發(fā)明實施例提供一種多手機遠程操控的系統(tǒng),用于同一局域網(wǎng)內(nèi)多臺裝有所述多手機遠程操控系統(tǒng)的手機之間的相互控制,多臺手機中一臺手機為主控手機;其他手機均為被控手機,包括:主控模塊,設(shè)于所述主控手機上,用于獲取局域網(wǎng)內(nèi)全部被控手機的ip地址列表;向ip地址列表中的全部ip地址對應(yīng)的被控手機的被控模塊發(fā)送控制請求及主控手機的ip地址,并接收被控手機的被控模塊返回的被控手機的ID和ip地址;采集主控手機被操作時的操作數(shù)據(jù)并將操作數(shù)據(jù)發(fā)送至被控手機的被控模塊;被控模塊,設(shè)于所述被控手機上,用于接收主控手機的主控模塊發(fā)送的控制請求并返回被控手機的ID和ip地址;接收主控手機的主控模塊發(fā)送的控制命令并執(zhí)行該控制命令;將主控手機的主控模塊發(fā)送的操作數(shù)據(jù)轉(zhuǎn)換為模擬操作命令并在被控手機上執(zhí)行模擬操作命令。每臺手機上均設(shè)有主控模塊和被控模塊,任意一臺手機均可為主控手機,主控手機僅開啟主控模塊;其他手機為被控手機,被控手機僅開啟被控主模塊。主控模塊向被控模塊發(fā)送的控制命令包括三種:打開socket端口長鏈接的控制命令;傳輸操作數(shù)據(jù)的控制命令;關(guān)閉socket端口長鏈接的控制命令。控制命令的組成包括命令參數(shù)、數(shù)據(jù)、驗證信息:命令參數(shù):該字符串為在本專利中協(xié)商好的字符串,作用為讓主控模塊與被控模塊都能識別當前命令或數(shù)據(jù)的作用。數(shù)據(jù):當socket端口長鏈接連通后,采集的操作數(shù)據(jù)將由控制命令發(fā)送至被控模塊。驗證信息:驗證當前命令的合法性。由于需要及時傳輸,因此合法性驗證只是將RSA秘鑰通過MD5加密后,判斷該加密數(shù)據(jù)是否一致。本專利中命令參數(shù)如下表所示:主控模塊,包括:Ip地址獲取單元,Ip地址獲取單元用于獲取局域網(wǎng)內(nèi)被控手機的ip地址列表;控制請求發(fā)送單元,控制請求發(fā)送單元用于向ip地址列表中的全部ip地址對應(yīng)的被控手機的被控模塊發(fā)送控制請求及主控手機的ip地址,并接收被控手機的被控模塊返回的被控手機的ID和ip地址;控制命令發(fā)送單元,控制命令發(fā)送單元用于向被控子單元發(fā)送控制命令;操作數(shù)據(jù)采集單元,操作數(shù)據(jù)采集單元用于采集主控手機被操作時的操作數(shù)據(jù)并將操作數(shù)據(jù)發(fā)送至被控手機的被控模塊。被控模塊,包括:控制請求接收單元,控制請求接收單元用于接收主控手機的主控模塊發(fā)送的控制請求及主控手機的ip地址并返回被控手機的ID和ip地址;控制命令執(zhí)行單元,接收主控手機的主控模塊發(fā)送的控制命令并執(zhí)行該控制命令;操作數(shù)據(jù)處理單元,用于將主控手機的主控模塊發(fā)送的操作數(shù)據(jù)轉(zhuǎn)換為模擬操作命令并在被控手機上執(zhí)行模擬操作命令。主控模塊還包括RSA加密單元,用于對其發(fā)送的控制請求、控制命令和操作數(shù)據(jù)進行RSA證書加密;被控模塊還包括RSA驗證單元,用于驗證主控模塊發(fā)送的控制請求、控制命令和操作數(shù)據(jù)中的RSA證書。主控模塊與被控模塊通過手機上的socket端口進行通訊。為了防止其他惡意控制設(shè)備,主控模塊與被控模塊通過手機上的socket端口進行包括控制請求、控制命令和操作數(shù)據(jù)的通訊時需要驗證RSA證書,以確保手機的安全性。主控模塊與被控模塊所有數(shù)據(jù)都是由RSA算法進行加解密的。主控模塊發(fā)送的數(shù)據(jù)經(jīng)過RSA公鑰進行加密形成密文,將密文發(fā)送給被控模塊。被控模塊通過密鑰將密文解密成可識別數(shù)據(jù)即可保證整個過程中數(shù)據(jù)的加密性。而公鑰與密鑰之間是在開發(fā)階段就已經(jīng)生成好的,如果有人篡改軟軟,該密鑰將會失效。其原理是將秘鑰跟使用本軟件的簽名文件生成,根據(jù)Android系統(tǒng)安裝包生成規(guī)則,一旦有人篡改安裝包,則簽名文件不一致,那么使用錯誤簽名形成的數(shù)據(jù)將不會被解析成正確的數(shù)據(jù),被控模塊將不理會該錯誤數(shù)據(jù)。使用這樣的驗證方法,可以在最大程度上保證被控模塊的安全性。本發(fā)明建立包括多臺手機的局域網(wǎng),每臺手機上均設(shè)有手機遠程操控模塊;多臺手機中一臺手機為主控手機;其他手機均為被控手機;手機遠程操控模塊包括主控模塊和被控模塊,主控手機僅開啟主控模塊,被控手機僅開啟被控模塊。主控手機接收到用戶點擊操作時,主控模塊采集用戶點擊操作的操作數(shù)據(jù)并發(fā)送至被控手機的被控模塊,被控手機的被控模塊將操作數(shù)據(jù)轉(zhuǎn)化為模擬操作命令并執(zhí)行該操作命令,從而實現(xiàn)只需操作一部手機,其他所有手機都可以跟著模擬同樣的操作。參見圖2所示,本發(fā)明還公開了一種采用一種多手機遠程操控系統(tǒng)的多手機遠程操控方法:步驟S1,建立具有多臺裝有多手機遠程操控系統(tǒng)的手機的局域網(wǎng);多臺手機中一臺手機為主控手機;其他手機均為被控手機;主控手機上設(shè)有主控模塊,被控手機上設(shè)有被控模塊;步驟S2,主控手機的主控模塊獲取局域網(wǎng)內(nèi)全部被控手機的手機ID和ip地址;步驟S3,主控手機的主控模塊向ip地址列表中的全部ip地址對應(yīng)的被控手機的被控模塊發(fā)送控制請求及主控手機的ip地址,并接收被控手機的被控模塊返回的被控手機的ID和ip地址;步驟S4,主控手機的主控模塊向被控手機的被控模塊發(fā)送開啟socket端口長鏈接的控制命令;接收主控手機的主控模塊發(fā)送的開啟socket端口長鏈接的控制命令,并開啟socket端口長鏈接;步驟S5,主控手機的主控模塊采集主控手機被操作時的操作數(shù)據(jù),將操作數(shù)據(jù)發(fā)送至被控手機的被控模塊;步驟S6,被控手機的被控模塊接收主控手機的主控手機的主控模塊發(fā)送的包括操作數(shù)據(jù)并轉(zhuǎn)換為模擬操作命令;并在被控手機上執(zhí)行模擬操作命令。步驟S7,步驟S6結(jié)束后,主控手機的主控模塊向被控手機的被控模塊發(fā)送關(guān)閉socket端口長鏈接的控制命令,被控手機的被控模塊關(guān)閉socket端口,結(jié)束此次手機操控。主控模塊請求被主控模塊開啟socket端口長鏈接后,被主控模塊將使用之前的socket端口開啟長鏈接,返回開啟成功后,并等待主控模塊發(fā)送操作數(shù)據(jù)。如果開啟失敗,則會返回主控模塊開啟長鏈接失敗。被主控模塊接收到列表中一個設(shè)備的socket端口長鏈接開啟完畢后,將進入等待。等待列表中所有的設(shè)備socket端口長鏈接都已經(jīng)啟動。但是如果列表所有設(shè)備都請求完了,有設(shè)備返回socket端口長鏈接開啟失敗,則會由用戶選擇是否繼續(xù)。若用戶選擇不繼續(xù),則終止所有請求,并向所有已開啟socket端口長鏈接的設(shè)備發(fā)送關(guān)閉長鏈接的命令。如果用戶選擇依舊繼續(xù),則開始進入操作數(shù)據(jù)采集階段。步驟S2的具體過程包括:主控手機的主控模塊開啟主控手機的socket端口,被控手機的被控模塊開啟被控手機的socket端口;主控手機的主控模塊向局域網(wǎng)類全部ip地址發(fā)送詢問請求;被控手機的被控模塊接收詢問請求并向主控手機的主控模塊返回響應(yīng);主控手機的主控模塊統(tǒng)計返回響應(yīng)的ip地址列表。例如:主控手機所在ip地址的域為192.168.1.1,那么只需要改變最后一位就可以向局域網(wǎng)內(nèi)所有的ip地址發(fā)送請求。即192.168.1.1~192.168.1.254。發(fā)送請求時,只需要通過socket端口,向需要掃描的ip地址發(fā)送主控手機的端口號即可。端口號用于被控手機驗證用,只有主控手機和被控手機端口號一致,被控手機才會向主控手機返回響應(yīng),即主控手機和其能控制的被控手機的端口號必須一致。若需在同一局域網(wǎng)內(nèi),同時對數(shù)批手機分別進行測試,為避免相互干擾,可以預先設(shè)置每批手機均有不同的端口號。步驟S3的具體過程包括:主控手機的主控模塊向ip地址列表中的全部ip地址對應(yīng)的被控手機的被控模塊發(fā)送控制請求及主控手機的ip地址;被控手機的被控模塊向主控手機的主控模塊返回的被控手機的ID和ip地址;主控手機的主控模塊接收被控手機的被控模塊返回的被控手機的ID和ip地址。步驟S5的具體過程包括:主控手機的主控模塊監(jiān)聽到主控手機被用戶點擊;主控手機的主控模塊獲取用戶點擊的功能鍵或者點擊的坐標相對位置的操作數(shù)據(jù);主控手機的主控模塊將操作數(shù)據(jù)發(fā)送至被控手機的被控模塊。操作數(shù)據(jù)即用戶點擊的坐標相對位置的坐標信息。就是將手機的寬高像素獲取到,當用戶點擊一個位置時,也可以獲取到用戶點擊位置像素坐標,通過計算,得到用戶點擊位置在整個用戶屏幕中的相對比例。為了達到精確值,本發(fā)明中將該值定義為一個浮點型數(shù)據(jù),其數(shù)據(jù)為用戶點擊位置的寬除以手機屏幕的寬,用戶點擊位置的高除以手機屏幕的高。這樣得出的數(shù)據(jù)在各個不同屏幕尺寸的手機上就會在相對一樣的位置,不會出現(xiàn)操作失誤的情況。用戶點擊時,會在傳輸數(shù)據(jù)中帶上本發(fā)明中定義的用戶行為情況代碼,該代碼定義該坐標的作用。該代碼使用16進制代碼表示。用戶行為情況代碼表如下:用戶行為代碼說明用戶點擊屏幕0x010用戶點擊返回鍵0x020用戶點擊menu鍵0x030當用戶點擊屏幕時,同樣采集數(shù)據(jù),此時數(shù)據(jù)只有用戶點擊的坐標相對位置的坐標信息。當用戶是點擊返回鍵后者menu時,可以監(jiān)聽到用戶是否點擊了,只需要獲取用戶點擊返回鍵或menu鍵的操作數(shù)據(jù)即可。步驟S6的具體過程包括:被控手機的被控模塊生成的模擬操作命令為shell命令,并執(zhí)行shell命令用于模擬點擊操作。在被控手機的被控模塊執(zhí)行shell命令之前,本軟件需要獲得被控手機的root權(quán)限。在shell命令中執(zhí)行“su”命令,可獲取被控手機的root權(quán)限。通過執(zhí)行exec("inputkeyevent"+keyCode+"\n")的shell命令來達到模擬點擊操作的目的。若需要點擊的按鍵為返回鍵,則只需要執(zhí)行keyCode=4即可,menu的按鍵數(shù)值為69,這些值為Android系統(tǒng)規(guī)定的。若是模擬點擊屏幕,當獲取到控制子模塊發(fā)送的操作數(shù)據(jù)后,將坐標相對位置的數(shù)值取出,同時獲取當前手機屏幕的寬高,通過這兩組數(shù)據(jù)得到當前真實需要點擊的位置的x,y兩個數(shù)據(jù)。x為相對位置的寬的浮點型數(shù)乘以當前手機屏幕的寬,y為相對位置的高的浮點型數(shù)誠意當前手機屏幕的高,執(zhí)行如下代碼來執(zhí)行模擬點擊屏幕:inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis();SystemClock.uptimeMillis(),MotionEvent.ACTION_DOWN,x,y,0));//發(fā)送按下;sleep(500);//按下和抬起中間停留500毫秒;inst.sendPointerSync(MotionEvent.obtain(SystemClock.uptimeMillis();SystemClock.uptimeMillis(),MotionEvent.ACTION_UP,x,y,0));//按下抬起;根據(jù)上述代碼被控手機上會模擬點擊同樣區(qū)域去觸發(fā)手機的點擊事件。上述代碼一共有3個步驟:需要點擊區(qū)域的按下:由于android系統(tǒng)中點擊屏幕有按下,抬起的操作才能算一次點擊事件,因此需要先執(zhí)行按下操作,傳入xy的數(shù)值。等待500毫秒:由于需要區(qū)分按下和抬起,因此中間需要停留500毫秒讓系統(tǒng)任務(wù)當前點擊就是用戶點擊的。需要點擊的區(qū)域按下后抬起:在停頓500毫秒后,將又執(zhí)行抬起的操作,整個過程完畢后,才能讓android系統(tǒng)認為是一次用戶點擊事件。執(zhí)行完這些操作后,被控制手機則開始運行點擊后的功能。整個操作需保持通過控制手機與被控手機之間持續(xù)socket端口長鏈接。因此,整個操作過程中不能關(guān)閉局域網(wǎng)。本發(fā)明不局限于上述實施方式,對于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍之內(nèi)。本說明書中未作詳細描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。當前第1頁1 2 3