最近在开发一个远程办公的软件。

昨天在手机调通,并且成功通过手机打开电脑上的Eclipse撸出来一个HelloWorld。


也许不久的将来, 下班后,拿着手机在家写代码了。工作时间直接变成24/24 /7


废话不多说,先来看下面的截图,图片来自手机截图


直接通过手机打开一个Windows操作系统。

Android手机控制电脑撸出HelloWorld

下面打开Eclipse,创建了java工程。

Android手机控制电脑撸出HelloWorld



相关原理


本篇我们简单介绍下。有些低层代码还没有来得及仔细研究,写的有点水。


  1. 首先服务器开发一个虚拟桌面,类似阿里云的虚拟镜像一样,然后手机端进行交互。

  2. 具体界面通过GLSerfaceView进行绘制。

  3. 通过Spice协议传递交互数据

代码需要用到C语言函数库。这里armeabi和x86架构下都放置了这两个函数库,保证能够正常在模拟器和真机运行。

Android手机控制电脑撸出HelloWorld


涉及到的开源框架

传输的流媒体框架使用GStreamer
SDK下载地址:
http://docs.gstreamer.com/display/GstSDK/Installing+the+SDK
教程下载地址:
http://docs.gstreamer.com/display/GstSDK/Android+tutorial+1%3A+Link+against+GStreamer

代码中首先加载本地函数库,提供一个native方法。程序一开始调用下面的init方法。

Android手机控制电脑撸出HelloWorld

关于具体通信主要参考开源项目flexVDI/launcher-mobile

https://github.com/flexVDI/launcher-mobile

函数库源码通过cerbero获取
https://github.com/EricssonResearch/cerbero
或者
https://github.com/flexVDI/cerbero

下面一大堆native方法,大部分都是和手势 / 输入内容交互的。(请忽略native方法红色警告)

Android手机控制电脑撸出HelloWorld

最后

代码还是比较多,没法一一列举,水了一篇。原谅我吧。以后有时间肯定会详细的分享出来。


相关文章: