本發明涉及智能終端領域,尤其涉及一種雙系統雙向控制的方法和裝置。
背景技術:
現有的許多交互設備為提高設備軟硬件升級的便利性,數據傳輸顯示的安全性,常采用兩個Android系統設備。
在Android雙系統方案中,為了在兩個系統之間進行通信,兩個系統設備分別為主系統設備和從系統設備,主系統設備通過ADB(Android Debug Bridge,Android調試橋)連接至從系統設備并發送控制指令。
但是通過ADB發送的控制指令只能實現主系統設備對從系統設備的單向控制。
技術實現要素:
本發明提供一種雙系統雙向控制的方法和裝置,以實現雙系統設備中兩個系統設備之間的自由控制。
第一方面采用一種雙系統雙向控制的方法,包括:
分別為主系統設備和從系統設備生成虛擬網卡并為所述虛擬網卡生成IP地址;
根據所述IP地址建立所述主系統設備和從系統設備的數據轉發服務的套接字連接;
開啟對所述主系統設備和從系統設備的預設的雙向控制服務的端口的監聽,對應建立所述雙向控制服務與數據轉發服務的套接字連接;
當所述主系統設備或從系統設備檢測到遠程控制指令時,通過所述套接字連接形成的數據通道向對方發送所述遠程控制指令。
其中,所述開啟對所述主系統設備和從系統設備的預設的雙向控制服務的端口的監聽,對應建立所述雙向控制服務與數據轉發服務的套接字連接之后,還包括:
當所述雙向控制服務啟動時,通過套接字連接實現與對應的數據轉發服務的數據連接,并廣播雙向控制服務已開啟。
其中,所述分別為主系統設備和從系統設備生成虛擬網卡并為所述虛擬網卡生成IP地址,包括:
為主系統設備生成第一虛擬網卡并為所述第一虛擬網卡生成第一IP地址,開啟所述主系統設備的數據轉發服務;
在所述主系統設備生成第二IP地址,并通過ADB命令在從系統設備生成第二虛擬網卡,將所述第二IP地址分配給所述第二虛擬網卡。
其中,所述根據所述IP地址建立所述主系統設備和從系統設備的數據轉發服務的套接字連接,包括:
通過ADB命令將第一IP地址和主系統設備的數據轉發服務的端口號作為參數啟動從系統設備的數據轉發服務;
由所述從系統設備根據所述第一IP地址和主系統設備的數據轉發服務的端口號,建立所述主系統設備和從系統設備的數據轉發服務的套接字連接。
其中,所述當所述主系統設備或從系統設備檢測到遠程控制指令時,通過所述套接字連接形成的數據通道向對方發送所述遠程控制指令,具體為:
當所述主系統設備或從系統設備的雙向控制服務檢測到遠程控制指令時,將所述遠程控制指令通過對應的套接字連接依次經由系統設備的雙向控制服務、數據轉發服務、另一系統設備的數據轉發服務發送到另一系統設備的雙向控制服務,以使另一系統設備對所述遠程控制指令進行響應。
第二方面采用一種雙系統雙向控制的裝置,包括:
虛擬網卡單元,用于分別為主系統設備和從系統設備生成虛擬網卡并為所述虛擬網卡生成IP地址;
第一連接單元,用于根據所述IP地址建立所述主系統設備和從系統設備的數據轉發服務的套接字連接;
第二連接單元,用于開啟所述主系統設備和從系統設備的端口監聽來自預設的雙向控制服務的連接,各自建立雙向控制服務與數據轉發服務的套接字連接;
指令發送單元,用于當所述主系統設備或從系統設備檢測到遠程控制指令時,通過所述套接字連接形成的數據通道向對方發送。
其中,所述裝置,還包括:
連接廣播單元,用于當所述雙向控制服務啟動時,通過套接字連接實現與對應的數據轉發服務的數據連接,并廣播雙向控制服務已開啟。
其中,所述虛擬網卡單元,包括:
第一虛擬模塊,用于為主系統設備生成第一虛擬網卡并為所述第一虛擬網卡生成第一IP地址,開啟所述主系統設備的數據轉發服務;
第二虛擬模塊,用于在所述主系統設備生成第二IP地址,并通過ADB命令在從系統設備生成第二虛擬網卡,將所述第二IP地址分配給所述第二虛擬網卡。
其中,所述第一連接單元,包括:
指令發送模塊,用于通過ADB命令將第一IP地址和主系統設備的數據轉發服務的端口號作為參數啟動從系統設備的數據轉發服務;
指令響應模塊,用于由所述從系統設備根據所述第一IP地址和主系統設備的數據轉發服務的端口號建立所述主系統設備和從系統設備的數據轉發服務的套接字連接。
其中,所述指令發送單元,具體用于當所述主系統設備或從系統設備的雙向控制服務檢測到遠程控制指令時,將所述遠程控制指令通過對應的套接字連接依次經由系統設備的雙向控制服務、數據轉發服務、另一系統設備的數據轉發服務發送到另一系統設備的雙向控制服務,以使另一系統設備對所述遠程控制指令進行響應。
本發明通過分別為主系統設備和從系統設備生成虛擬網卡并為所述虛擬網卡生成IP地址;根據所述IP地址建立所述主系統設備和從系統設備的數據轉發服務的套接字連接;開啟對所述主系統設備和從系統設備的預設的雙向控制服務的端口的監聽,對應建立所述雙向控制服務與數據轉發服務的套接字連接,最終建立雙系統之間雙向控制服務的控制指令傳輸的數據通道,基于雙系統的交互設備能夠在各種應用場景下選擇兩個系統設備中的一個作為控制主體對另一個進行控制,套接字連接提供更加方便和更大帶寬的控制方案,同時具備更好的安全性。
附圖說明
圖1是本發明實施例一中的雙系統雙向控制的方法的流程圖;
圖2A是本發明實施例二中的雙系統雙向控制的方法的流程圖;
圖2B是本發明實施例二中的雙系統的軟件系統的架構圖;
圖2C是本發明實施例二中的雙系統的網絡連接的架構圖;
圖3是本發明實施例三中的雙系統雙向控制的裝置的結構示意圖;
圖4是本發明實施例四中的雙系統雙向控制的裝置的結構示意圖。
具體實施方式
下面結合附圖并通過具體實施方式來進一步說明本發明的技術方案。可以理解的是,此處所描述的具體實施例僅僅用于解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與本發明相關的部分而非全部結構。
在更加詳細地討論示例性實施例之前應當提到的是,一些示例性實施例被描述成作為流程圖描繪的處理或方法。雖然流程圖將各步驟描述成順序的處理,但是其中的許多步驟可以被并行地、并發地或者同時實施。此外,各步驟的順序可以被重新安排。當其操作完成時所述處理可以被終止,但是還可以具有未包括在附圖中的附加步驟。所述處理可以對應于方法、函數、規程、子例程、子程序等等。
實施例一
圖1為本發明實施例一提供的一種雙系統雙向控制的方法的流程圖。本實施例的方法可以由雙系統雙向控制的裝置來執行,該裝置可通過硬件和/或軟件的方式實現,并一般可獨立的配置在交互設備內實現本實施例的方法。
請參考圖1,本實施例中的雙系統雙向控制的方法,包括:
S11、分別為主系統設備和從系統設備生成虛擬網卡并為虛擬網卡生成IP地址。
雙系統的交互設備,主系統設備對從系統設備的控制主要通過ADB實現,實現ADB數據傳輸的物理連接主要是USB(Universal Serial Bus,通用串行總線),ADB的數據傳輸本身的傳輸速度比較慢,并且如果要實現從系統設備對主系統設備的控制,需要進行較為復雜的數據變化過程,不能直接實現兩端的直接傳輸。
在本方案中,基于兩個系統設備的網卡,生成虛擬網卡,并為虛擬網卡設定僅互相可知的IP地址,相當于通過虛擬網卡建立專門的數據傳輸通道,在該數據傳輸通道內的數據傳輸相當于通過網絡傳輸,具備理想的帶寬,并且點對點的封閉的數據傳輸通道具備良好的安全性。
S12、根據IP地址建立主系統設備和從系統設備的數據轉發服務的套接字連接。
以網絡連接的通道建立主系統設備和從系統設備的數據轉發服務的套接字連接,數據傳輸的通道專用并且在套接字連接的數據通道中兩個系統設備間的地位平等,能實現控制指令在兩個系統設備間的自由傳輸。
S13、開啟對主系統設備和從系統設備的預設的雙向控制服務的端口的監聽,對應建立雙向控制服務與數據轉發服務的套接字連接。
雙向控制服務是自定義的服務,用于實現系統設備內部不同結構層之間的數據傳輸。在前序步驟中建立的是兩個系統設備的底層間的數據連接,在這一步驟中,進一步建立預設的雙向控制服務與數據轉發服務之間的套接字連接,最終形成從一個系統設備的應用層、架構層到系統內核、再到另一個系統設備的系統內核、架構層即應用層的通道,該通道基于套接字連接實現,能進行攜帶有控制指令的數據的雙向傳輸,實現雙向控制。
步驟S14、當主系統設備或從系統設備檢測到遠程控制指令時,通過套接字連接形成的數據通道向對方發送遠程控制指令。
當主系統設備或從系統設備檢測到需要發送到另一個系統設備的遠程控制指令時,通過套接字連接形成的數據通道向對方發送,另一個系統設備接收到遠程控制指令后根據設定的控制協議對遠程控制指令進行響應。
綜上所述,本實施例的技術方案,通過分別為主系統設備和從系統設備生成虛擬網卡并為所述虛擬網卡生成IP地址;根據所述IP地址建立所述主系統設備和從系統設備的數據轉發服務的套接字連接;開啟對所述主系統設備和從系統設備的預設的雙向控制服務的端口的監聽,對應建立所述雙向控制服務與數據轉發服務的套接字連接,最終建立雙系統之間雙向控制服務的控制指令傳輸的數據通道,基于雙系統的交互設備能夠在各種應用場景下選擇兩個系統設備中的一個作為控制主體對另一個進行控制,套接字連接提供更加方便和更大帶寬的數據傳輸方案,同時具備更好的安全性。
實施例二
圖2A為本發明實施例二提供的雙系統雙向控制的方法的流程圖。在本實施例中,為描述清楚,結合圖2B所示的雙系統的軟件系統的架構和圖2C所示的雙系統的網絡連接的架構進行綜合說明。如圖2A所示,該方法包括:
步驟S21、為主系統設備生成第一虛擬網卡并為第一虛擬網卡生成第一IP地址,開啟主系統設備的數據轉發服務。
在主系統設備的eth0網卡上虛擬一個網卡eth0:1,并且為eth0:1隨機生成一個IP地址,為避免IP地址沖突,eth0:1的IP地址可進行特別設定,例如以169.254開頭。在本實施例中,兩個系統設備的操作系統基于Android系統進行描述,具體架構可以參考圖2B。主系統設備在設定好IP地址后,即可啟動Linux系統層的數據轉發服務,數據轉發服務是兩個Android系統之間的通信,一旦數據轉發服務建立即代表數據轉發服務兩端之間的通信就可以進行。
步驟S22、在主系統設備生成第二IP地址,并通過ADB命令在從系統設備生成第二虛擬網卡,將第二IP地址分配給第二虛擬網卡。
在從系統設備建立連接的相關操作通過主系統設備執行,在主系統設備中生成第二IP地址(與第一IP地址相同,也可進行特別設定,例如以169.254開頭),并通過ADB命令在從系統設備生成第二虛擬網卡,并將第二IP地址分配給第二虛擬網絡,兩個系統設備的IP地址建立后即可基于網絡實現套接字連接。
步驟S23、通過ADB命令將第一IP地址和主系統設備的數據轉發服務的端口號作為參數啟動從系統設備的數據轉發服務。
步驟S24、由從系統設備根據第一IP地址和主系統設備的數據轉發服務的端口號,建立主系統設備和從系統設備的數據轉發服務的套接字連接。
主系統設備的轉發服務和從系統設備的轉發服務在各自知道對方的端口號以及IP地址的情況下,兩個數據轉發服務可以通過套接字連接。數據轉發服務啟動并且連接后,各自同時開啟端口監聽各自來自Android雙向控制服務的連接。Linux系統層的數據轉發服務只負責將收到的數據轉發給Android雙向控制服務,或者將收到的數據轉發給Android層,不負責數據處理。
步驟S25、當雙向控制服務啟動時,通過套接字連接實現與對應的數據轉發服務的數據連接,并廣播雙向控制服務已開啟。
Android系統的雙向控制服務啟動后,通過套接字連接實現與對應的數據轉發服務的數據連接,一旦與Linux系統層的數據轉發服務相連接,則發送Android系統廣播通知應用雙向控制服務已經可用,可以發送雙向控制命令。
步驟S26、當主系統設備或從系統設備的雙向控制服務檢測到遠程控制指令時,將遠程控制指令通過對應的套接字連接依次經由系統設備的雙向控制服務、數據轉發服務、另一系統設備的數據轉發服務發送到另一系統設備的雙向控制服務,以使另一系統設備對遠程控制指令進行響應。
應用層的應用收到雙向控制連接上的廣播后通過AIDL(Android Interface Definition Language,Android接口定義語言)連接上系統中的雙向控制服務,應用通過調用雙向控制服務暴露出來的接口向另一個系統發送控制命令,Android層通過套接字連接發送數據給Linux系統層,Linux系統層則將數據通過套接字連接傳輸給另一個系統設備的Linux系統層,然后另一個Linux系統層將數據通過套接字連接轉發數據給Android層的雙向控制服務。Android層雙向控制服務收到數據之后解析得到消息中的命令,然后根據命令做出對應的響應,即可以完成雙向控制。
在一個具體的應用場景中,以會議平板為例。現在會議平板大多數尺寸很大,一次性安裝后可能需要很久才升級一次硬件。但是CPU、內存卻是每年都會推陳出新。因此可以將常用的Android模塊作為一個可插拔模塊,當有性能更強的模塊時候,直接換上性能更強的模塊即可,極大的節省了用戶的成本。在上述設計架構下,將負責音視頻輸入輸出和顯示的TV方案Android系統作為HOST機(主系統設備),可插拔的模塊作為Slave機(從系統設備),用戶插上可插拔模塊使用的時候,用戶操作只在Slave機,所以二者系統需要互通,例如發送命令去控制整個系統的音量大小,調整整個系統的亮度,切換輸入的通道信號等整機狀態,都需要Salve機發送命令個HOST機去操作,在本方案中,基于套接字連接的雙向控制服務能方便的處理兩個系統設備間任意方向的控制操作。
綜上所述,本實施例的技術方案,通過分別為主系統設備和從系統設備生成虛擬網卡并為所述虛擬網卡生成IP地址;根據所述IP地址建立所述主系統設備和從系統設備的數據轉發服務的套接字連接;開啟對所述主系統設備和從系統設備的預設的雙向控制服務的端口的監聽,對應建立所述雙向控制服務與數據轉發服務的套接字連接,最終建立雙系統之間雙向控制服務的控制指令傳輸的數據通道,基于雙系統的交互設備能夠在各種應用場景下選擇兩個系統設備中的一個作為控制主體對另一個進行控制,套接字連接提供更加方便和更大帶寬的數據傳輸方案,同時具備更好的安全性。同時,基于套接字連接的數據傳輸以及控制指令的響應提高了控制的自由度,增強了交互過程中的用戶體驗。
實施例三
圖3所示為本發明實施例三提供的雙系統雙向控制的裝置的結構示意圖,該裝置可通過硬件和/或軟件的方式實現,并一般可獨立的配置在交互設備實現本實施例的裝置。如圖3所示,所述雙系統雙向控制的裝置具體包括:虛擬網卡單元10、第一連接單元20和第二連接單元30;
虛擬網卡單元10,用于分別為主系統設備和從系統設備生成虛擬網卡并為所述虛擬網卡生成IP地址;
第一連接單元20,用于根據所述IP地址建立所述主系統設備和從系統設備的數據轉發服務的套接字連接;
第二連接單元30,用于開啟所述主系統設備和從系統設備的端口監聽來自預設的雙向控制服務的連接,各自建立雙向控制服務與數據轉發服務的套接字連接;
指令發送單元50,用于當所述主系統設備或從系統設備檢測到遠程控制指令時,通過所述套接字連接形成的數據通道向對方發送所述遠程控制指令。
綜上所述,上述各單元的協同運轉,通過分別為主系統設備和從系統設備生成虛擬網卡并為所述虛擬網卡生成IP地址;根據所述IP地址建立所述主系統設備和從系統設備的數據轉發服務的套接字連接;開啟對所述主系統設備和從系統設備的預設的雙向控制服務的端口的監聽,對應建立所述雙向控制服務與數據轉發服務的套接字連接,最終建立雙系統之間雙向控制服務的控制指令傳輸的數據通道,基于雙系統的交互設備能夠在各種應用場景下選擇兩個系統設備中的一個作為控制主體對另一個進行控制,套接字連接提供更加方便和更大帶寬的數據傳輸方案,同時具備更好的安全性。
實施例四
圖4所示為本發明實施例四提供的雙系統雙向控制的裝置的結構示意圖,該裝置可通過硬件和/或軟件的方式實現,并一般可獨立的配置在終端設備的實現本實施例的裝置。如圖4所示,所述雙系統雙向控制的裝置具體包括:虛擬網卡單元10、第一連接單元20和第二連接單元30;
虛擬網卡單元10,用于分別為主系統設備和從系統設備生成虛擬網卡并為所述虛擬網卡生成IP地址;
第一連接單元20,用于根據所述IP地址建立所述主系統設備和從系統設備的數據轉發服務的套接字連接;
第二連接單元30,用于開啟所述主系統設備和從系統設備的端口監聽來自預設的雙向控制服務的連接,各自建立雙向控制服務與數據轉發服務的套接字連接;
指令發送單元50,用于當所述主系統設備或從系統設備檢測到遠程控制指令時,通過所述套接字連接形成的數據通道向對方發送所述遠程控制指令。
其中,所述裝置,還包括:
連接廣播單元40,用于當所述雙向控制服務啟動時,通過套接字連接實現與對應的數據轉發服務的數據連接,并廣播雙向控制服務已開啟。
其中,所述虛擬網卡單元10,包括:
第一虛擬模塊11,用于為主系統設備生成第一虛擬網卡并為所述第一虛擬網卡生成第一IP地址,開啟所述主系統設備的數據轉發服務;
第二虛擬模塊12,用于在所述主系統設備生成第二IP地址,并通過ADB命令在從系統設備生成第二虛擬網卡,將所述第二IP地址分配給所述第二虛擬網卡。
其中,所述第一連接單元20,包括:
指令發送模塊21,用于通過ADB命令將第一IP地址和主系統設備的數據轉發服務的端口號作為參數啟動從系統設備的數據轉發服務;
指令響應模塊22,用于由所述從系統設備根據所述第一IP地址和主系統設備的數據轉發服務的端口號建立所述主系統設備和從系統設備的數據轉發服務的套接字連接。
其中,所述指令發送單元50,具體用于當所述主系統設備或從系統設備的雙向控制服務檢測到遠程控制指令時,將所述遠程控制指令通過對應的套接字連接依次經由系統設備的雙向控制服務、數據轉發服務、另一系統設備的數據轉發服務發送到另一系統設備的雙向控制服務,以使另一系統設備對所述遠程控制指令進行響應。
綜上所述,上述各單元的協同運轉,通過分別為主系統設備和從系統設備生成虛擬網卡并為所述虛擬網卡生成IP地址;根據所述IP地址建立所述主系統設備和從系統設備的數據轉發服務的套接字連接;開啟對所述主系統設備和從系統設備的預設的雙向控制服務的端口的監聽,對應建立所述雙向控制服務與數據轉發服務的套接字連接,最終建立雙系統之間雙向控制服務的控制指令傳輸的數據通道,基于雙系統的交互設備能夠在各種應用場景下選擇兩個系統設備中的一個作為控制主體對另一個進行控制,套接字連接提供更加方便和更大帶寬的數據傳輸方案,同時具備更好的安全性。同時,基于套接字連接的數據傳輸以及控制指令的響應提高了控制的自由度,增強了交互過程中的用戶體驗。
上述實施例中提供的雙系統雙向控制的裝置可執行本發明任意實施例所提供的雙系統雙向控制的方法,具備執行該方法相應的功能模塊和有益效果。未在上述實施例中詳盡描述的技術細節,可參見本發明任意實施例所提供的雙系統雙向控制的方法。
注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限于這里所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護范圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限于以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的范圍由所附的權利要求范圍決定。