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

一種生成模擬器按鍵控制信息的方法、裝置及系統(tǒng)與流程

文檔序號(hào):12824508閱讀:215來源:國(guó)知局
一種生成模擬器按鍵控制信息的方法、裝置及系統(tǒng)與流程

本發(fā)明涉及終端技術(shù)領(lǐng)域,具體而言,涉及一種生成模擬器按鍵控制信息的方法、裝置及系統(tǒng)。



背景技術(shù):

模擬器可以在一臺(tái)終端上模擬出另一臺(tái)指令不兼容或體系不同的終端。為了便于說明,將模擬器模擬的終端稱為客戶機(jī)端,將模擬所基于的終端稱為主機(jī)端。用戶需要用主機(jī)端的輸入設(shè)備來操控客戶機(jī)端。

當(dāng)前,模擬器一般都有對(duì)應(yīng)的應(yīng)用服務(wù)器,應(yīng)用服務(wù)器中的應(yīng)用程序支持自定義按鍵控制信息??蛻魴C(jī)端從對(duì)應(yīng)的應(yīng)用服務(wù)器中下載應(yīng)用程序,用戶通過自定義設(shè)置該應(yīng)用程序的按鍵控制信息。之后用戶對(duì)主機(jī)端的輸入設(shè)備進(jìn)行操作,觸發(fā)自定義的按鍵控制信息對(duì)應(yīng)的輸入事件,主機(jī)端檢測(cè)到該輸入事件時(shí),發(fā)送操控指令給客戶機(jī)端,客戶機(jī)端根據(jù)該操控指令控制該應(yīng)用程序執(zhí)行相應(yīng)操作。

但在上述生成按鍵控制信息的方法中,對(duì)于不是從應(yīng)用服務(wù)器下載的應(yīng)用程序無法自定義按鍵控制信息。



技術(shù)實(shí)現(xiàn)要素:

有鑒于此,本發(fā)明實(shí)施例的目的在于提供一種生成模擬器按鍵控制信息的方法、裝置及系統(tǒng),根據(jù)被觸發(fā)按鍵的鍵值、屏幕顯示區(qū)域中的觸控信息及當(dāng)前模擬器正在運(yùn)行的應(yīng)用程序來生成該應(yīng)用程序?qū)?yīng)的按鍵控制信息,對(duì)于客戶機(jī)端模擬出的所有應(yīng)用程序都可以按照本發(fā)明提供的方法來生成按鍵控制信息。

第一方面,本發(fā)明實(shí)施例提供了一種生成模擬器按鍵控制信息的方法,所述方法包括:

主機(jī)端獲取輸入設(shè)備中被觸發(fā)按鍵的鍵值及屏幕顯示區(qū)域中的觸控信息,將所述鍵值和所述觸控信息傳輸給客戶機(jī)端;

所述客戶機(jī)端確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序,根據(jù)所述應(yīng)用程序及所述主機(jī)端傳輸?shù)逆I值和觸控信息,生成所述應(yīng)用程序?qū)?yīng)的按鍵控制信息。

結(jié)合第一方面,本發(fā)明實(shí)施提供了上述第一方面的第一種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端根據(jù)所述應(yīng)用程序及所述主機(jī)端傳輸?shù)逆I值和觸控信息,生成所述應(yīng)用程序?qū)?yīng)的按鍵控制信息,包括:

所述客戶機(jī)端根據(jù)所述鍵值和所述觸控信息,生成自定義按鍵映射信息;

所述客戶機(jī)端獲取所述應(yīng)用程序的標(biāo)識(shí)和所述應(yīng)用程序當(dāng)前執(zhí)行的操作的名稱;

所述客戶機(jī)端將所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱和所述自定義按鍵映射信息對(duì)應(yīng)存儲(chǔ)為所述應(yīng)用程序?qū)?yīng)的按鍵控制信息。

結(jié)合第一方面,本發(fā)明實(shí)施提供了上述第一方面的第二種可能的實(shí)現(xiàn)方式,其中,所述方法還包括:

所述主機(jī)端基于開源虛擬機(jī)仿真外設(shè)部件互連標(biāo)準(zhǔn)pci設(shè)備;

所述客戶機(jī)端通過pci驅(qū)動(dòng)器和所述主機(jī)端仿真的pci設(shè)備與所述主機(jī)端進(jìn)行數(shù)據(jù)通信。

結(jié)合第一方面的第二種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第一方面的第三種可能的實(shí)現(xiàn)方式,其中,所述方法還包括:

所述主機(jī)端通過所述仿真的pci設(shè)備獲取所述鍵值和所述觸控信息;

所述客戶機(jī)端通過linux水平觸發(fā)所述pci驅(qū)動(dòng)器從所述仿真的pci設(shè)備中獲取并解析所述鍵值和所述觸控信息。

結(jié)合第一方面,本發(fā)明實(shí)施提供了上述第一方面的第四種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端生成所述應(yīng)用程序?qū)?yīng)的按鍵控制信息之后,還包括:

所述客戶機(jī)端將所述應(yīng)用程序?qū)?yīng)的按鍵控制信息固化存儲(chǔ)在按鍵映射表中;

在檢測(cè)到用戶觸發(fā)的某按鍵控制信息對(duì)應(yīng)的更新指令時(shí),所述客戶機(jī)端從所述按鍵映射表中獲取所述更新指令對(duì)應(yīng)的按鍵控制信息,根據(jù)所述更新指令更新所述對(duì)應(yīng)的按鍵控制信息。

結(jié)合第一方面,本發(fā)明實(shí)施提供了上述第一方面的第五種可能的實(shí)現(xiàn)方式,其中,所述方法還包括:

當(dāng)所述主機(jī)端檢測(cè)到輸入設(shè)備中某按鍵被觸發(fā)時(shí),所述主機(jī)端傳輸所述按鍵的鍵值給所述客戶機(jī)端;

所述客戶機(jī)端獲取當(dāng)前運(yùn)行的應(yīng)用程序的標(biāo)識(shí)及當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱;

所述客戶機(jī)端根據(jù)獲取的所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱及主機(jī)端傳輸?shù)乃鲦I值,生成主機(jī)端傳輸?shù)乃鲦I值對(duì)應(yīng)的輸入事件。

結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第一方面的第六種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端根據(jù)獲取的所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱及主機(jī)端傳輸?shù)乃鲦I值,生成主機(jī)端傳輸?shù)乃鲦I值對(duì)應(yīng)的輸入事件,包括:

所述客戶機(jī)端根據(jù)獲取的所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱及主機(jī)端傳輸?shù)乃鲦I值,從按鍵映射表中獲取對(duì)應(yīng)的按鍵控制信息;

所述客戶機(jī)端根據(jù)獲取的所述按鍵控制信息包括的自定義按鍵映射信息,生成主機(jī)端傳輸?shù)乃鲦I值對(duì)應(yīng)的輸入事件。

結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第一方面的第七種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端根據(jù)獲取的所述按鍵控制信息包括的自定義按鍵映射信息,生成主機(jī)端傳輸?shù)乃鲦I值對(duì)應(yīng)的輸入事件,包括:

所述客戶機(jī)端從獲取的所述按鍵控制信息包括的自定義按鍵映射信息中,獲取被觸發(fā)的所述按鍵所映射的觸控信息;

所述客戶機(jī)端按照預(yù)設(shè)編號(hào)規(guī)則為所述觸控信息分配編號(hào);

所述客戶機(jī)端根據(jù)所述觸控信息和所述編號(hào),生成所述鍵值對(duì)應(yīng)的輸入事件。

結(jié)合第一方面,本發(fā)明實(shí)施提供了上述第一方面的第八種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端生成主機(jī)端傳輸?shù)乃鲦I值對(duì)應(yīng)的輸入事件之后,還包括:

所述客戶機(jī)端將所述輸入事件注入linux輸入模塊驅(qū)動(dòng)中,通過所述輸入事件控制所述輸入事件對(duì)應(yīng)的應(yīng)用程序執(zhí)行所述輸入事件對(duì)應(yīng)的操作。

結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第一方面的第九種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端從按鍵映射表中獲取對(duì)應(yīng)的按鍵控制信息之后,還包括:

所述客戶機(jī)端將當(dāng)前時(shí)間作為所述按鍵控制信息的使用時(shí)間,在所述按鍵映射表中記錄所述按鍵控制信息對(duì)應(yīng)的所述使用時(shí)間;

所述客戶機(jī)端每隔預(yù)設(shè)時(shí)間段查詢所述按鍵映射表中每個(gè)按鍵控制信息對(duì)應(yīng)的使用時(shí)間,將使用時(shí)間不在所述預(yù)設(shè)時(shí)間段內(nèi)的按鍵控制信息刪除。

結(jié)合第一方面的第九種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第一方面的第十種可能的實(shí)現(xiàn)方式,其中,所述方法還包括:

當(dāng)所述客戶機(jī)端檢測(cè)到所述按鍵映射表的容量超過預(yù)設(shè)容量閾值時(shí),從所述按鍵映射表中刪除使用時(shí)間與當(dāng)前時(shí)間之間的差值最大的預(yù)設(shè)數(shù)目個(gè)按鍵控制信息;

當(dāng)所述客戶機(jī)端檢測(cè)到某應(yīng)用程序?qū)?yīng)的卸載指令時(shí),根據(jù)卸載的所述應(yīng)用程序的標(biāo)識(shí),從所述按鍵映射表中刪除所述應(yīng)用程序?qū)?yīng)的按鍵控制信息。

結(jié)合第一方面的第五種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第一方面的第十一種可能的實(shí)現(xiàn)方式,其中,所述方法還包括:

當(dāng)所述主機(jī)端同時(shí)檢測(cè)到輸入設(shè)備中多個(gè)按鍵被觸發(fā)時(shí),所述客戶機(jī)端根據(jù)當(dāng)前運(yùn)行的應(yīng)程序的標(biāo)識(shí)、當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱及所述主機(jī)端傳輸?shù)逆I值,生成多指手勢(shì)操作的輸入事件序列。

第二方面,本發(fā)明實(shí)施例提供了一種生成模擬器按鍵控制信息的方法,所述方法包括:

接收主機(jī)端傳輸?shù)逆I值和觸控信息;

確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序;

根據(jù)所述應(yīng)用程序、所述鍵值和所述觸控信息,生成所述應(yīng)用程序?qū)?yīng)的按鍵控制信息。

結(jié)合第二方面,本發(fā)明實(shí)施例提供了上述第二方面的第一種可能的實(shí)現(xiàn)方式,其中,所述根據(jù)所述應(yīng)用程序、所述鍵值和所述觸控信息,生成所述應(yīng)用程序?qū)?yīng)的按鍵控制信息,包括:

根據(jù)所述鍵值和所述觸控信息,生成自定義按鍵映射信息;

獲取所述應(yīng)用程序的標(biāo)識(shí)和所述應(yīng)用程序當(dāng)前執(zhí)行的操作的名稱;

將所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱和所述自定義按鍵映射信息對(duì)應(yīng)存儲(chǔ)為所述應(yīng)用程序?qū)?yīng)的按鍵控制信息。

結(jié)合第二方面,本發(fā)明實(shí)施例提供了上述第二方面的第二種可能的實(shí)現(xiàn)方式,其中,所述方法還包括:

接收所述主機(jī)端傳輸?shù)谋挥|發(fā)按鍵的鍵值;

獲取當(dāng)前運(yùn)行的應(yīng)用程序的標(biāo)識(shí)及當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱;

根據(jù)獲取的所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱及主機(jī)端傳輸?shù)乃鲦I值,生成主機(jī)端傳輸?shù)乃鲦I值對(duì)應(yīng)的輸入事件。

第三方面,本發(fā)明實(shí)施例提供了一種生成模擬器按鍵控制信息的裝置,所述裝置包括:

接收模塊,用于接收主機(jī)端傳輸?shù)逆I值和觸控信息;

確定模塊,用于確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序;

生成模塊,用于根據(jù)所述應(yīng)用程序、所述鍵值和所述觸控信息,生成所述應(yīng)用程序?qū)?yīng)的按鍵控制信息。

結(jié)合第三方面,本發(fā)明實(shí)施例提供了上述第三方面的第一種可能的實(shí)現(xiàn)方式,其中,所述生成模塊包括:

生成單元,用于根據(jù)所述鍵值和所述觸控信息,生成自定義按鍵映射信息;

獲取單元,用于獲取所述應(yīng)用程序的標(biāo)識(shí)和所述應(yīng)用程序當(dāng)前執(zhí)行的操作的名稱;

存儲(chǔ)單元,用于將所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱和所述自定義按鍵映射信息對(duì)應(yīng)存儲(chǔ)為所述應(yīng)用程序?qū)?yīng)的按鍵控制信息。

結(jié)合第三方面,本發(fā)明實(shí)施例提供了上述第三方面的第二種可能的實(shí)現(xiàn)方式,其中,所述裝置還包括:

輸入事件生成模塊,用于接收所述主機(jī)端傳輸?shù)谋挥|發(fā)按鍵的鍵值;獲取當(dāng)前運(yùn)行的應(yīng)用程序的標(biāo)識(shí)及當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱;根據(jù)獲取的所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱及主機(jī)端傳輸?shù)乃鲦I值,生成主機(jī)端傳輸?shù)乃鲦I值對(duì)應(yīng)的輸入事件。

第四方面,本發(fā)明實(shí)施例提供了一種生成模擬器按鍵控制信息的系統(tǒng),所述系統(tǒng)包括:主機(jī)端和客戶機(jī)端;

所述主機(jī)端,用于獲取輸入設(shè)備中被觸發(fā)按鍵的鍵值及屏幕顯示區(qū)域中的觸控信息,將所述鍵值和所述觸控信息傳輸給所述客戶機(jī)端;

所述客戶機(jī)端,用于確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序,根據(jù)所述應(yīng)用程序及所述主機(jī)端傳輸?shù)逆I值和觸控信息,生成所述應(yīng)用程序?qū)?yīng)的按鍵控制信息。

結(jié)合第四方面,本發(fā)明實(shí)施提供了上述第四方面的第一種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端包括:第一生成模塊、第一獲取模塊和存儲(chǔ)模塊;

所述第一生成模塊,用于根據(jù)所述鍵值和所述觸控信息,生成自定義按鍵映射信息;

所述第一獲取模塊,用于獲取所述應(yīng)用程序的標(biāo)識(shí)和所述應(yīng)用程序當(dāng)前執(zhí)行的操作的名稱;

所述存儲(chǔ)模塊,用于將所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱和所述自定義按鍵映射信息對(duì)應(yīng)存儲(chǔ)為所述應(yīng)用程序?qū)?yīng)的按鍵控制信息。

結(jié)合第四方面,本發(fā)明實(shí)施提供了上述第四方面的第二種可能的實(shí)現(xiàn)方式,其中

所述主機(jī)端,還用于基于開源虛擬機(jī)仿真外設(shè)部件互連標(biāo)準(zhǔn)pci設(shè)備;

所述客戶機(jī)端,還用于通過pci驅(qū)動(dòng)器和所述主機(jī)端仿真的pci設(shè)備與所述主機(jī)端進(jìn)行數(shù)據(jù)通信。

結(jié)合第四方面的第二種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第四方面的第三種可能的實(shí)現(xiàn)方式,其中

所述主機(jī)端,還用于通過所述仿真的pci設(shè)備獲取所述鍵值和所述觸控信息;

所述客戶機(jī)端,還用于通過linux水平觸發(fā)所述pci驅(qū)動(dòng)器從所述仿真的pci設(shè)備中獲取并解析所述鍵值和所述觸控信息。

結(jié)合第四方面,本發(fā)明實(shí)施提供了上述第四方面的第四種可能的實(shí)現(xiàn)方式,其中,所述述客戶機(jī)端還包括:

固化存儲(chǔ)模塊,用于將所述應(yīng)用程序?qū)?yīng)的按鍵控制信息固化存儲(chǔ)在按鍵映射表中;

更新模塊,用于在檢測(cè)到用戶觸發(fā)的某按鍵控制信息對(duì)應(yīng)的更新指令時(shí),從所述按鍵映射表中獲取所述更新指令對(duì)應(yīng)的按鍵控制信息,根據(jù)所述更新指令更新所述對(duì)應(yīng)的按鍵控制信息。

結(jié)合第四方面,本發(fā)明實(shí)施提供了上述第四方面的第五種可能的實(shí)現(xiàn)方式,其中

所述主機(jī)端,還用于當(dāng)檢測(cè)到輸入設(shè)備中某按鍵被觸發(fā)時(shí),傳輸所述按鍵的鍵值給所述客戶機(jī)端;

所述客戶機(jī)端,還用于獲取當(dāng)前運(yùn)行的應(yīng)用程序的標(biāo)識(shí)及當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱;根據(jù)獲取的所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱及主機(jī)端傳輸?shù)乃鲦I值,生成主機(jī)端傳輸?shù)乃鲦I值對(duì)應(yīng)的輸入事件。

結(jié)合第四方面的第五種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第四方面的第六種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端包括:

第二獲取模塊,用于根據(jù)獲取的所述應(yīng)用程序的標(biāo)識(shí)、所述操作的名稱及主機(jī)端傳輸?shù)乃鲦I值,從按鍵映射表中獲取對(duì)應(yīng)的按鍵控制信息;

第二生成模塊,用于根據(jù)獲取的所述按鍵控制信息包括的自定義按鍵映射信息,生成主機(jī)端傳輸?shù)乃鲦I值對(duì)應(yīng)的輸入事件。

結(jié)合第四方面的第六種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第四方面的第七種可能的實(shí)現(xiàn)方式,其中,所述第二生成模塊包括:

獲取單元,用于從獲取的所述按鍵控制信息包括的自定義按鍵映射信息中,獲取被觸發(fā)的所述按鍵所映射的觸控信息;

分配單元,用于按照預(yù)設(shè)編號(hào)規(guī)則為所述觸控信息分配編號(hào);

生成單元,用于根據(jù)所述觸控信息和所述編號(hào),生成所述鍵值對(duì)應(yīng)的輸入事件。

結(jié)合第四方面,本發(fā)明實(shí)施提供了上述第四方面的第八種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端,還用于將所述輸入事件注入linux輸入模塊驅(qū)動(dòng)中,通過所述輸入事件控制所述輸入事件對(duì)應(yīng)的應(yīng)用程序執(zhí)行所述輸入事件對(duì)應(yīng)的操作。

結(jié)合第四方面的第六種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第四方面的第九種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端還包括:

記錄模塊,用于所述客戶機(jī)端將當(dāng)前時(shí)間作為所述按鍵控制信息的使用時(shí)間,在所述按鍵映射表中記錄所述按鍵控制信息對(duì)應(yīng)的所述使用時(shí)間;

刪除模塊,用于每隔預(yù)設(shè)時(shí)間段查詢所述按鍵映射表中每個(gè)按鍵控制信息對(duì)應(yīng)的使用時(shí)間,將使用時(shí)間不在所述預(yù)設(shè)時(shí)間段內(nèi)的按鍵控制信息刪除。

結(jié)合第四方面的第九種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第四方面的第十種可能的實(shí)現(xiàn)方式,其中

所述刪除模塊,還用于當(dāng)檢測(cè)到所述按鍵映射表的容量超過預(yù)設(shè)容量閾值時(shí),從所述按鍵映射表中刪除使用時(shí)間與當(dāng)前時(shí)間之間的差值最大的預(yù)設(shè)數(shù)目個(gè)按鍵控制信息;當(dāng)檢測(cè)到某應(yīng)用程序?qū)?yīng)的卸載指令時(shí),根據(jù)卸載的所述應(yīng)用程序的標(biāo)識(shí),從所述按鍵映射表中刪除所述應(yīng)用程序?qū)?yīng)的按鍵控制信息。

結(jié)合第四方面的第五種可能的實(shí)現(xiàn)方式,本發(fā)明實(shí)施提供了上述第四方面的第十一種可能的實(shí)現(xiàn)方式,其中,所述客戶機(jī)端,還用于當(dāng)所述主機(jī)端同時(shí)檢測(cè)到輸入設(shè)備中多個(gè)按鍵被觸發(fā)時(shí),根據(jù)當(dāng)前運(yùn)行的應(yīng)程序的標(biāo)識(shí)、當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱及所述主機(jī)端傳輸?shù)逆I值,生成多指手勢(shì)操作的輸入事件序列。

在本發(fā)明實(shí)施例提供的方法、裝置及系統(tǒng)中,主機(jī)端獲取輸入設(shè)備中被觸發(fā)按鍵的鍵值及屏幕顯示區(qū)域中的觸控信息,將鍵值和觸控信息傳輸給客戶機(jī)端;客戶機(jī)端確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序,根據(jù)應(yīng)用程序及主機(jī)端傳輸?shù)逆I值和觸控信息,生成應(yīng)用程序?qū)?yīng)的按鍵控制信息。本發(fā)明根據(jù)被觸發(fā)按鍵的鍵值、屏幕顯示區(qū)域中的觸控信息及當(dāng)前模擬器正在運(yùn)行的應(yīng)用程序來生成該應(yīng)用程序?qū)?yīng)的按鍵控制信息,實(shí)現(xiàn)自定義該應(yīng)用程序的按鍵控制信息,且對(duì)于客戶機(jī)端模擬出的所有應(yīng)用程序都可以按照本發(fā)明提供的方法來自定義按鍵控制信息。

為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能更明顯易懂,下文特舉較佳實(shí)施例,并配合所附附圖,作詳細(xì)說明如下。

附圖說明

為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的附圖作簡(jiǎn)單地介紹,應(yīng)當(dāng)理解,以下附圖僅示出了本發(fā)明的某些實(shí)施例,因此不應(yīng)被看作是對(duì)范圍的限定,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他相關(guān)的附圖。

圖1a示出了本發(fā)明實(shí)施例1所提供的一種生成模擬器按鍵控制信息的方法流程圖;

圖1b示出了本發(fā)明實(shí)施例1所提供的一種自定義按鍵映射信息的格式示意圖;

圖1c示出了本發(fā)明實(shí)施例1所提供的一種按鍵控制信息的格式示意圖;

圖1d示出了本發(fā)明實(shí)施例1所提供的一種輸入事件的格式示意圖;

圖2示出了本發(fā)明實(shí)施例2所提供的一種生成模擬器按鍵控制信息的方法流程圖;

圖3示出了本發(fā)明實(shí)施例3所提供的一種生成模擬器按鍵控制信息的裝置結(jié)構(gòu)示意圖;

圖4示出了本發(fā)明實(shí)施例4所提供的一種生成模擬器按鍵控制信息的系統(tǒng)結(jié)構(gòu)示意圖。

具體實(shí)施方式

下面將結(jié)合本發(fā)明實(shí)施例中附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。因此,以下對(duì)在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。

考慮到相關(guān)技術(shù)中只有從模擬器對(duì)應(yīng)的應(yīng)用服務(wù)器中下載的應(yīng)用程序才支持自定義按鍵控制信息,對(duì)于不是從應(yīng)用服務(wù)器下載的應(yīng)用程序無法自定義按鍵控制信息?;诖耍景l(fā)明實(shí)施例提供了 一種生成模擬器按鍵控制信息的方法、裝置及系統(tǒng)。下面通過實(shí)施例進(jìn)行描述。

實(shí)施例1

本發(fā)明實(shí)施例提供了一種生成模擬器按鍵控制信息的方法。模擬器安裝在一臺(tái)終端上,在該終端上模擬出與該終端指令不兼容或體系不同的虛擬終端,在本發(fā)明實(shí)施例中,將該終端稱為主機(jī)端,將該虛擬終端稱為客戶機(jī)端。例如,在pc(personalcomputer,個(gè)人計(jì)算機(jī))機(jī)上運(yùn)行android(安卓)模擬器,在該pc機(jī)上模擬出一個(gè)虛擬的android終端,則該pc機(jī)即為主機(jī)端,該虛擬的android終端即為客戶機(jī)端。

在本發(fā)明實(shí)施例中,主機(jī)端與客戶機(jī)端相互配合,通過本發(fā)明實(shí)施例提供的方法實(shí)現(xiàn)自定義模擬器的按鍵控制信息。參見圖1a,該方法具體包括以下步驟:

步驟101:主機(jī)端獲取輸入設(shè)備中被觸發(fā)按鍵的鍵值及屏幕顯示區(qū)域中的觸控信息,將該鍵值和觸控信息傳輸給客戶機(jī)端。

主機(jī)端的輸入設(shè)備可以為鍵盤或鼠標(biāo)等。當(dāng)用戶自定義模擬器的按鍵控制信息時(shí),用戶可以按下主機(jī)端的輸入設(shè)備的按鍵來觸發(fā)該按鍵,同時(shí)用手指點(diǎn)擊主機(jī)端的屏幕顯示區(qū)域的某一位置來生成觸控信息。

在本發(fā)明實(shí)施例中,主機(jī)端對(duì)輸入設(shè)備及屏幕顯示區(qū)域進(jìn)行實(shí)時(shí)監(jiān)測(cè),當(dāng)監(jiān)測(cè)到輸入設(shè)備中某按鍵被觸發(fā)時(shí),主機(jī)端獲取該被觸發(fā)按鍵的鍵值。同時(shí),當(dāng)主機(jī)端監(jiān)測(cè)到屏幕顯示區(qū)域中某位置被觸控時(shí),主機(jī)端獲取該位置的絕對(duì)坐標(biāo)及用戶觸控該位置的手勢(shì)狀態(tài),該絕對(duì)坐標(biāo)為該位置的像素點(diǎn)的坐標(biāo),該手勢(shì)狀態(tài)包括按下、抬起或移動(dòng)。在用戶自定義模擬器的按鍵控制信息時(shí),用戶觸發(fā)輸入設(shè) 備的按鍵的手勢(shì)狀態(tài)需與觸控屏幕顯示區(qū)域中該位置的手勢(shì)狀態(tài)一致。例如,假設(shè)手勢(shì)狀態(tài)為移動(dòng),則用戶按下輸入設(shè)備的某按鍵的同時(shí)觸控屏幕顯示區(qū)域中一位置,且手指在屏幕顯示區(qū)域中按下并移動(dòng)的過程中用戶需一直按下輸入設(shè)備中的該按鍵。

主機(jī)端獲取到用戶觸控屏幕顯示區(qū)域中的該位置的絕對(duì)坐標(biāo)及手勢(shì)狀態(tài)后,將該絕對(duì)坐標(biāo)和手勢(shì)狀態(tài)組成用戶觸控屏幕顯示區(qū)域的觸控信息,將上述獲取的鍵值和觸控信息傳輸給客戶機(jī)端。

由于目前主機(jī)端與客戶機(jī)端進(jìn)行數(shù)據(jù)傳輸時(shí),需要通過socket(套接字)或http(hypertexttransferprotocol,超文本傳輸協(xié)議)等第三方協(xié)議進(jìn)行載體,在主機(jī)端與客戶機(jī)端之間進(jìn)行頻繁切換,導(dǎo)致響應(yīng)速度低且性能損耗很高。為了避免該問題,本發(fā)明實(shí)施例中,通過在主機(jī)端仿真pci(peripheralcomponentinterconnect,外設(shè)組件互連標(biāo)準(zhǔn))設(shè)備以及在客戶機(jī)端設(shè)置pci驅(qū)動(dòng)器來實(shí)現(xiàn)兩者之間的數(shù)據(jù)通信,具體包括:

主機(jī)端基于開源虛擬機(jī)仿真pci設(shè)備;客戶機(jī)端通過pci驅(qū)動(dòng)器和主機(jī)端仿真的pci設(shè)備與主機(jī)端進(jìn)行數(shù)據(jù)通信。上述開源虛擬機(jī)可以為virtualbox(開源虛擬機(jī)軟件)等。主機(jī)端通過仿真的pci設(shè)備與客戶機(jī)端的pci驅(qū)動(dòng)器按照自定義數(shù)據(jù)協(xié)議進(jìn)行交互。

基于上述數(shù)據(jù)通信方式,主機(jī)端與客戶機(jī)端之間數(shù)據(jù)傳輸?shù)倪^程,具體包括:

主機(jī)端通過仿真的pci設(shè)備獲取鍵值和觸控信息;客戶機(jī)端通過linux水平觸發(fā)pci驅(qū)動(dòng)器從仿真的pci設(shè)備中獲取并解析鍵值和觸控信息。

主機(jī)端通過上述仿真的pci設(shè)備提取用戶觸發(fā)的鍵值和觸控信息,客戶機(jī)端通過linux水平觸發(fā)促使pci驅(qū)動(dòng)器從仿真的pci設(shè)備的數(shù)據(jù)緩沖區(qū)中提取上述鍵值和觸控信息,并進(jìn)行解析。

上述主機(jī)端與客戶機(jī)端之間的數(shù)據(jù)交互方式極大提高了數(shù)據(jù)傳輸效率,無須通過socket或http等第三方協(xié)議進(jìn)行載體,提高了主機(jī)端與客戶機(jī)端之間數(shù)據(jù)交互的效率,保證了數(shù)據(jù)交互的及時(shí)性,并降低了性能損耗。

通過上述步驟101的操作,主機(jī)端將用戶觸發(fā)的鍵值及觸控信息傳輸給客戶機(jī)端后,客戶機(jī)端通過如下步驟102的操作來生成模擬器模擬出的應(yīng)用程序?qū)?yīng)的按鍵控制信息。

步驟102:客戶機(jī)端確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序,根據(jù)應(yīng)用程序及主機(jī)端傳輸?shù)逆I值和觸控信息,生成應(yīng)用程序?qū)?yīng)的按鍵控制信息。

客戶機(jī)端接收到主機(jī)端傳輸?shù)逆I值及觸控信息時(shí),客戶機(jī)端確定此時(shí)模擬器窗口中當(dāng)前正在運(yùn)行的應(yīng)用程序,獲取該應(yīng)用程序的標(biāo)識(shí)和該應(yīng)用程序當(dāng)前執(zhí)行的操作的名稱。客戶機(jī)端還根據(jù)主機(jī)端傳輸?shù)逆I值和觸控信息,生成自定義按鍵映射信息,將該應(yīng)用程序的標(biāo)識(shí)、操作的名稱和生成的自定義按鍵映射信息對(duì)應(yīng)存儲(chǔ)為應(yīng)用程序?qū)?yīng)的按鍵控制信息。

上述客戶機(jī)端可以將主機(jī)端傳輸?shù)逆I值和觸控信息直接組成自定義按鍵映射信息,如圖1b所示的自定義按鍵映射信息中,觸控信息包括絕對(duì)坐標(biāo)和手勢(shì)狀態(tài),絕對(duì)坐標(biāo)包括x軸坐標(biāo)和y軸坐標(biāo)。上述客戶機(jī)端存儲(chǔ)的該應(yīng)用程序?qū)?yīng)的按鍵控制信息的數(shù)據(jù)格式如圖1c所示,其中鍵值、x軸坐標(biāo)、y軸坐標(biāo)和手勢(shì)狀態(tài)組成如圖1b所示的自定義按鍵映射信息。

在本發(fā)明實(shí)施例中,對(duì)于客戶機(jī)端中模擬器模擬出的每個(gè)應(yīng)用程序,都可以通過上述步驟101和102的操作分別來自定義每個(gè)應(yīng)用程序?qū)?yīng)的按鍵控制信息。

上述客戶機(jī)端生成應(yīng)用程序?qū)?yīng)的按鍵控制信息之后,客戶機(jī)端還將應(yīng)用程序?qū)?yīng)的按鍵控制信息固化存儲(chǔ)在按鍵映射表中,以便于后續(xù)用戶通過自定義的按鍵控制信息來控制應(yīng)用程序的操作。

有時(shí)用戶自定義上述應(yīng)用程序的對(duì)應(yīng)的按鍵控制信息后,還可能想要修改自定義的按鍵控制信息,此時(shí)用戶可以通過點(diǎn)擊按鍵來觸發(fā)該按鍵對(duì)應(yīng)的按鍵控制信息的更新指令,該更新指令包括該按鍵的鍵值及用戶重新在屏幕顯示區(qū)域中進(jìn)行觸控的觸控信息。

在檢測(cè)到用戶觸發(fā)的某按鍵控制信息對(duì)應(yīng)的更新指令時(shí),客戶機(jī)端從按鍵映射表中獲取更新指令對(duì)應(yīng)的按鍵控制信息,根據(jù)該更新指令更新對(duì)應(yīng)的按鍵控制信息。

在本發(fā)明實(shí)施例中,主機(jī)端也可以訪問上述按鍵映射表。當(dāng)主機(jī)端檢測(cè)到用戶觸發(fā)某按鍵且同時(shí)在屏幕顯示區(qū)域進(jìn)行觸控時(shí),主機(jī)端獲取被觸發(fā)的該按鍵的鍵值及屏幕顯示區(qū)域中的觸控信息,主機(jī)端還從客戶機(jī)端獲取當(dāng)前正在運(yùn)行的應(yīng)用程序的標(biāo)識(shí)及操作的名稱。主機(jī)端根據(jù)該應(yīng)用程序的標(biāo)識(shí),從按鍵映射表中獲取該應(yīng)用程序?qū)?yīng)的按鍵控制信息,然后根據(jù)上述操作的名稱、鍵值及觸控信息,查詢上述獲取的應(yīng)用程序?qū)?yīng)的按鍵控制信息中是否存在同時(shí)包含上述操作的名稱、鍵值及觸控信息的按鍵控制信息,若存在,則忽略用戶的此次操作。若查詢中該應(yīng)用程序?qū)?yīng)的按鍵控制信息中存在僅包含上述操作的名稱、鍵值及觸控信息中的一種或兩種的,則確定用戶需要更新設(shè)置包含上述操作的名稱、鍵值及觸控信息中 的一種或兩種的按鍵控制信息,此時(shí)主機(jī)端發(fā)送更新指令給客戶端,該更新指令包括該鍵值和觸控信息。

客戶機(jī)端接收到主機(jī)端傳輸?shù)母轮噶顣r(shí),根據(jù)當(dāng)前正在運(yùn)行的應(yīng)用程序的標(biāo)識(shí)、該應(yīng)用程序執(zhí)行的操作的名稱、該更新指令包括的鍵值和觸控信息,從按鍵映射表中確定出包含該應(yīng)用程序的標(biāo)識(shí)以及上述操作的名稱、鍵值和觸控信息中的一種或兩種的按鍵控制信息,確定的按鍵控制信息即為該更新指令對(duì)應(yīng)的按鍵控制信息,從按鍵映射表中刪除上述確定按鍵控制信息,并將該應(yīng)用程序的標(biāo)識(shí)、上述操作的名稱以及更新指令包括的鍵值和觸控信息對(duì)應(yīng)存儲(chǔ)為新的按鍵控制信息,將該新的按鍵控制信息固化存儲(chǔ)在該按鍵映射表中,從而實(shí)現(xiàn)用戶的更新設(shè)置按鍵控制信息的操作。

在本發(fā)明實(shí)施例中,自定義生成應(yīng)用程序的按鍵控制信息后,用戶可以通過點(diǎn)擊輸入設(shè)備中的按鍵,以通過該按鍵對(duì)應(yīng)的按鍵控制信息來控制應(yīng)用程序執(zhí)行對(duì)應(yīng)的操作。

當(dāng)主機(jī)端檢測(cè)到輸入設(shè)備中某按鍵被觸發(fā)時(shí),主機(jī)端傳輸按鍵的鍵值給客戶機(jī)端;客戶機(jī)端獲取當(dāng)前運(yùn)行的應(yīng)用程序的標(biāo)識(shí)及當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱;客戶機(jī)端根據(jù)獲取的應(yīng)用程序的標(biāo)識(shí)、操作的名稱及主機(jī)端傳輸?shù)逆I值,生成主機(jī)端傳輸?shù)脑撴I值對(duì)應(yīng)的輸入事件。

當(dāng)模擬器為android模擬器時(shí),主機(jī)端傳輸上述按鍵的鍵值給客戶機(jī)端時(shí),主機(jī)端將上述按鍵的鍵值上傳至客戶機(jī)端的android守護(hù)程序,由android守護(hù)程序來生成該鍵值對(duì)應(yīng)的輸入事件。

上述客戶機(jī)端生成主機(jī)端傳輸?shù)脑撴I值對(duì)應(yīng)的輸入事件的過程,具體包括:

客戶機(jī)端根據(jù)獲取的應(yīng)用程序的標(biāo)識(shí)、操作的名稱及主機(jī)端傳輸?shù)逆I值,從按鍵映射表中獲取對(duì)應(yīng)的按鍵控制信息;客戶機(jī)端根據(jù)獲取的按鍵控制信息包括的自定義按鍵映射信息,生成主機(jī)端傳輸?shù)逆I值對(duì)應(yīng)的輸入事件。

上述客戶機(jī)端生成主機(jī)端傳輸?shù)逆I值對(duì)應(yīng)的輸入事件的過程,具體包括:

客戶機(jī)端從獲取的按鍵控制信息包括的自定義按鍵映射信息中,獲取被觸發(fā)的按鍵所映射的觸控信息;客戶機(jī)端按照預(yù)設(shè)編號(hào)規(guī)則為觸控信息分配編號(hào);客戶機(jī)端根據(jù)觸控信息和編號(hào),生成鍵值對(duì)應(yīng)的輸入事件。

上述預(yù)設(shè)編號(hào)規(guī)則可以為按照用戶觸發(fā)按鍵的先后順序進(jìn)行順序編號(hào),分配的編號(hào)可以為0、1、2、…、n等。在預(yù)設(shè)編號(hào)規(guī)則中可以設(shè)置若連續(xù)編號(hào)中有的編號(hào)已釋放,則可以分配上述已釋放的編號(hào)為后續(xù)新增的按鍵對(duì)應(yīng)的輸入事件的編號(hào),若無編號(hào)釋放,則按照已分配的編號(hào)往后順序分配新的編號(hào)。上述客戶機(jī)端生成的輸入事件的格式如圖1d所示,觸控信息包括手勢(shì)狀態(tài)、x軸坐標(biāo)和y軸坐標(biāo)。

客戶機(jī)端生成主機(jī)端傳輸?shù)逆I值對(duì)應(yīng)的輸入事件之后,還將該輸入事件注入linux輸入模塊驅(qū)動(dòng)中,然后通過輸入子系統(tǒng)上傳至該輸入事件對(duì)應(yīng)的應(yīng)用程序,通過該輸入事件控制該輸入事件對(duì)應(yīng)的應(yīng)用程序執(zhí)行該輸入事件對(duì)應(yīng)的操作。

在本發(fā)明實(shí)施例中,用戶通過點(diǎn)擊輸入設(shè)備中的按鍵,以通過該按鍵對(duì)應(yīng)的按鍵控制信息來控制應(yīng)用程序執(zhí)行對(duì)應(yīng)的操作后,客戶機(jī)端還將當(dāng)前時(shí)間作為該按鍵控制信息的使用時(shí)間,在按鍵映射表中記錄該按鍵控制信息對(duì)應(yīng)的使用時(shí)間。

在本發(fā)明實(shí)施例中,客戶機(jī)端負(fù)責(zé)對(duì)按鍵映射表進(jìn)行維護(hù)??蛻魴C(jī)端每隔預(yù)設(shè)時(shí)間段查詢按鍵映射表中每個(gè)按鍵控制信息對(duì)應(yīng)的使用時(shí)間,將使用時(shí)間不在預(yù)設(shè)時(shí)間段內(nèi)的按鍵控制信息刪除。在本發(fā)明實(shí)施例中,客戶機(jī)端可以通過lru(leastrecentlyused,近期最少使用)算法來維護(hù)按鍵映射表。

另外,客戶機(jī)端還根據(jù)按鍵映射表的容量以及客戶機(jī)端的應(yīng)用程序的卸載情況來維護(hù)按鍵映射表,具體包括:

當(dāng)客戶機(jī)端檢測(cè)到按鍵映射表的容量超過預(yù)設(shè)容量閾值時(shí),從按鍵映射表中刪除使用時(shí)間與當(dāng)前時(shí)間之間的差值最大的預(yù)設(shè)數(shù)目個(gè)按鍵控制信息;

當(dāng)客戶機(jī)端檢測(cè)到某應(yīng)用程序?qū)?yīng)的卸載指令時(shí),根據(jù)卸載的應(yīng)用程序的標(biāo)識(shí),從按鍵映射表中刪除應(yīng)用程序?qū)?yīng)的按鍵控制信息。

在本發(fā)明實(shí)施例中,當(dāng)客戶機(jī)端檢測(cè)到按鍵映射表的同類超過預(yù)設(shè)容量閾值時(shí),還可以先計(jì)算出按鍵映射表中每個(gè)按鍵控制信息的使用時(shí)間與當(dāng)前時(shí)間之間的差值,然后從差值最大的按鍵控制信息開始刪除,直至按鍵映射表中剩余的按鍵控制信息的總?cè)萘啃∮谠擃A(yù)設(shè)容量閾值為止。

在本發(fā)明實(shí)施例中,還可以通過自定義按鍵控制信息的方法來實(shí)現(xiàn)仿真多個(gè)觸控點(diǎn)來實(shí)現(xiàn)用戶的多手指操控,具體包括:

當(dāng)主機(jī)端同時(shí)檢測(cè)到輸入設(shè)備中多個(gè)按鍵被觸發(fā)時(shí),客戶機(jī)端根據(jù)當(dāng)前運(yùn)行的應(yīng)程序的標(biāo)識(shí)、當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱及主機(jī)端傳輸?shù)逆I值,生成多指手勢(shì)操作的輸入事件序列。

對(duì)于上述同時(shí)檢測(cè)到的每個(gè)被觸發(fā)的按鍵,生成每個(gè)按鍵對(duì)應(yīng)的輸入事件的方式與上文中所述生成輸入事件的方式相同。生成每 個(gè)按鍵對(duì)應(yīng)的輸入事件后,將生成的多個(gè)輸入事件組成用戶的多指手勢(shì)操作的輸入事件序列。本發(fā)明實(shí)施例中,通過該輸入事件序列來控制當(dāng)前運(yùn)行的應(yīng)用程序連續(xù)執(zhí)行一系列的操作。

在本發(fā)明實(shí)施例中,對(duì)于模擬器在客戶機(jī)端模擬出的任一應(yīng)用程序,都可以通過觸發(fā)按鍵的同時(shí)在屏幕顯示區(qū)域中進(jìn)行觸控來生成應(yīng)用程序?qū)?yīng)的按鍵控制信息,實(shí)現(xiàn)了自定義生成任一應(yīng)用程序的按鍵控制信息。且主機(jī)端通過仿真的pci設(shè)備與客戶機(jī)端設(shè)置的pci驅(qū)動(dòng)器實(shí)現(xiàn)主機(jī)端與客戶機(jī)端之間的數(shù)據(jù)交互,極大的減少了對(duì)主機(jī)端程序的依賴,提高了交互效率及響應(yīng)速度,降低了系統(tǒng)性能損耗,保證了數(shù)據(jù)交互的實(shí)時(shí)性。另外,本發(fā)明實(shí)時(shí)例中實(shí)現(xiàn)了仿真多指觸摸操作,為用戶操作模擬器模擬出的客戶機(jī)端的應(yīng)用程序提供了更加便捷的操作方式。

在本發(fā)明實(shí)施例中,主機(jī)端獲取輸入設(shè)備中被觸發(fā)按鍵的鍵值及屏幕顯示區(qū)域中的觸控信息,將鍵值和觸控信息傳輸給客戶機(jī)端;客戶機(jī)端確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序,根據(jù)應(yīng)用程序及主機(jī)端傳輸?shù)逆I值和觸控信息,生成應(yīng)用程序?qū)?yīng)的按鍵控制信息。本發(fā)明根據(jù)被觸發(fā)按鍵的鍵值、屏幕顯示區(qū)域中的觸控信息及當(dāng)前模擬器正在運(yùn)行的應(yīng)用程序來生成該應(yīng)用程序?qū)?yīng)的按鍵控制信息,實(shí)現(xiàn)自定義該應(yīng)用程序的按鍵控制信息,且對(duì)于客戶機(jī)端模擬出的所有應(yīng)用程序都可以按照本發(fā)明提供的方法來自定義按鍵控制信息。

實(shí)施例2

本發(fā)明實(shí)施例提供了一種生成模擬器按鍵控制信息的方法。模擬器安裝在一臺(tái)終端上,在該終端上模擬出與該終端指令不兼容或體系不同的虛擬終端,將該終端稱為主機(jī)端,將該虛擬終端稱為客 戶機(jī)端。本發(fā)明實(shí)施例的執(zhí)行主體為客戶機(jī)端,客戶機(jī)端在主機(jī)端的配合下生成模擬器按鍵控制信息的過程與實(shí)施例1的過程相同。

參見圖2,該方法具體包括:

步驟201:接收主機(jī)端傳輸?shù)逆I值和觸控信息。

主機(jī)端對(duì)輸入設(shè)備及屏幕顯示區(qū)域進(jìn)行實(shí)時(shí)監(jiān)測(cè),當(dāng)監(jiān)測(cè)到輸入設(shè)備中某按鍵被觸發(fā)時(shí),主機(jī)端獲取該被觸發(fā)按鍵的鍵值。同時(shí),當(dāng)主機(jī)端監(jiān)測(cè)到屏幕顯示區(qū)域中某位置被觸控時(shí),主機(jī)端獲取該位置的絕對(duì)坐標(biāo)及用戶觸控該位置的手勢(shì)狀態(tài),該絕對(duì)坐標(biāo)為該位置的像素點(diǎn)的坐標(biāo),該手勢(shì)狀態(tài)包括按下、抬起或移動(dòng)。在用戶自定義模擬器的按鍵控制信息時(shí),用戶觸發(fā)輸入設(shè)備的按鍵的手勢(shì)狀態(tài)需與觸控屏幕顯示區(qū)域中該位置的手勢(shì)狀態(tài)一致。主機(jī)端獲取到用戶觸控屏幕顯示區(qū)域中的該位置的絕對(duì)坐標(biāo)及手勢(shì)狀態(tài)后,將該絕對(duì)坐標(biāo)和手勢(shì)狀態(tài)組成用戶觸控屏幕顯示區(qū)域的觸控信息,將上述獲取的鍵值和觸控信息傳輸給客戶機(jī)端。

步驟202:確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序。

客戶機(jī)端接收到主機(jī)端傳輸?shù)逆I值及觸控信息時(shí),客戶機(jī)端確定此時(shí)模擬器窗口中當(dāng)前正在運(yùn)行的應(yīng)用程序,獲取該應(yīng)用程序的標(biāo)識(shí)和該應(yīng)用程序當(dāng)前執(zhí)行的操作的名稱。

步驟203:根據(jù)確定的應(yīng)用程序、接收的鍵值和觸控信息,生成應(yīng)用程序?qū)?yīng)的按鍵控制信息。

客戶機(jī)端根據(jù)接收的鍵值和觸控信息,生成自定義按鍵映射信息;獲取應(yīng)用程序的標(biāo)識(shí)和應(yīng)用程序當(dāng)前執(zhí)行的操作的名稱;將應(yīng)用程序的標(biāo)識(shí)、操作的名稱和自定義按鍵映射信息對(duì)應(yīng)存儲(chǔ)為應(yīng)用程序?qū)?yīng)的按鍵控制信息。

在本發(fā)明實(shí)施例中,自定義生成應(yīng)用程序的按鍵控制信息后,用戶可以通過點(diǎn)擊輸入設(shè)備中的按鍵,以通過該按鍵對(duì)應(yīng)的按鍵控制信息來控制應(yīng)用程序執(zhí)行對(duì)應(yīng)的操作。

當(dāng)主機(jī)端檢測(cè)到輸入設(shè)備中某按鍵被觸發(fā)時(shí),主機(jī)端傳輸按鍵的鍵值給客戶機(jī)端??蛻魴C(jī)端接收主機(jī)端傳輸?shù)谋挥|發(fā)按鍵的鍵值;獲取當(dāng)前運(yùn)行的應(yīng)用程序的標(biāo)識(shí)及當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱;根據(jù)獲取的應(yīng)用程序的標(biāo)識(shí)、操作的名稱及主機(jī)端傳輸?shù)逆I值,生成主機(jī)端傳輸?shù)逆I值對(duì)應(yīng)的輸入事件。

對(duì)于模擬器在客戶機(jī)端模擬出的任一應(yīng)用程序,都可以通過觸發(fā)按鍵的同時(shí)在屏幕顯示區(qū)域中進(jìn)行觸控來生成應(yīng)用程序?qū)?yīng)的按鍵控制信息,實(shí)現(xiàn)了自定義生成任一應(yīng)用程序的按鍵控制信息。且主機(jī)端通過仿真的pci設(shè)備與客戶機(jī)端設(shè)置的pci驅(qū)動(dòng)器實(shí)現(xiàn)主機(jī)端與客戶機(jī)端之間的數(shù)據(jù)交互,極大的減少了對(duì)主機(jī)端程序的依賴,提高了交互效率及響應(yīng)速度,降低了系統(tǒng)性能損耗,保證了數(shù)據(jù)交互的實(shí)時(shí)性。另外,本發(fā)明實(shí)時(shí)例中實(shí)現(xiàn)了仿真多指觸摸操作,為用戶操作模擬器模擬出的客戶機(jī)端的應(yīng)用程序提供了更加便捷的操作方式。

在本發(fā)明實(shí)施例中,主機(jī)端獲取輸入設(shè)備中被觸發(fā)按鍵的鍵值及屏幕顯示區(qū)域中的觸控信息,將鍵值和觸控信息傳輸給客戶機(jī)端;客戶機(jī)端確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序,根據(jù)應(yīng)用程序及主機(jī)端傳輸?shù)逆I值和觸控信息,生成應(yīng)用程序?qū)?yīng)的按鍵控制信息。本發(fā)明根據(jù)被觸發(fā)按鍵的鍵值、屏幕顯示區(qū)域中的觸控信息及當(dāng)前模擬器正在運(yùn)行的應(yīng)用程序來生成該應(yīng)用程序?qū)?yīng)的按鍵控制信息,實(shí)現(xiàn)自定義該應(yīng)用程序的按鍵控制信息,且對(duì)于客戶機(jī)端模擬 出的所有應(yīng)用程序都可以按照本發(fā)明提供的方法來自定義按鍵控制信息。

實(shí)施例3

參見圖3,本發(fā)明實(shí)施例提供了一種生成模擬器按鍵控制信息的裝置,該裝置用于執(zhí)行上述實(shí)施例2所提供的生成模擬器按鍵控制信息的方法。該裝置具體包括:

接收模塊301,用于接收主機(jī)端傳輸?shù)逆I值和觸控信息;

確定模塊302,用于確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序;

生成模塊303,用于根據(jù)應(yīng)用程序、鍵值和觸控信息,生成應(yīng)用程序?qū)?yīng)的按鍵控制信息。

上述生成模塊303通過如下生成單元、獲取單元和存儲(chǔ)單元來生成應(yīng)用程序?qū)?yīng)的按鍵控制信息。

生成單元,用于根據(jù)鍵值和觸控信息,生成自定義按鍵映射信息;獲取單元,用于獲取應(yīng)用程序的標(biāo)識(shí)和應(yīng)用程序當(dāng)前執(zhí)行的操作的名稱;存儲(chǔ)單元,用于將應(yīng)用程序的標(biāo)識(shí)、操作的名稱和自定義按鍵映射信息對(duì)應(yīng)存儲(chǔ)為應(yīng)用程序?qū)?yīng)的按鍵控制信息。

在本發(fā)明實(shí)施例中,該裝置還通過如下輸入事件生成模塊來生成用戶觸發(fā)的按鍵對(duì)應(yīng)的輸入事件。

輸入事件生成模塊,用于接收主機(jī)端傳輸?shù)谋挥|發(fā)按鍵的鍵值;獲取當(dāng)前運(yùn)行的應(yīng)用程序的標(biāo)識(shí)及當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱;根據(jù)獲取的應(yīng)用程序的標(biāo)識(shí)、操作的名稱及主機(jī)端傳輸?shù)逆I值,生成主機(jī)端傳輸?shù)逆I值對(duì)應(yīng)的輸入事件。

在本發(fā)明實(shí)施例中,接收主機(jī)端傳輸?shù)逆I值和觸控信息;確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序,根據(jù)應(yīng)用程序及主機(jī)端傳輸?shù)逆I值和觸控信息,生成應(yīng)用程序?qū)?yīng)的按鍵控制信息。本發(fā)明根據(jù) 被觸發(fā)按鍵的鍵值、屏幕顯示區(qū)域中的觸控信息及當(dāng)前模擬器正在運(yùn)行的應(yīng)用程序來生成該應(yīng)用程序?qū)?yīng)的按鍵控制信息,實(shí)現(xiàn)自定義該應(yīng)用程序的按鍵控制信息,且對(duì)于客戶機(jī)端模擬出的所有應(yīng)用程序都可以按照本發(fā)明提供的方法來自定義按鍵控制信息。

實(shí)施例4

參見圖4,本發(fā)明實(shí)施例提供了一種生成模擬器按鍵控制信息的系統(tǒng),該系統(tǒng)用于執(zhí)行上述實(shí)施例1提供的生成模擬器按鍵控制信息的方法。該系統(tǒng)具體包括:主機(jī)端401和客戶機(jī)端402;

主機(jī)端401,用于獲取輸入設(shè)備中被觸發(fā)按鍵的鍵值及屏幕顯示區(qū)域中的觸控信息,將鍵值和觸控信息傳輸給客戶機(jī)端402;

客戶機(jī)端402,用于確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序,根據(jù)應(yīng)用程序及主機(jī)端401傳輸?shù)逆I值和觸控信息,生成應(yīng)用程序?qū)?yīng)的按鍵控制信息。

上述客戶機(jī)端402包括:第一生成模塊、第一獲取模塊和存儲(chǔ)模塊;

第一生成模塊,用于根據(jù)鍵值和觸控信息,生成自定義按鍵映射信息;第一獲取模塊,用于獲取應(yīng)用程序的標(biāo)識(shí)和應(yīng)用程序當(dāng)前執(zhí)行的操作的名稱;存儲(chǔ)模塊,用于將應(yīng)用程序的標(biāo)識(shí)、操作的名稱和自定義按鍵映射信息對(duì)應(yīng)存儲(chǔ)為應(yīng)用程序?qū)?yīng)的按鍵控制信息。

由于目前主機(jī)端401與客戶機(jī)端402進(jìn)行數(shù)據(jù)傳輸時(shí),需要通過socket或http等第三方協(xié)議進(jìn)行載體,在主機(jī)端401與客戶機(jī)端402之間進(jìn)行頻繁切換,導(dǎo)致響應(yīng)速度低且性能損耗很高。為了避免該問題,本發(fā)明實(shí)施例中,通過在主機(jī)端401仿真pci設(shè)備以及在客戶機(jī)端402設(shè)置pci驅(qū)動(dòng)器來實(shí)現(xiàn)兩者之間的數(shù)據(jù)通信。

主機(jī)端401,還用于基于開源虛擬機(jī)仿真外設(shè)部件互連標(biāo)準(zhǔn)pci設(shè)備;客戶機(jī)端402,還用于通過pci驅(qū)動(dòng)器和主機(jī)端401仿真的pci設(shè)備與主機(jī)端401進(jìn)行數(shù)據(jù)通信。

上述主機(jī)端401,還用于通過仿真的pci設(shè)備獲取鍵值和觸控信息;客戶機(jī)端402,還用于通過linux水平觸發(fā)pci驅(qū)動(dòng)器從仿真的pci設(shè)備中獲取并解析鍵值和觸控信息。

上述客戶機(jī)端402生成應(yīng)用程序?qū)?yīng)的按鍵控制信息之后,客戶機(jī)端402還通過固化存儲(chǔ)模塊來將生成的按鍵控制信息存儲(chǔ)在按鍵映射表中,并通過更新模塊對(duì)按鍵映射表進(jìn)行更新維護(hù)。

固化存儲(chǔ)模塊,用于將應(yīng)用程序?qū)?yīng)的按鍵控制信息固化存儲(chǔ)在按鍵映射表中;更新模塊,用于在檢測(cè)到用戶觸發(fā)的某按鍵控制信息對(duì)應(yīng)的更新指令時(shí),從按鍵映射表中獲取更新指令對(duì)應(yīng)的按鍵控制信息,根據(jù)更新指令更新對(duì)應(yīng)的按鍵控制信息。

上述主機(jī)端401,還用于當(dāng)檢測(cè)到輸入設(shè)備中某按鍵被觸發(fā)時(shí),傳輸按鍵的鍵值給客戶機(jī)端402;客戶機(jī)端402,還用于獲取當(dāng)前運(yùn)行的應(yīng)用程序的標(biāo)識(shí)及當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱;根據(jù)獲取的應(yīng)用程序的標(biāo)識(shí)、操作的名稱及主機(jī)端401傳輸?shù)逆I值,生成主機(jī)端401傳輸?shù)逆I值對(duì)應(yīng)的輸入事件。

上述客戶機(jī)端402通過第二獲取模塊和第二生成模塊來生成主機(jī)端401傳輸?shù)逆I值對(duì)應(yīng)的輸入事件。

第二獲取模塊,用于根據(jù)獲取的應(yīng)用程序的標(biāo)識(shí)、操作的名稱及主機(jī)端401傳輸?shù)逆I值,從按鍵映射表中獲取對(duì)應(yīng)的按鍵控制信息;第二生成模塊,用于根據(jù)獲取的按鍵控制信息包括的自定義按鍵映射信息,生成主機(jī)端401傳輸?shù)逆I值對(duì)應(yīng)的輸入事件。

上述第二生成模塊包括:

獲取單元,用于從獲取的按鍵控制信息包括的自定義按鍵映射信息中,獲取被觸發(fā)的按鍵所映射的觸控信息;分配單元,用于按照預(yù)設(shè)編號(hào)規(guī)則為觸控信息分配編號(hào);生成單元,用于根據(jù)觸控信息和編號(hào),生成鍵值對(duì)應(yīng)的輸入事件。

在本發(fā)明實(shí)施例中,客戶機(jī)端402,還用于將輸入事件注入linux輸入模塊驅(qū)動(dòng)中,通過輸入事件控制輸入事件對(duì)應(yīng)的應(yīng)用程序執(zhí)行輸入事件對(duì)應(yīng)的操作。

客戶機(jī)端402還通過記錄模塊來記錄按鍵控制信息的使用時(shí)間,并通過刪除模塊來維護(hù)按鍵映射表。

記錄模塊,用于客戶機(jī)端402將當(dāng)前時(shí)間作為按鍵控制信息的使用時(shí)間,在按鍵映射表中記錄按鍵控制信息對(duì)應(yīng)的使用時(shí)間;刪除模塊,用于每隔預(yù)設(shè)時(shí)間段查詢按鍵映射表中每個(gè)按鍵控制信息對(duì)應(yīng)的使用時(shí)間,將使用時(shí)間不在預(yù)設(shè)時(shí)間段內(nèi)的按鍵控制信息刪除;

上述刪除模塊,還用于當(dāng)檢測(cè)到按鍵映射表的容量超過預(yù)設(shè)容量閾值時(shí),從按鍵映射表中刪除使用時(shí)間與當(dāng)前時(shí)間之間的差值最大的預(yù)設(shè)數(shù)目個(gè)按鍵控制信息;當(dāng)檢測(cè)到某應(yīng)用程序?qū)?yīng)的卸載指令時(shí),根據(jù)卸載的應(yīng)用程序的標(biāo)識(shí),從按鍵映射表中刪除應(yīng)用程序?qū)?yīng)的按鍵控制信息。

在本發(fā)明實(shí)施例中,客戶機(jī)端402,還用于當(dāng)主機(jī)端401同時(shí)檢測(cè)到輸入設(shè)備中多個(gè)按鍵被觸發(fā)時(shí),根據(jù)當(dāng)前運(yùn)行的應(yīng)程序的標(biāo)識(shí)、當(dāng)前運(yùn)行的應(yīng)用程序執(zhí)行的操作的名稱及主機(jī)端401傳輸?shù)逆I值,生成多指手勢(shì)操作的輸入事件序列。

對(duì)于模擬器在客戶機(jī)端模擬出的任一應(yīng)用程序,都可以通過觸發(fā)按鍵的同時(shí)在屏幕顯示區(qū)域中進(jìn)行觸控來生成應(yīng)用程序?qū)?yīng)的按 鍵控制信息,實(shí)現(xiàn)了自定義生成任一應(yīng)用程序的按鍵控制信息。且主機(jī)端通過仿真的pci設(shè)備與客戶機(jī)端設(shè)置的pci驅(qū)動(dòng)器實(shí)現(xiàn)主機(jī)端與客戶機(jī)端之間的數(shù)據(jù)交互,極大的減少了對(duì)主機(jī)端程序的依賴,提高了交互效率及響應(yīng)速度,降低了系統(tǒng)性能損耗,保證了數(shù)據(jù)交互的實(shí)時(shí)性。另外,本發(fā)明實(shí)時(shí)例中實(shí)現(xiàn)了仿真多指觸摸操作,為用戶操作模擬器模擬出的客戶機(jī)端的應(yīng)用程序提供了更加便捷的操作方式。

在本發(fā)明實(shí)施例中,主機(jī)端獲取輸入設(shè)備中被觸發(fā)按鍵的鍵值及屏幕顯示區(qū)域中的觸控信息,將鍵值和觸控信息傳輸給客戶機(jī)端;客戶機(jī)端確定模擬器窗口中當(dāng)前運(yùn)行的應(yīng)用程序,根據(jù)應(yīng)用程序及主機(jī)端傳輸?shù)逆I值和觸控信息,生成應(yīng)用程序?qū)?yīng)的按鍵控制信息。本發(fā)明根據(jù)被觸發(fā)按鍵的鍵值、屏幕顯示區(qū)域中的觸控信息及當(dāng)前模擬器正在運(yùn)行的應(yīng)用程序來生成該應(yīng)用程序?qū)?yīng)的按鍵控制信息,實(shí)現(xiàn)自定義該應(yīng)用程序的按鍵控制信息,且對(duì)于客戶機(jī)端模擬出的所有應(yīng)用程序都可以按照本發(fā)明提供的方法來自定義按鍵控制信息。

所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,前述描述的系統(tǒng)、模塊和單元的具體工作過程,均可以參考上述方法實(shí)施例中的對(duì)應(yīng)過程。

在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露系統(tǒng)和方法,可以通過其它的方式實(shí)現(xiàn)。以上所描述的系統(tǒng)實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,又例如,多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可 以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。

所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。

另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。

所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(rom,read-onlymemory)、隨機(jī)存取存儲(chǔ)器(ram,randomaccessmemory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。

以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1