目前有两大标准的桌面传输协议,分别是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工作原理的简单描述,详细介绍查看官方文档:
读了两篇文章,总结一下SPICE的VDI协议。1、徐浩,兰雨晴 2013年(计算机工程与科学)发表的文章:“基于SPICE协议的桌面虚拟化技术研究与改进方案”;
2、石屹嵘,龚德志,2013年 (电信科学)发表的文章:“基于SPICE 开源协议的云桌面技术架构研究”;
张两篇文章都介绍了“SPICE”框架,
其中文章二对比了几种桌面远程显示技术。
目前的技术实现方式和协议主要有以下4 种:
SPICE架构包括客户端、SPICE服务端和相应的QXL设备、QXL驱动等,如下图所示。客户
端运行在用户终端设备上,为用户提供桌面环境。SPICE服务端以动态连接库的形式与KVM虚拟
机整合,通过SPICE协议与客户端进行通信。
分为3个部分:
SPICE协议最大的特点是其架构中增加的位于Hypervisor中的QXL设备,本质上是KVM虚
拟化平台中通过软件实现的PCI显示设备,利用循环队列等数据结构供虚拟化平台上的多个虚拟
机共享实现了设备的虚拟化。但是,这种架构使得SPICE协议紧密地依赖于服务器虚拟化软/硬件基础设施,SPICE必须与KVM虚拟化环境绑定。传统的远程桌面传输协议工作在虚拟机Guest OS中,而SPICE协议本身运行在虚拟机服务器中,可以直接使用服务器的硬件资源。
1.1 SPICE协议核心技术
1.2 SPICE协议改进
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)