本發(fā)明涉及控制技術(shù)領域,更具體地說,涉及一種連接控制方法、主機及系統(tǒng)。
背景技術(shù):
在Android開發(fā)中,Android調(diào)試橋(Android Debug Bridge,ADB)是Android SDK(Software DevelopmentKit,軟件開發(fā)工具包)里的一個工具,用這個工具可以直接操作或管理Android模擬器或者真實的Andriod終端,如Android手機等。ADB要對Android終端進行操作,首先需要ADB與Android終端的守護進程(Android Debug Bridge Daemon,ADBD)建立連接。ADB可以通過USB接口與ADBD建立連接;也可以通過網(wǎng)絡與ADBD建立連接。
目前,較常用的ADB通過網(wǎng)絡與ADBD建立連接的方式為:ADB安裝在第一主機上,Android終端通過USB接口連接在與第一主機建立網(wǎng)絡連接的第二主機上,ADB通過adb命令直接建立第一主機上的ADB客戶端程序與第二主機上的ADB服務程序之間的連接,由第二主機上的ADB服務程序通過USB接口與ADBD建立連接。然而,在某些情況下,出于安全的考慮等原因,第一主機和第二主機之間不一定能夠建立網(wǎng)絡連接。
因此,如何保證第一主機與第二主機的網(wǎng)絡連通性成為亟待解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種連接控制方法、主機及系統(tǒng),以保證第一主機與第二主機的網(wǎng)絡連通性。
為實現(xiàn)上述目的,本發(fā)明提供了如下技術(shù)方案:
一種連接控制系統(tǒng),包括:第一主機,中轉(zhuǎn)服務器和第二主機;其中,
所述第一主機通過ADB客戶端程序獲取連接命令,并通過第一ADB服務程序向所述中轉(zhuǎn)服務器發(fā)送所述連接命令及鑒權(quán)請求;
所述中轉(zhuǎn)服務器向所述第二主機轉(zhuǎn)發(fā)所述連接命令;
所述第二主機響應于所述連接命令,通過ADB解析程序與所述中轉(zhuǎn)服務器建立連接;
所述中轉(zhuǎn)服務器向所述ADB解析程序轉(zhuǎn)發(fā)所述鑒權(quán)請求;
所述ADB解析程序通過所述中轉(zhuǎn)服務器向所述第一ADB服務程序返回響應,以建立所述第一ADB服務程序與所述ADB解析程序的連接;
所述第二主機通過所述ADB解析程序與第二ADB服務程序連接,以通過所述第二ADB服務程序獲取Android終端的信息,并返回給所述第一主機的第一ADB服務程序;所述第二ADB服務程序用于與Android終端的守護進程建立連接。
本發(fā)明實施例還提供一種連接控制方法,應用于第一主機,所述方法包括:
通過ADB客戶端程序獲取連接命令;
通過第一ADB服務程序向中轉(zhuǎn)服務器發(fā)送所述連接命令及鑒權(quán)請求,以便所述中轉(zhuǎn)服務器將所述連接命令轉(zhuǎn)發(fā)至第二主機,使得所述第二主機響應于所述連接命令,通過ADB解析程序與所述中轉(zhuǎn)服務器建立連接,使得所述中轉(zhuǎn)服務器將所述鑒權(quán)請求轉(zhuǎn)發(fā)至第二主機,使得所述第二主機通過所述ADB解析程序響應于所述鑒權(quán)請求,以建立所述第一ADB服務程序與所述ADB解析程序的連接,使得所述第二主機通過所述第二ADB服務程序獲取Android終端的信息,并通過所述中轉(zhuǎn)服務器返回給所述第一ADB服務程序;所述第二ADB服務程序用于與Android終端的守護進程建立連接。
本發(fā)明實施例還提供另一種連接控制方法,應用于第二主機,所述方法包括:
接收中轉(zhuǎn)服務器發(fā)送的連接命令,響應于所述連接命令,通過ADB解析程序與所述中轉(zhuǎn)服務器建立連接;所述連接命令為第一主機向所述中轉(zhuǎn)服務器發(fā)送的命令;
接收中轉(zhuǎn)服務器發(fā)送的鑒權(quán)請求,響應于所述鑒權(quán)請求,使得所述ADB解析程序通過所述中轉(zhuǎn)服務器與所述第一主機的第一ADB服務程序建立連接;所述鑒權(quán)請求為所述第一主機向所述中轉(zhuǎn)服務器發(fā)送的鑒權(quán)請求;
通過所述ADB解析程序與第二ADB服務程序連接,以通過所述第二ADB服務程序獲取Android終端的信息,并通過所述中轉(zhuǎn)服務器返回給所述第一主機的第一ADB服務程序;
所述第二ADB服務程序用于與Android終端的守護進程建立連接。
本發(fā)明實施例還提供一種第一主機,包括:
ADB客戶端模塊,用于獲取連接命令;
第一ADB服務模塊,用于向中轉(zhuǎn)服務器發(fā)送所述連接命令及鑒權(quán)請求,以便所述中轉(zhuǎn)服務器將所述連接命令轉(zhuǎn)發(fā)至第二主機,使得所述第二主機響應于所述連接命令,通過ADB解析模塊與所述中轉(zhuǎn)服務器建立連接,使得所述中轉(zhuǎn)服務器將所述鑒權(quán)請求轉(zhuǎn)發(fā)至第二主機,使得所述第二主機通過所述ADB解析模塊響應于所述鑒權(quán)請求,以建立所述第一ADB服務模塊與所述ADB解析模塊的連接,使得所述第二主機通過所述第二ADB服務模塊獲取Android終端的信息,并通過所述中轉(zhuǎn)服務器返回給所述第一主機的第一ADB服務模塊;
所述第二ADB服務模塊還用于與Android終端的守護進程建立連接。
本發(fā)明實施例還提供一種第二主機,包括:
連接模塊,用于接收中轉(zhuǎn)服務器發(fā)送的連接命令,響應于所述連接命令,觸發(fā)ADB解析模塊與所述中轉(zhuǎn)服務器建立連接;所述連接命令為第一主機向所述中轉(zhuǎn)服務器發(fā)送的命令;
所述ADB解析模塊還用于,接收中轉(zhuǎn)服務器發(fā)送的鑒權(quán)請求,響應于所述鑒權(quán)請求,以通過所述中轉(zhuǎn)服務器與所述第一主機的第一ADB服務模塊建立連接;與第二ADB服務模塊連接,以通過所述第二ADB服務模塊獲取Android終端的信息,并通過所述中轉(zhuǎn)服務器返回給所述第一主機的第一ADB服務模塊;所述鑒權(quán)請求為所述第一主機向所述中轉(zhuǎn)服務器發(fā)送的鑒權(quán)請求;
第二ADB服務模塊,用于與Android終端的守護進程建立連接,以便獲取Android終端的信息。
本發(fā)明實施例提供的連接控制方法、主機及系統(tǒng),在第一主機和第二主機之間搭建中轉(zhuǎn)服務器,并在第二主機中安裝ADB解析程序,通過中轉(zhuǎn)服務器建立第一主機的ADB服務程序與第二主機的ADB解析程序之間的連接,通過第一主機的ADB服務程序、中轉(zhuǎn)服務器以及第二主機的ADB解析程序建立第一主機的ADB客戶端程序與第二主機的ADB服務程序的連接,實現(xiàn)了在第一主機和第二主機不能直接建立網(wǎng)絡連接的情況下,第一主機和第二主機間的網(wǎng)絡連通,并可以實現(xiàn)第一主機的ADB對Android終端的操作管理。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的連接控制系統(tǒng)的一種結(jié)構(gòu)示意圖;
圖2為本發(fā)明實施例提供的連接控制方法的一種實現(xiàn)流程圖;
圖3為本發(fā)明實施例提供的連接控制方法的另一種實現(xiàn)流程圖;
圖4為本發(fā)明實施例提供的連接控制方法的又一種實現(xiàn)流程圖;
圖5為本發(fā)明實施例提供的第一主機的一種結(jié)構(gòu)示意圖;
圖6為本發(fā)明實施例提供的第二主機的一種結(jié)構(gòu)示意圖;
圖7為本發(fā)明實施例提供的第一主機的一種硬件結(jié)構(gòu)框圖。
說明書和權(quán)利要求書及上述附圖中的術(shù)語“第一”、“第二”、“第三”“第四”等(如果存在)是用于區(qū)別類似的部分,而不必用于描述特定的順序或先后次序。應該理解這樣使用的數(shù)據(jù)在適當情況下可以互換,以便這里描述的本申請的實施例能夠以除了在這里圖示的以外的順序?qū)嵤?/p>
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參閱圖1,圖1為本發(fā)明實施例提供的連接控制系統(tǒng)的一種結(jié)構(gòu)示意圖。可以包括:第一主機11,中轉(zhuǎn)服務器12和第二主機13;其中,
第一主機11中安裝有ADB客戶端程序和第一ADB服務程序;第二主機13中安裝有ADB解析程序和第二ADB服務程序。
中轉(zhuǎn)服務器12用于第一主機11和第二主機13之間的連接。
第一主機11與中轉(zhuǎn)服務器12之間可以通過局域網(wǎng)連接,也可以通過廣域網(wǎng)連接。
第二主機13位于局域網(wǎng),通過局域網(wǎng)與中轉(zhuǎn)服務器12連接。
第二主機13可以通過USB接口與Android終端建立連接。Android終端是指安裝有Android操作系統(tǒng)的終端,如手機、平板電腦等。
下面說明第一主機11的ADB(由ADB客戶端程序和ADB服務程序構(gòu)成)與Android終端的守護進程ADBD建立連接的過程。如圖2所示,為本發(fā)明實施例提供的連接控制方法的一種實現(xiàn)流程圖,可以包括:
步驟S201:第一主機11的用戶通過ADB客戶端程序輸入連接命令,該連接命令指定接收該命令的地址和端口為中轉(zhuǎn)服務器12的地址和端口。
步驟S202:ADB客戶端程序接收到用戶輸入的連接命令后,將該連接命令發(fā)送給第一ADB服務程序。
步驟S203:第一ADB服務程序?qū)⒃撨B接命令以及鑒權(quán)請求發(fā)送給中轉(zhuǎn)服務器12;通常,ADB客戶端程序與ADB服務程序之間的傳輸協(xié)議,以及ADB服務程序與中轉(zhuǎn)服務器12之間的傳輸協(xié)議是不同的協(xié)議,因此,第一ADB服務程序?qū)⒃撨B接命令進行協(xié)議轉(zhuǎn)換后發(fā)送給中轉(zhuǎn)服務器12。當然,鑒權(quán)請求在傳輸時也是符合ADB服務程序與中轉(zhuǎn)服務器12之間的傳輸協(xié)議的。
步驟S204:中轉(zhuǎn)服務器12接收到連接命令和鑒權(quán)請求后,將連接命令轉(zhuǎn)發(fā)至第二主機13。
在一個可選的實施例中,中轉(zhuǎn)服務器12可以通過預先存儲的第一主機地址與第二主機地址的對應關(guān)系,確定與第一主機11的地址對應的目標第二主機地址,將連接命令發(fā)送至目標第二主機。
在另一可選的實施例中,第一ADB服務程序在向中轉(zhuǎn)服務器12發(fā)送連接命令和鑒權(quán)請求的同時,還向中轉(zhuǎn)服務器12發(fā)送目標第二主機的地址,以便中轉(zhuǎn)服務器12根據(jù)目標第二主機的地址,將連接命令轉(zhuǎn)發(fā)至目標第二主機。
步驟S205:第二主機13接收到連接命令后,通過ADB解析程序與中轉(zhuǎn)服務器12建立網(wǎng)絡連接;這樣,第一主機11與第二主機13建立網(wǎng)絡連接。
在一可選的實施例中,第二主機13可以通過監(jiān)控進程接收中轉(zhuǎn)服務器轉(zhuǎn)發(fā)的連接命令,由該監(jiān)控進程觸發(fā)ADB解析程序與中轉(zhuǎn)服務器12建立連接。也就是說,ADB解析程序不是一直與中轉(zhuǎn)服務器12保持連接的,而是在第二主機13接收到中轉(zhuǎn)服務器12轉(zhuǎn)發(fā)的連接命令后,才與中轉(zhuǎn)服務器12建立連接。這樣可以降低中轉(zhuǎn)服務器12和第二主機13的功耗。
在另一可選的實施例中,第二主機13可以通過監(jiān)控進程接收中轉(zhuǎn)服務器轉(zhuǎn)發(fā)的連接命令,由該觸發(fā)進程啟動ADB解析程序,使得ADB解析程序啟動并運行后,與中轉(zhuǎn)服務器12建立連接。本實施例中,ADB解析程序在與中轉(zhuǎn)服務器12建立連接之前,一直處于未啟動狀態(tài),只有在需要與中轉(zhuǎn)服務器12建立連接時(即接收到連接命令時),才由監(jiān)控進程啟動,啟動后通過局域網(wǎng)與中轉(zhuǎn)服務器12建立連接。進一步降低了第二主機13的功耗。
步驟S206:ADB解析程序與中轉(zhuǎn)服務器12建立連接后,中轉(zhuǎn)服務器12向ADB解析程序轉(zhuǎn)發(fā)上述鑒權(quán)請求;
步驟S207:ADB解析程序接收到鑒權(quán)請求后,通過中轉(zhuǎn)服務器向第一ADB服務程序返回響應,以建立第一ADB服務程序與ADB解析程序的連接,即第一ADB服務程序通過中轉(zhuǎn)服務器12與ADB解析程序建立連接。
步驟S208:第一ADB服務程序通過中轉(zhuǎn)服務器12與ADB解析程序建立連接后,ADB解析程序與第二ADB服務程序建立連接。
步驟S209:ADB解析程序與第二ADB服務程序建立連接后,第二ADB服務程序獲取Android終端的相關(guān)信息,如Android終端的廠商、型號等信息。
步驟S210:第二ADB服務程序?qū)@取的Android終端的相關(guān)信息返回給ADB解析程序。
步驟S211:ADB解析程序?qū)ndroid終端的相關(guān)信息通過中轉(zhuǎn)服務器12返回給第一ADB服務程序。至此,第一主機的ADB與Android終端的守護進程建立連接。
本發(fā)明實施例提供連接控制系統(tǒng),在第一主機和第二主機之間搭建中轉(zhuǎn)服務器,并在第二主機中安裝ADB解析程序,通過中轉(zhuǎn)服務器建立第一主機的ADB服務程序與第二主機的ADB解析程序之間的連接,通過第一主機的ADB服務程序、中轉(zhuǎn)服務器以及第二主機的ADB解析程序建立第一主機的ADB客戶端程序與第二主機的ADB服務程序的連接,實現(xiàn)了在第一主機和第二主機不能直接建立網(wǎng)絡連接的情況下,第一主機和第二主機間的網(wǎng)絡連通,并可以實現(xiàn)第一主機的ADB對Android終端的操作管理。
在第一主機的ADB與Android終端的守護進程建立連接后,就可以通過第一主機的ADB向Android終端的守護進程發(fā)送adb控制命令,實現(xiàn)第一主機的ADB對Android終端的操作管理。
具體的,假設用戶想使用第一類控制指令,則用戶通過第一主機11的ADB客戶端程序輸入與第一類控制指令對應的預設格式的adb命令后,第一主機11的ADB服務程序?qū)db命令進行協(xié)議轉(zhuǎn)換后依次經(jīng)過第一主機11的第一ADB服務程序、中轉(zhuǎn)服務器12、第二主機13的ADB解析程序、第二主機13的第二ADB服務程序,最終發(fā)送到Android終端的ADBD,然后ADBD進行響應,生成響應指令,該響應指令原路返回到第一主機11的第一ADB服務程序,之后用戶可以正常使用第一類控制指令了。
例如,假設用戶想使用shell命令對Android終端進行操作管理,則具體的處理過程為:
用戶通過第一主機11的ADB客戶端程序輸入adb shell,按回車之后,shell命令依次經(jīng)過第一主機11的第一ADB服務程序、中轉(zhuǎn)服務器12、第二主機13的ADB解析程序、第二主機13的第二ADB服務程序,最終發(fā)送到Android終端的ADBD,然后ADBD進行響應,生成響應指令OK,該響應依次經(jīng)過第二主機13的第二ADB服務程序、第二主機13的ADB解析程序、中轉(zhuǎn)服務器12、最終返回到第一主機11的第一ADB服務程序,之后用戶可以正常使用shell指令了。
在一可選的實施例中,為了進一步避免用戶的不當操作對Android終端造成破壞,保證Android終端的安全,在一可選的實施例中,ADB解析程序在接收到控制命令后,還對控制命令進行過濾,判斷該控制命令是否為危險命令;若該控制命令為危險命令,則不對該控制命令進行解析;若該控制命令不是危險命令,則將該控制命令解析為第二ADB服務程序能夠識別的控制命令后向第二ADB服務程序發(fā)送。
在一可選的實施例中,ADB解析程序可以根據(jù)控制命令是否位于預置的危險命令清單中判斷控制命令是否為危險命令;若控制命令位于預置的危險命令清單中,確定控制命令為危險命令;否則,確定控制命令不為危險命令。
在一可選的實施例中,第一主機11通過ADB客戶端程序獲取的連接命令可以為adb connect命令。這樣,用戶只需輸入adb connect IP:PORT命令時指定中轉(zhuǎn)服務器的地址(IP)和端口(PORT)即可,后續(xù)的命令無需再指定中轉(zhuǎn)服務器的地址和端口,簡化了用戶操作。而傳統(tǒng)的通過adb命令建立第一主機上的ADB客戶端與第二主機上的ADB服務器之間的連接時,每次發(fā)送adb命令都需要指定第二主機的地址和端口號,使得用戶操作比較繁瑣。
本發(fā)明實施例還提供一種應用于第一主機的連接控制方法,如圖3所示,為本發(fā)明實施例提供的連接控制方法的另一種實現(xiàn)流程圖,可以包括:
步驟S31:通過ADB客戶端程序獲取連接命令;
在一可選的實施例中,該連接命令可以為adb connect命令。這樣,用戶只需輸入adb connect IP:PORT命令時指定中轉(zhuǎn)服務器的地址(IP)和端口(PORT)即可,后續(xù)的命令無需再指定中轉(zhuǎn)服務器的地址和端口,簡化了用戶操作。
步驟S32:通過第一ADB服務程序向中轉(zhuǎn)服務器發(fā)送上述連接命令及鑒權(quán)請求,以便中轉(zhuǎn)服務器將連接命令轉(zhuǎn)發(fā)至第二主機,使得第二主機響應于該連接命令,通過ADB解析程序與中轉(zhuǎn)服務器建立連接,使得所述中轉(zhuǎn)服務器將所述鑒權(quán)請求轉(zhuǎn)發(fā)至第二主機,使得所述第二主機通過所述ADB解析程序響應于所述鑒權(quán)請求,以建立所述第一ADB服務程序與所述ADB解析程序的連接,使得所述第二主機通過所述第二ADB服務程序獲取Android終端的信息,并通過所述中轉(zhuǎn)服務器返回給所述第一ADB服務程序;所述第二ADB服務程序用于與Android終端的守護進程建立連接。
本發(fā)明實施例中,在建立第一主機的ADB與Android終端的守護進程的連接過程中的鑒權(quán)過程,在第一主機的第一ADB服務程序和第二主機的ADB解析程序之間進行,從而無需Android終端的用戶操作,與現(xiàn)有技術(shù)中需要用戶在Android終端參與鑒權(quán)過程相比,簡化了用戶操作。
第一ADB服務程序向中轉(zhuǎn)服務器發(fā)送上述連接命令和鑒權(quán)請求時,可以攜帶目標第二主機的地址,也可以不攜帶目標第二主機的地址。若第一ADB服務程序向中轉(zhuǎn)服務器發(fā)送上述連接命令和鑒權(quán)請求時,攜帶目標第二主機的地址,則中轉(zhuǎn)服務器可以通過該目標第二主機的地址,將連接命令轉(zhuǎn)發(fā)給目標第二主機。若第一ADB服務程序向中轉(zhuǎn)服務器發(fā)送上述連接命令和鑒權(quán)請求時,未攜帶目標第二主機的地址,則可以根據(jù)本地預先存儲的第一主機地址與第二主機地址的對應關(guān)系,確定目標第二主機的地址,將連接命令轉(zhuǎn)發(fā)給目標第二主機。
步驟S33:接收中轉(zhuǎn)服務器發(fā)送的Android終端信息,所述Android終端信息由第二主機的ADB解析程序向中轉(zhuǎn)服務器發(fā)送。
本發(fā)明實施例提供的連接控制方法,在第二主機中安裝ADB解析程序,通過中轉(zhuǎn)服務器建立第一主機的ADB服務程序與第二主機的ADB解析程序之間的連接,通過第一主機的ADB服務程序、中轉(zhuǎn)服務器以及第二主機的ADB解析程序建立第一主機的ADB客戶端程序與第二主機的ADB服務程序的連接,實現(xiàn)了在第一主機和第二主機不能直接建立網(wǎng)絡連接的情況下,第一主機和第二主機間的網(wǎng)絡連通,并可以實現(xiàn)第一主機的ADB對Android終端的操作管理。
本發(fā)明實施例還提供一種應用于第二主機的連接控制方法,本發(fā)明實施例提供的連接控制方法的又一種實現(xiàn)流程圖如圖4所示,可以包括:
步驟S41:接收中轉(zhuǎn)服務器發(fā)送的連接命令,響應于該連接命令,通過ADB解析程序與中轉(zhuǎn)服務器建立連接;連接命令為第一主機向中轉(zhuǎn)服務器發(fā)送的命令;
在一可選的實施例中,可以通過監(jiān)控進程接收中轉(zhuǎn)服務器轉(zhuǎn)發(fā)的連接命令,由該監(jiān)控進程觸發(fā)ADB解析程序與中轉(zhuǎn)服務器12建立連接。也就是說,ADB解析程序不是一直與中轉(zhuǎn)服務器12保持連接的,而是在第二主機13接收到中轉(zhuǎn)服務器12轉(zhuǎn)發(fā)的連接命令后,才與中轉(zhuǎn)服務器12建立連接。這樣可以降低中轉(zhuǎn)服務器12和第二主機13的功耗。
在另一可選的實施例中,可以通過監(jiān)控進程接收中轉(zhuǎn)服務器轉(zhuǎn)發(fā)的連接命令,由該觸發(fā)進程啟動ADB解析程序,ADB解析程序啟動后,與中轉(zhuǎn)服務器12建立連接。本實施例中,ADB解析程序在與中轉(zhuǎn)服務器12建立連接之前,一直處于未開啟狀態(tài),只有在需要與中轉(zhuǎn)服務器12建立連接時(即接收到連接命令時),才由監(jiān)控進程啟動,啟動后通過局域網(wǎng)與中轉(zhuǎn)服務器12建立連接。進一步降低了第二主機13的功耗。
步驟S42:通過ADB解析程序接收中轉(zhuǎn)服務器發(fā)送的鑒權(quán)請求,ADB解析程序響應于該鑒權(quán)請求,使得ADB解析程序通過中轉(zhuǎn)服務器與第一主機的第一ADB服務程序建立連接;上述鑒權(quán)請求為第一主機向中轉(zhuǎn)服務器發(fā)送的鑒權(quán)請求;
步驟S43:通過ADB解析程序與第二ADB服務程序連接,以通過第二ADB服務程序獲取Android終端的信息,并通過所述中轉(zhuǎn)服務器返回給第一主機的第一ADB服務程序;
第二ADB服務程序用于與Android終端的守護進程建立連接。
本發(fā)明實施例提供的連接控制方法,在第二主機中安裝ADB解析程序,通過中轉(zhuǎn)服務器建立第一主機的ADB服務程序與第二主機的ADB解析程序之間的連接,通過第一主機的ADB服務程序、中轉(zhuǎn)服務器以及第二主機的ADB解析程序建立第一主機的ADB客戶端程序與第二主機的ADB服務程序的連接,實現(xiàn)了在第一主機和第二主機不能直接建立網(wǎng)絡連接的情況下,第一主機和第二主機間的網(wǎng)絡連通,并可以實現(xiàn)第一主機的ADB對Android終端的操作管理。
在一可選的實施例中,上述連接控制方法還可以包括:
通過ADB解析程序接收中轉(zhuǎn)服務器轉(zhuǎn)發(fā)的控制命令;將控制命令解析為第二ADB服務程序能夠識別的控制命令后向第二ADB服務程序發(fā)送。
在第一主機的ADB與Android終端的守護進程建立連接后,就可以通過第一主機的ADB向Android終端的守護進程發(fā)送adb控制命令,實現(xiàn)第一主機的ADB對Android終端的操作管理。
在一可選的實施例中,通過ADB解析程序?qū)⒖刂泼罱馕鰹榈诙嗀DB服務程序能夠識別的命令的一種實現(xiàn)方式可以為:
通過ADB解析程序判斷控制命令是否為危險命令;
當控制命令不為危險命令時,通過ADB解析程序?qū)⒖刂泼罱馕鰹榈诙嗀DB服務程序能夠識別的控制命令。
本發(fā)明實施例中,ADB解析程序在接收到控制命令后,還對控制命令進行過濾,只對非危險命令進行解析,而不對危險命令進行解析,從而避免不當控制命令對Android終端造成破壞,保證Android終端的安全。
在一可選的實施例中,通過ADB解析程序判斷控制命令是否為危險命令的一種實現(xiàn)方式可以為:
通過ADB解析程序判斷控制命令是否位于預置的危險命令清單中;
若控制命令位于預置的危險命令清單中,通過第二ADB客戶確定控制命令為危險命令;否則,確定控制命令不為危險命令。
與圖3所示方法實施例相對應,本發(fā)明實施例還提供一種第一主機,本發(fā)明實施例提供的第一主機的一種結(jié)構(gòu)示意圖如圖5所示,可以包括:
ADB客戶端模塊51和第一ADB服務模塊52;其中,
ADB客戶端模塊51用于獲取連接命令;該連接命令可以為adb connect命令。
第一ADB服務模塊52用于向中轉(zhuǎn)服務器發(fā)送連接命令及鑒權(quán)請求,以便中轉(zhuǎn)服務器將連接命令轉(zhuǎn)發(fā)至第二主機,使得第二主機響應于連接命令,通過ADB解析模塊與中轉(zhuǎn)服務器建立連接,使得所述中轉(zhuǎn)服務器將所述鑒權(quán)請求轉(zhuǎn)發(fā)至第二主機,使得第二主機通過ADB解析模塊響應于鑒權(quán)請求,以建立第一ADB服務模塊與ADB解析模塊的連接,使得第二主機通過第二ADB服務模塊獲取Android終端的信息,并通過所述中轉(zhuǎn)服務器返回給第一主機的第一ADB服務模塊;
所述第二ADB服務模塊52還用于與Android終端的守護進程建立連接。
本發(fā)明實施例提供的第一主機,在第二主機中安裝ADB解析模塊,通過中轉(zhuǎn)服務器建立第一主機的ADB服務程序與第二主機的ADB解析模塊之間的連接,通過第一主機的ADB服務程序、中轉(zhuǎn)服務器以及第二主機的ADB解析程序建立第一主機的ADB客戶端程序與第二主機的ADB服務程序的連接,實現(xiàn)了在第一主機和第二主機不能直接建立網(wǎng)絡連接的情況下,第一主機和第二主機間的網(wǎng)絡連通,并可以實現(xiàn)第一主機的ADB對Android終端的操作管理。
與圖4所示方法實施例相對應,本發(fā)明實施例還提供一種第二主機,本發(fā)明實施例提供的第二主機的一種結(jié)構(gòu)示意圖如圖6所示,可以包括:
連接模塊61,ADB解析模塊62和第二ADB服務模塊63;其中,
連接模塊61用于接收中轉(zhuǎn)服務器發(fā)送的連接命令,響應于該連接命令,觸發(fā)ADB解析模塊62與中轉(zhuǎn)服務器建立連接;連接命令為第一主機向中轉(zhuǎn)服務器發(fā)送的命令;
ADB解析模塊62還用于,接收中轉(zhuǎn)服務器發(fā)送的鑒權(quán)請求,響應于鑒權(quán)請求,以通過中轉(zhuǎn)服務器與第一主機的第一ADB服務模塊建立連接;與第二ADB服務模塊連接,以通過第二ADB服務模塊獲取Android終端的信息,并通過所述中轉(zhuǎn)服務器返回給第一主機的第一ADB服務模塊;鑒權(quán)請求為第一主機向中轉(zhuǎn)服務器發(fā)送的鑒權(quán)請求;
第二ADB服務模塊63用于與Android終端的守護進程建立連接,以便獲取Android終端的信息。
本發(fā)明實施例提供的第二主機,在第二主機中安裝ADB解析模塊,通過中轉(zhuǎn)服務器建立第一主機的ADB服務程序與第二主機的ADB解析模塊之間的連接,通過第一主機的ADB服務程序、中轉(zhuǎn)服務器以及第二主機的ADB解析程序建立第一主機的ADB客戶端程序與第二主機的ADB服務程序的連接,實現(xiàn)了在第一主機和第二主機不能直接建立網(wǎng)絡連接的情況下,第一主機和第二主機間的網(wǎng)絡連通,并可以實現(xiàn)第一主機的ADB對Android終端的操作管理。
在可以可選的實施例中,ADB解析模塊還用于,接收中轉(zhuǎn)服務器轉(zhuǎn)發(fā)的控制命令;將控制命令解析為第二ADB服務模塊能夠識別的控制命令后向第二ADB服務模塊發(fā)送。
在一可選的實施例中,ADB解析模塊用于將控制命令解析為第二ADB服務模塊能夠識別的控制命令,包括:
ADB解析模塊用于,判斷控制命令是否為危險命令;當控制命令不為危險命令時,通過ADB解析模塊將控制命令解析為第二ADB服務模塊能夠識別的控制命令。
在一可選的實施例中,ADB解析模塊用于判斷控制命令是否為危險命令,包括:
ADB解析模塊用于,判斷控制命令是否位于預置的危險命令清單中;若控制命令位于預置的危險命令清單中,確定控制命令為危險命令;否則,確定控制命令不為危險命令。
如圖7所示,示出了第一主機的硬件結(jié)構(gòu)框圖。該第一主機可以包括:處理器1,通信接口2,存儲器3和通信總線4;
其中,處理器1,通信接口2和存儲器3通過通信總線4完成相互間的通信;可選的,通信接口2可以為通信模塊的接口,如GSM模塊的接口;
處理器1,用于執(zhí)行程序;
存儲器3,用于存放程序;
程序可以包括程序代碼,所述程序代碼包括計算機操作指令。
處理器1可能是一個中央處理器CPU,或者是特定集成電路ASIC(Application Specific Integrated Circuit),或者是被配置成實施本發(fā)明實施例的一個或多個集成電路。
存儲器3可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatile memory),例如至少一個磁盤存儲器。
其中,程序可具體可以用于:
通過ADB客戶端程序獲取連接命令;
通過第一ADB服務程序向中轉(zhuǎn)服務器發(fā)送所述連接命令及鑒權(quán)請求,以便所述中轉(zhuǎn)服務器將所述連接命令轉(zhuǎn)發(fā)至第二主機,使得所述第二主機響應于所述連接命令,通過ADB解析程序與所述中轉(zhuǎn)服務器建立連接,使得所述第二主機通過所述ADB解析程序響應于所述鑒權(quán)請求,以建立所述第一ADB服務程序與所述ADB解析程序的連接,使得所述第二主機通過所述第二ADB服務程序獲取Android終端的信息,并返回給所述第一ADB服務程序;所述第二ADB服務程序用于與Android終端的守護進程建立連接。
當然,圖7所示硬件框圖也可以用于第二主機,當應用第二主機時,上述程序具體可以用于:
接收中轉(zhuǎn)服務器發(fā)送的連接命令,響應于所述連接命令,通過ADB解析程序與所述中轉(zhuǎn)服務器建立連接;所述連接命令為第一主機向所述中轉(zhuǎn)服務器發(fā)送的命令;
接收中轉(zhuǎn)服務器發(fā)送的鑒權(quán)請求,響應于所述鑒權(quán)請求,使得所述ADB解析程序通過所述中轉(zhuǎn)服務器與所述第一主機的第一ADB服務程序建立連接;所述鑒權(quán)請求為所述第一主機向所述中轉(zhuǎn)服務器發(fā)送的鑒權(quán)請求;
通過所述ADB解析程序與第二ADB服務程序連接,以通過所述第二ADB服務程序獲取Android終端的信息,并返回給所述第一主機的第一ADB服務程序;
所述第二ADB服務程序用于與Android終端的守護進程建立連接。
本領域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計算機軟件和電子硬件的結(jié)合來實現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應用和設計約束條件。專業(yè)技術(shù)人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
所屬領域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(ROM,Read-Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)
對所公開的實施例的上述說明,使本領域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實施例的多種修改對本領域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所公開的原理和新穎特點相一致的最寬的范圍。