本發(fā)明涉及信息處理領域,特別涉及一種android手持設備點對點的屏幕投影操控方法。
背景技術:
1、隨著移動互聯(lián)網(wǎng)的發(fā)展和android設備的普及,越來越多的用戶開始使用android設備進行各種操作,如開發(fā)應用、辦公、娛樂等。如何高效的使用android設備,提高工作效率,成為了一個重要的問題。而屏幕投影是一個重要的功能,可以將android設備屏幕投影到外部設備,如電視、投影儀等,實現(xiàn)遠程演示、遠程協(xié)助等功能。市場上主流的系統(tǒng)提供了一些投屏功能,大部分都是支持電視端,且要求下位機支持復雜的定制流媒體協(xié)議和驅動,比如蘋果、小米等投屏服務,有較大的局限性;另外一種是使用第三方軟件,比如airserver,vysor等,但這些軟件都僅支持在接收端上展示,不支持指令操作。
技術實現(xiàn)思路
1、本發(fā)明的目的在于,提供一種android手持設備點對點的屏幕投影操控方法。本發(fā)明可以通過android設備端和接收端對數(shù)據(jù)的通用封裝、接收和發(fā)送來快捷地實現(xiàn)跨設備投影及操控,實用性佳。
2、本發(fā)明的技術方案:一種android手持設備點對點的屏幕投影操控方法,包括android設備端和接收端;所述android設備端捕獲設備屏幕數(shù)據(jù)后壓縮封裝為通用數(shù)據(jù)并發(fā)送至接收端,同時獲取接收端操作指令進行解析后執(zhí)行;所述接收端通過瀏覽器獲取設備屏幕數(shù)據(jù)后解析并顯示對應的圖片,同時瀏覽器接收指令數(shù)據(jù)并分類封裝為通用指令字符后發(fā)送至android設備端。
3、上述的android手持設備點對點的屏幕投影操控方法中,所述屏幕數(shù)據(jù)發(fā)送、獲取及顯示過程按下述步驟進行:
4、步驟a1:android設備端啟動投影前臺服務,用于捕獲android設備端屏幕數(shù)據(jù);
5、步驟a2:啟動websocket服務,用于維護websocket鏈接和推送屏幕數(shù)據(jù)到接收端;
6、步驟a3:從屏幕數(shù)據(jù)中獲取幀數(shù)據(jù),且轉換并壓縮幀數(shù)據(jù);
7、步驟a4:將壓縮后的幀數(shù)據(jù)緩存到發(fā)送隊列中,websocket服務進行封裝處理并發(fā)送;
8、步驟a5:接收端創(chuàng)建websocket鏈接接收幀數(shù)據(jù),解析后渲染為圖片并輸出。
9、前述的android手持設備點對點的屏幕投影操控方法中,所述步驟s3中通過imagereader獲取包括屏幕寬、高、顏色格式和像素數(shù)據(jù)在內的幀數(shù)據(jù),并進一步獲取幀數(shù)據(jù)planes,后將幀數(shù)據(jù)planes轉換成格式為argb565的緩存bitmap,對緩存bitmap進行圖片寬高的處理,后將其轉化為jpeg格式,并使用jpeg壓縮算法進行壓縮。
10、前述的android手持設備點對點的屏幕投影操控方法中,所述步驟s4中websocket服務通過行程長度編碼對壓縮后的幀數(shù)據(jù)進行封裝,并以二進制輸出。
11、前述的android手持設備點對點的屏幕投影操控方法中,所述步驟s5中接收端通過h5頁面進行websocket鏈接的創(chuàng)建及解析。
12、前述的android手持設備點對點的屏幕投影操控方法中,所述接收端接收輸入指令數(shù)據(jù)、封裝發(fā)送以及android設備端接收的過程按下述步驟進行:
13、步驟b1:接收端的瀏覽器接收操作指令數(shù)據(jù),依據(jù)指令數(shù)據(jù)類別進行對應封裝并通過websocket服務發(fā)送至android設備端;
14、步驟b2:android設備端通過websocket接收指令數(shù)據(jù);
15、步驟b3:android設備端解析指令數(shù)據(jù),并依據(jù)類別調用對應的系統(tǒng)接口執(zhí)行。
16、前述的android手持設備點對點的屏幕投影操控方法中,所述步驟b1中接收端的瀏覽器通過javascript攔截獲取動作事件和輸入事件在內的操作指令數(shù)據(jù),動作事件結合圖片縮放比例進行坐標計算后封裝,輸入事件則對輸入內容進行封裝。
17、前述的android手持設備點對點的屏幕投影操控方法中,所述步驟b1中將動作事件封裝為adb指令字符串,輸入事件封裝為qts指令字符串。
18、前述的android手持設備點對點的屏幕投影操控方法中,所述步驟b3中當指令數(shù)據(jù)是adb指令字符串,android設備端將其轉換成adb指令并通過內嵌的abdlib將指令發(fā)送至本地的adb守護進程中并執(zhí)行;當指令數(shù)據(jù)是qts指令字符串,android設備端轉換成qts指令并調用系統(tǒng)的api接口執(zhí)行。
19、與現(xiàn)有技術相比,本發(fā)明通過android設備端捕獲設備屏幕數(shù)據(jù)后壓縮封裝為通用數(shù)據(jù)并發(fā)送至接收端,接收端通過瀏覽器獲取設備屏幕數(shù)據(jù)后解析并顯示對應的圖片,同時接收端還能接收指令數(shù)據(jù)并封裝為通用指令字符后發(fā)送至android設備端,android設備端獲取接收端操作指令進行解析后執(zhí)行,實現(xiàn)跨設備投影及操控;通過各系統(tǒng)均存在的瀏覽器作為接收端,同時配合通用數(shù)據(jù)進行適配解析,無需復雜的協(xié)議及驅動,有效提升適配范圍;android設備端接收到經分類封裝的通用指令字符后可以進行快速地解析使用,具有占用性能少以及效率高的特點。
1.一種android手持設備點對點的屏幕投影操控方法,其特征在于:包括android設備端和接收端;所述android設備端捕獲設備屏幕數(shù)據(jù)后壓縮封裝為通用數(shù)據(jù)并發(fā)送至接收端,同時獲取接收端操作指令進行解析后執(zhí)行;所述接收端通過瀏覽器獲取設備屏幕數(shù)據(jù)后解析并顯示對應的圖片,同時瀏覽器接收指令數(shù)據(jù)并分類封裝為通用指令字符后發(fā)送至android設備端。
2.根據(jù)權利要求1所述的android手持設備點對點的屏幕投影操控方法,其特征在于:所述屏幕數(shù)據(jù)發(fā)送、獲取及顯示過程按下述步驟進行:
3.根據(jù)權利要求2所述的android手持設備點對點的屏幕投影操控方法,其特征在于:所述步驟s3中通過imagereader獲取包括屏幕寬、高、顏色格式和像素數(shù)據(jù)在內的幀數(shù)據(jù),并進一步獲取幀數(shù)據(jù)planes,后將幀數(shù)據(jù)planes轉換成格式為argb565的緩存bitmap,對緩存bitmap進行圖片寬高的處理,后將其轉化為jpeg格式,并使用jpeg壓縮算法進行壓縮。
4.根據(jù)權利要求2所述的android手持設備點對點的屏幕投影操控方法,其特征在于:所述步驟s4中websocket服務通過行程長度編碼對壓縮后的幀數(shù)據(jù)進行封裝,并以二進制輸出。
5.根據(jù)權利要求2所述的android手持設備點對點的屏幕投影操控方法,其特征在于:所述步驟s5中接收端通過h5頁面進行websocket鏈接的創(chuàng)建及解析。
6.根據(jù)權利要求1所述的android手持設備點對點的屏幕投影操控方法,其特征在于:所述接收端接收輸入指令數(shù)據(jù)、封裝發(fā)送以及android設備端接收的過程按下述步驟進行:
7.根據(jù)權利要求6所述的android手持設備點對點的屏幕投影操控方法,其特征在于:所述步驟b1中接收端的瀏覽器通過javascript攔截獲取動作事件和輸入事件在內的操作指令數(shù)據(jù),動作事件結合圖片縮放比例進行坐標計算后封裝,輸入事件則對輸入內容進行封裝。
8.根據(jù)權利要求7所述的android手持設備點對點的屏幕投影操控方法,其特征在于:所述步驟b1中將動作事件封裝為adb指令字符串,輸入事件封裝為qts指令字符串。
9.根據(jù)權利要求7所述的android手持設備點對點的屏幕投影操控方法,其特征在于:所述步驟b3中當指令數(shù)據(jù)是adb指令字符串,android設備端將其轉換成adb指令并通過內嵌的abdlib將指令發(fā)送至本地的adb守護進程中并執(zhí)行;當指令數(shù)據(jù)是qts指令字符串,android設備端轉換成qts指令并調用系統(tǒng)的api接口執(zhí)行。