❶ 桌面虛擬化傳輸協議之android spice
雲計算是目前計算機領域的一個熱門領域,桌面虛擬化是其中的一個重要應用,即把桌面系統在伺服器端虛擬化,擾盯則然後通過傳輸協議傳輸數據到客戶端來實現桌面虛擬化,這樣的好處就在於不管用什麼設備,只要通過客戶端都可以訪問到雲端的系統,隨時隨地都可以在一個系統上工作。
目前有兩大標準的桌面傳輸協議,分別是RBP和RDP。
那麼對於移動設備來說,很顯然,RDP協議更適合移動設備,因為移動設備在3G,4G情況下不可能用耗費大流量的RFB協議,並且延遲比較高。而RDP協議由於傳輸的數據量較少,對網路條件要求不高。所則型以,針對於移動平台來說,RDP協議比較合適。
但緩棚是,由於RDP協議是微軟的產品,受限於其證書,並不是開源產品,所以不能用於移動設備。那麼,開源的類RDP協議的 SPICE 協議,就隆重登場了,結合我們的主題,在android平台上應用spice協議。下面,我們來介紹spice在android平台上的應用。
Spice事實上並沒有android版本,但是它有linux版本,而android是基於linux的,所以,我們可以通過使用NDK來交叉編譯Spice庫到android上使用。也就是說,我們可以通過使用JNI來調用libspice.so(通過NDK交叉編譯),從而在android平台上使用Spice。
Spice伺服器通過通道(Channel)來與客戶端通信,其中jpeg模塊是通過NDK編譯好的庫,使用JNI調用,把伺服器發送過來圖像命令轉化為圖像,再把圖像交給android的View顯示出來。
在實際使用中,需要對圖像的解析過程進行優化,否則顯示的延遲很大。一個解決方案是使用更快的jpeg解析庫。
最後,推薦一個開源的spice安卓客戶端 remote-desktop-clients
以上只是對Spice工作原理的簡單描述,詳細介紹查看官方文檔:
❷ 為什麼說安卓是虛擬機
因為其基於Linux的自由及開放源代碼的操作系統。
Android的系統架構和其操作系統一樣,採用了分層的架構。從架構圖看,Android分為四個層,從高層到低層分別是應用程序層、應用程序框架層、系統運行庫層和Linux內核層。開發人員也可以完全訪問核心應用程序所使用的API框架。
Android為運行於Linux kernel之上,但並不是GNU/Linux。因為在GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。
(2)Android虛擬化擴展閱讀:
虛擬機的系統特點:
1、虛擬化技術有操作系統中內存的虛擬化,實際運行時用戶需要的內存空間可能遠遠大於物理機器的內存大小,利用內存的虛擬化技術,用戶可以將一部分硬碟虛擬化為內存。
2、虛擬機為虛擬機技術的核心,它是一層位於操作系統和計算機硬體之間的代碼,用來將硬體平台分割成多個虛擬機。
3、VMM 運行在特權模式,主要作用是隔離並且管理上層運行的多個虛擬機,仲裁它們對底層硬體的訪問,並為每個客戶操作系統虛擬一套獨立於實際硬體的虛擬硬體環境(包括處理器,內存,I/O 設備)。
❸ android運行時,虛擬機已設成功,但程序不能運行,怎麼辦
用安卓Android Virtual Device (AVD)虛擬機 調試Android APP程序,如果不運行,建議按一以下步驟重試:
1.重新建立虛擬機
打開Eclipse軟體後,在主界面點擊Android Virtual Device Manager,出現虛擬機管理界面,點擊New按鈕彈出虛擬機參數配置界面,選擇適宜的虛擬機參數比如屏幕大小、解析度、內存RAM、SD卡大小等,填入後點擊OK創建完畢後關閉虛擬機管理頁面。
2.運行android 應用
點擊工程 run as android application後,系統就會啟動虛擬機,在剛開始時虛擬機界面如下,一段時間後,會運行Android程序。
3.更新SDK 多數情況下虛擬機不能啟動,報錯,或無法運行程序都是因為SDK版本太老導致,建議先升級SDK,並下載不同版本的模擬器
提示:
虛擬機建立時會進行一系列內部操作,需要花較長時間,建議,在建立一個虛擬機後不要關閉虛擬機界面,直接切換不用的工程,就可以運行不同的APP!