亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

虛擬輸入控制的方法、裝置及系統(tǒng)的制作方法_3

文檔序號(hào):9810347閱讀:來源:國知局
不限于Android操作系統(tǒng)。
[0156]圖1所示方法具體包括以下步驟。
[0157]SlOl:宿主操作系統(tǒng)與虛擬操作系統(tǒng)建立網(wǎng)絡(luò)連接后,通過宿主操作系統(tǒng)中的模擬控制程序啟動(dòng)虛擬操作系統(tǒng)。
[0158]宿主操作系統(tǒng)與虛擬操作系統(tǒng)建立網(wǎng)絡(luò)連接,可以由宿主系統(tǒng)對(duì)網(wǎng)絡(luò)連接進(jìn)行配置,例如,通過配置(增加)一個(gè)專門用來通信的虛擬網(wǎng)絡(luò)連接,并使得宿主系統(tǒng)和虛擬系統(tǒng)在這個(gè)虛擬網(wǎng)絡(luò)連接中連通。對(duì)于宿主操作系統(tǒng)與虛擬操作系統(tǒng)之間的網(wǎng)絡(luò)連接,說明如下:I)這個(gè)虛擬網(wǎng)絡(luò)連接可由VirtualBox提供;2)對(duì)虛擬網(wǎng)絡(luò)配置在啟動(dòng)虛擬系統(tǒng)之前進(jìn)行,是每次啟動(dòng)之前的例行操作,以保證宿主和虛擬系統(tǒng)網(wǎng)絡(luò)連通;3)策略是,如果這個(gè)虛擬連接不存在,則可通過如VirtualBox的虛擬機(jī)創(chuàng)建一個(gè)新的虛擬連接;如果虛擬連接已創(chuàng)建或已存在,對(duì)連接參數(shù)(IP地址,網(wǎng)關(guān)等)進(jìn)行配置,以保證宿主和虛擬系統(tǒng)連通。
[0159]本發(fā)明中,模擬控制程序也稱為player,具體實(shí)現(xiàn)中,可以在安卓模擬器實(shí)現(xiàn)該程序。如前所述的,虛擬操作系統(tǒng)一般運(yùn)行在如VirtualBox的虛擬機(jī)中,因此,具體實(shí)現(xiàn)中,可以通過宿主操作系統(tǒng)中的player程序控制VirtualBox虛擬機(jī),由VirtualBox虛擬機(jī)啟動(dòng)虛擬操作系統(tǒng)。
[0160]S102:虛擬操作系統(tǒng)通過基礎(chǔ)進(jìn)程加載預(yù)定義腳本,從而將虛擬操作系統(tǒng)的IP地址提供給宿主操作系統(tǒng),以及,通過基礎(chǔ)進(jìn)程啟動(dòng)虛擬輸入服務(wù)進(jìn)程。
[0161 ]例如,虛擬機(jī)為VirtualBox虛擬機(jī),虛擬操作系統(tǒng)是指Android系統(tǒng)。具體實(shí)現(xiàn)過程如下,首先,android系統(tǒng)通過其基礎(chǔ)進(jìn)程(init進(jìn)程)加載預(yù)定義腳本(shell腳本),運(yùn)行VirtualBox虛擬機(jī)的客戶擴(kuò)展組件,將android系統(tǒng)的IP地址寫入VirtualBox虛擬機(jī)的客戶屬性;然后,宿主操作系統(tǒng)讀取VirtualBox虛擬機(jī)的客戶屬性,獲取android系統(tǒng)的IP地址。
[0162]本領(lǐng)域技術(shù)人員理解,在android系統(tǒng)中,內(nèi)核自行啟動(dòng)(已經(jīng)被載入內(nèi)存,開始運(yùn)行,并已初始化所有的設(shè)備驅(qū)動(dòng)程序和數(shù)據(jù)結(jié)構(gòu)等)之后,就通過啟動(dòng)一個(gè)用戶級(jí)程序init的方式,完成引導(dǎo)進(jìn)程。所以init始終是第一個(gè)進(jìn)程(其進(jìn)程編號(hào)始終為I)。本發(fā)明利用init進(jìn)程來加載一個(gè)預(yù)定義功能的shell腳本,實(shí)現(xiàn)對(duì)VirtualBox虛擬機(jī)的客戶擴(kuò)展組件的控制。
[0163]其中,Shell腳本(She 11 Script)與Windows/Dos下的批處理相似,也就是用各類命令預(yù)先放入到一個(gè)文件中,方便一次性執(zhí)行的一個(gè)程序文件,由于使用了Linux/Unix下的命令,因此shell腳本比Windows下的批處理更強(qiáng)大,比用其他編程程序編輯的程序效率更尚O
[0164]VirtualBox虛擬機(jī)的客戶擴(kuò)展組件(VirtualBox Guest Addit1ns),也稱為客戶端增強(qiáng)包,主要作用是為了增加:共享文件夾、無縫窗口、3D虛擬化顯示。客戶擴(kuò)展組件是一堆軟件包的集合,是運(yùn)行在VirtualBox虛擬機(jī)內(nèi)的,其目的在于,提升虛擬機(jī)的性能,增加和Host之間的交互性和通訊??梢姡瑸榱烁脤?shí)現(xiàn)Host和Guest之間的互動(dòng),VirtualBox提供了Guest擴(kuò)展組件。因此本發(fā)明中,在通信連接建立起來之前,通過Guest擴(kuò)展組件提供的客戶屬性(guestproperty)機(jī)制將Guest的IP地址傳給Host。
[0165]init進(jìn)程除了通過加載she 11腳本,將IP地址提供給Host之外,還在android系統(tǒng)中啟動(dòng)一個(gè)關(guān)鍵的虛擬輸入服務(wù)進(jìn)程,本發(fā)明中也稱為Vinput進(jìn)程。Vinput是本發(fā)明中為了達(dá)到控制Guest Android系統(tǒng)輸入,而并放置于Android系統(tǒng)中的關(guān)鍵進(jìn)程。通過init控制的方式,使得在android系統(tǒng)啟動(dòng)的同時(shí)保證vinput進(jìn)程也被啟動(dòng)。
[0166]S103:宿主操作系統(tǒng)根據(jù)虛擬操作系統(tǒng)的IP地址,建立模擬控制程序與虛擬輸入服務(wù)進(jìn)程之間的連接。
[0167]具體的,可在虛擬操作系統(tǒng)的指定端口,由vinput進(jìn)程建立與Player程序建立通信連接。
[0168]S104:宿主操作系統(tǒng)接收到用戶的控制命令后,根據(jù)控制命令轉(zhuǎn)譯成輸入控制消息,由模擬控制程序?qū)⑤斎肟刂葡l(fā)送給虛擬輸入服務(wù)進(jìn)程。
[0169]用戶的控制命令是在宿主操作系統(tǒng)下輸入的,包括由鼠標(biāo)或鍵盤等輸入的控制命令。
[0170]宿主操作系統(tǒng)接收到用戶的控制命令后,結(jié)合該控制命令的相關(guān)參數(shù)(具體描述控制命令的參數(shù),例如,鼠標(biāo)點(diǎn)擊的位置信息等),轉(zhuǎn)譯生成輸入控制信號(hào),然后,由Player程序?qū)⑤斎肟刂菩畔⒗弥芭cvinput進(jìn)程建立的通信連接通道發(fā)送給vinput進(jìn)程。
[0171]S105:對(duì)虛擬輸入服務(wù)進(jìn)程接收到的輸入控制消息進(jìn)行解譯,得到虛擬操作系統(tǒng)可識(shí)別的輸入控制信號(hào)。
[0172]具體的,可對(duì)vinput進(jìn)程接收到的輸入控制信號(hào)進(jìn)行解譯,得到控制命令,然后對(duì)控制命令進(jìn)行硬件抽象層HAL(Hardware Abstract1n Layer)轉(zhuǎn)換;經(jīng)過HAL轉(zhuǎn)換后,得到虛擬操作系統(tǒng)可識(shí)別的輸入控制信號(hào)。
[0173]其中,HAL (Hardware Abstract1n Layer,硬件抽象層),HAL的作用是將操作系統(tǒng)的其余部分表示為抽象的硬件設(shè)備,特別是去除了真正硬件所富含的瑕疵和特質(zhì),這些設(shè)備表現(xiàn)為操作系統(tǒng)的其它部分和設(shè)備可以使用的獨(dú)立于機(jī)器的服務(wù)的形式(函數(shù)調(diào)用和宏)。通過使用HAL轉(zhuǎn)換和間接硬件尋址,當(dāng)移植到新的硬件上時(shí),驅(qū)動(dòng)程序和核心只需做很少的改動(dòng)。移植HAL本身是直接的,因?yàn)樗械臋C(jī)器相關(guān)代碼都集中在一個(gè)地方,并且移植的目標(biāo)是充分定義的,即實(shí)現(xiàn)所有的HAL服務(wù)。本發(fā)明中,vinput是通過HAL轉(zhuǎn)換將從通信連接中接收到的外部輸入控制命令轉(zhuǎn)變成Android系統(tǒng)可理解的輸入,這是對(duì)Android中已有技術(shù)的創(chuàng)新應(yīng)用。
[0174]通過上述實(shí)施例一的方案,運(yùn)行于Host系統(tǒng)的模擬器(S卩Player)獲取到了Android系統(tǒng)的IP地址,Host通過這個(gè)IP地址與Android中的vinput進(jìn)程建立起通信連接,實(shí)際用戶在Host系統(tǒng)的模擬器展現(xiàn)的窗口上看到Android系統(tǒng)實(shí)際運(yùn)行的圖像,并通過鍵盤八氧標(biāo)在模擬器窗口上進(jìn)行輸入,模擬器將得到的用戶輸入數(shù)據(jù)經(jīng)過轉(zhuǎn)化之后,通過通信連接發(fā)送到了 Android系統(tǒng)中的vinput進(jìn)程,vinput進(jìn)程則將這些輸入數(shù)據(jù)轉(zhuǎn)為對(duì)Android系統(tǒng)的實(shí)際控制。
[0175]如前所述的,現(xiàn)有技術(shù)中VirtualBox將鼠標(biāo)的活動(dòng)范圍鎖定在當(dāng)前窗口會(huì)很大程度上影響用戶體驗(yàn),并且對(duì)于不同的Guest系統(tǒng)并不能保證輸入控制的順暢,VirtualBox將鼠標(biāo)的活動(dòng)范圍鎖定在當(dāng)前窗口是VirtualBox的產(chǎn)品策略所致。而本發(fā)明所采用的方式將不再依賴VirtualBox的展現(xiàn)和輸入控制方式,所以就不會(huì)受其弊端影響。另外,由于VirtualBox是一個(gè)開源的通用虛擬機(jī)軟件,可以在其上運(yùn)行的操作系統(tǒng)也不僅限于Android,雖然VirtualBox可以為運(yùn)行其中的Guest系統(tǒng)提供輸入控制,但是由于Guest系統(tǒng)種類很多,所以不可能每一個(gè)達(dá)到非常良好的效果,其自身對(duì)Android的輸入控制就不夠流暢,而本發(fā)明提出是輸入控制方式是完全為Android定制的,可以達(dá)到非常流暢的體驗(yàn)。
[0176]本領(lǐng)域技術(shù)人員理解,盡管前面的技術(shù)描述都是以Host和Guest在同一臺(tái)物理機(jī)器上為前提的,但是由于運(yùn)行于Host的Player和運(yùn)行于Guest的Android實(shí)際上的唯一聯(lián)系是一個(gè)通信連接,所以只要是能夠建立起這個(gè)通信連接就可以運(yùn)用本發(fā)明的技術(shù)。因此,即使Player和Android運(yùn)行在不同的物理機(jī)器上,也是可以進(jìn)行虛擬輸入控制的。
[0177]因此,在具體實(shí)現(xiàn)時(shí),以上方法包括但不限于虛擬操作系統(tǒng)與宿主操作系統(tǒng)運(yùn)行于同一操作性或同一物理PC機(jī)的情況,同樣適用于虛擬操作系統(tǒng)運(yùn)行于其它操作系統(tǒng)或其它物理PC機(jī)的情況;同理,以上方法包括但不限于虛擬操作系統(tǒng)以虛擬機(jī)形式運(yùn)行的情況,同樣適用于虛擬操作系統(tǒng)運(yùn)行于實(shí)際物理設(shè)備的情況。
[0178]對(duì)于虛擬操作系統(tǒng)運(yùn)行在虛擬機(jī)上的情況,請(qǐng)參見圖2和圖3。其中,圖2示出了虛擬機(jī)運(yùn)行在宿主操作系統(tǒng)所在的物理設(shè)備上的情形,即,虛擬機(jī)運(yùn)行在宿主操作系統(tǒng)所在設(shè)備上、虛擬操作系統(tǒng)又運(yùn)行在該虛擬機(jī)上,例如,Guest運(yùn)行在VirtualBox上、VirtualBox運(yùn)行在Host上。圖3示出了虛擬機(jī)運(yùn)行在與宿主操作系統(tǒng)所在物理設(shè)備不同的另一個(gè)物理設(shè)備上的情形,例如,宿主操作系統(tǒng)運(yùn)行在第一設(shè)備(如:PCl)上,虛擬機(jī)運(yùn)行在第二設(shè)備(如,PC2)上、虛擬操作系統(tǒng)又運(yùn)行在該虛擬機(jī)上。
[0179]對(duì)于虛擬操作系統(tǒng)不依賴虛擬機(jī)而運(yùn)行在與宿主操作系統(tǒng)所在物理設(shè)備相獨(dú)立的另一個(gè)物理設(shè)備上的情況,請(qǐng)參見圖4。圖4示出了虛擬操作系統(tǒng)直接運(yùn)行在與宿主操作系統(tǒng)所在物理設(shè)備不同的另一個(gè)物理設(shè)備上的情形,例如,宿主操作系統(tǒng)運(yùn)行在第一設(shè)備(如:PC)上,虛擬操作系統(tǒng)運(yùn)行在第二設(shè)備(如,手機(jī))上。此處,要求第二設(shè)備是可直接運(yùn)行操作系統(tǒng)的設(shè)備,例如智能手機(jī)。
[0180]可見,本發(fā)明提供的方案具備在分布式環(huán)境下實(shí)施的能力。
[01811 下面從palyer程序、VirtualBox、Andro id三方交互的角度,對(duì)本發(fā)明另一個(gè)實(shí)施例提供的虛擬輸入控制的方法進(jìn)行說明??梢岳斫?,該另一實(shí)施例采取的是圖2所示的布局,即,VirtualBox 運(yùn)行在 Host端,Andro id (Guest端)又運(yùn)行在VirtualBox,其中,palyer 程序是在Host端實(shí)現(xiàn)的,與Android中的vinput配合實(shí)現(xiàn)本發(fā)明主要功能的程序,可以在Andro id模擬器中實(shí)現(xiàn)。
[0182]因此,本發(fā)明的實(shí)現(xiàn)包括運(yùn)行在宿主操作系統(tǒng)(Host)的模擬控制程序Player和運(yùn)行虛擬android系統(tǒng)(Guest)的接收程序vinput,以及運(yùn)行在虛擬機(jī)的android系統(tǒng)本身。
[0183](I)Player程序的邏輯
[0184]Player通過調(diào)用VirtualBox來啟動(dòng)Android系統(tǒng);之后通過VirtualBox的guestproperty機(jī)制嘗試獲取Android系統(tǒng)的IP地址;在獲取到Android系統(tǒng)的IP地址之后,與Android系統(tǒng)內(nèi)運(yùn)行的vinput建立通信連接;之后便可將Player接收到的用戶輸入發(fā)送的Andro id系統(tǒng)。
[0185]前面提到的現(xiàn)有技術(shù)中,是通過VirtuaIBox運(yùn)行Andro id系統(tǒng)(并沒有通過Android模擬器中的palyer程序進(jìn)程控制VirtualBox),是可以正常運(yùn)行Android的,但是由于受限于前面提到的弊端,是不能產(chǎn)品化的。本發(fā)明的大前提是Android模擬器的整體方案,雖然仍然需要VirtualBox來運(yùn)行Android系統(tǒng),但是整個(gè)VirtualBox的工作都是后臺(tái)的、不可見的,而展現(xiàn)給用戶是:Andro i d模擬器(即上述P lay er)??梢姡ㄟ^Andro i d模擬器直接控制在后臺(tái)運(yùn)行的VirtualBox,并采用了一些新技術(shù)取代了原先需要VirtualBox來進(jìn)行的工作,包括接管了圖像的渲染工作,以及本發(fā)明描述的接管了輸入控制工作。
[0186](2)Android 系統(tǒng)邏輯
[ΟΙ87] Android系統(tǒng)啟動(dòng),首先是Iinux內(nèi)核啟動(dòng),之后啟動(dòng)Android基礎(chǔ)進(jìn)程init,該進(jìn)程會(huì)加載配置文件init.rc其中描述了 init需要完成操作,包括文件系統(tǒng)操作、權(quán)限控制以及服務(wù)進(jìn)程等。在這個(gè)過程中,本發(fā)明特別使得init進(jìn)程加載一個(gè)shell腳本,完成一個(gè)關(guān)鍵動(dòng)作,,即,借助VirtualBox的Guest擴(kuò)展組件(VirtualBox Guest Addit1ns)將當(dāng)前系統(tǒng)的IP地址寫入到guestproperty,以使得外部Player能獲取到當(dāng)前Android的IP地址。隨后,使得init進(jìn)程啟動(dòng)虛擬輸入服務(wù)進(jìn)程,S卩,vinput進(jìn)程。該進(jìn)程將在特定的端口等待與Player程序建立通信。一旦與Player程序建立連接,vinput進(jìn)程將不斷接收Player程序發(fā)送的用戶在Host端輸入的控制命令,將控制命令進(jìn)行解譯,然后轉(zhuǎn)換為android系統(tǒng)可識(shí)別的輸入控制信號(hào)。
[0188]參見圖5,示出了根據(jù)本發(fā)明另一個(gè)實(shí)施例的虛擬輸入控制的方法的流程圖。
[0189]S501:player 程序控制 VirtualBox 虛擬機(jī)啟動(dòng)and
當(dāng)前第3頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1