互联网 频道

揭秘云巢VueClient结构设计

  最近云巢桌面云移动端的相关报道指数飙升,为了更深入的了解云巢移动客户端,记者再次走进了云巢,近距离揭秘云巢VueClient结构设计,VueClient是云巢桌面虚拟化协议中的客户端部分,作为用户能够直接接触的组件,具有如下几方面的基本功能:

  l 可视化界面

  l 鼠标、键盘输入

  l 声音、录音

  l 基本外设支持(usb、串口…)

  结合云巢本身的产品,客户端部分需要实现多平台的支持,例如windows、linux、android、IOS平台的支持,这样VueClient也同样需要考虑如此,所以在设计时就需要将这个特性考虑进去。

揭秘云巢VueClient结构设计

  图1 VueClient结构

  如图1所示,VueClient结构包含4部分模块:

  l 公共库

  l 逻辑层

  l 交互层

  l UI层

  公共库:

  云巢的体系中公共库占有一个重要的位置,其作用就是提供一系列对各组件都可用的公共功能的集合。在VueClient设计中即考虑了云巢现有的资源,同时为了跨平台的考虑,将公共库作为一个模块加入到VueClient的结构中。

  VueClient中的公共库模块包含了一些常用功能,同时是需要考虑跨平台性的,所以在添加功能、提供API时会统一接口;同时因为VueClient的一定的特殊性,在设计时将IOS、android平台也考虑进去,把公共库部分做成一个随时可以替换的模式。

  逻辑层:

  逻辑层实现的基本功能包含三类:协议解析、协议处理、图像处理,其中图像处理又包含普通图像处理,视频处理,图像处理部分涉及到图像算法部分,这里就不在过多介绍,关于图像处理部分有一些额外的设计,后续会继续介绍。

  逻辑层使用的c实现的,其中涉及的部分与平台无关,所以这部分是跨平台的,不需要做额外处理。其中协议解析是与VueServer对应的,具体协议内容不做过多介绍;协议处理部分则是对解析后的数据的处理,协议处理部分可以调用部分交互层提供的API,实现两者之间的有机结合。

  交互层:

  交互层是连接UI层与逻辑层的桥梁,是使整个VueClient正常运作的主体部分。

  交互层中包含一种事件处理机制,可以简单的理解为有一个队列去存放所有的事件,然后一个线程会定期的轮询检查每个事件的状态,当对应事件状态发生变化后,即为有操作需要处理,这时候会根据这个事件注册的处理回调函数去处理相应内容,有了解linux下select函数的用法的,也可以做相应类比,原理都很接近,只是实现方式根据具体需要做相应的调整。

  交互层最主要的作用是使得UI层与逻辑层完全无关,这种设计思路是为了将UI层单独提出,避免使用平台性相关的方式去实现UI时,造成VueClient主体的大变动。

  UI层:

  由于有交互层的存在,所有UI层的实现是根据不同平台而选择最适合的实现方式的,现在已经实现的UI层界面实现方式包括:使用QT实现的界面(windows、linux),使用X11实现的linux界面,使用android SDK实现的android界面,使用OC实现的IOS界面,使用windows API实现的windows界面等。

  其中UI层可以使用交互层提供的API,来实现与后端逻辑层的间接交互。

  VueClient的整体设计即如上所述,这里仅仅是做了一个很粗浅的介绍,关于云巢桌面虚拟化协议的其他内容可以等我们下次在给大家揭秘。

特别提醒:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
0
相关文章