在做Android应用开发的时候,经常需要将已经完成的应用展示给一同开发的小伙伴,然而一直感觉没有找到一种十分方便的办法。特别是看到了开发IOS的小伙伴在做展示的时候的方便。因为Apple既做PC,也做终端。自己的设备在互联互通方面就可以做得非常的好。在展示IOS应用方面,Apple的airplay协议就是一个十分方便的工具。airplay既可以和apple推出的apple TV进行通信,将手机或者PC的屏幕投影到显示器或者投影仪上,同时也可以用来将手机的屏幕投影到PC上。利用airplay将手机屏幕投影到PC上,再将PC通过VGA接口连显示器或者投影仪是展示手机应用的好方式。这样的话在PC上可以直接在需要介绍的PPT和手机屏幕之间进行快速切换。
然而在我的I9103手机中并没有内置类似airplay的功能,但是在Android阵营中确实是有和airplay相对应的协议miracast,miracast是由wifi alliance标准化的,不过看样子是需要硬件支持的。而另一个用于多屏共享的协议DLNA通常是内置在视频或者游戏等应用中,并不是用来将手机自身的屏幕投影到PC上的。既然标准的协议不能直接用,那就直接用软件来传吧,毕竟11n的速率理论上也能够上百兆,用于点对点之间的视频传输也应该是足够的了。软件实现多屏共享有mirrorOP和droid VNC,mirrorOP本身是收费软件,但是感觉mirrorOP的投影效果并不好。
droid VNC是昨天在浏览google play发现的,用上了之后感觉droid VNC的投影效果不错,并且它还能被用来在PC上控制手机。更重要的是这是一款免费的、开源的软件。https://play.google.com/store/apps/details?id=org.onaips.vnc https://github.com/oNaiPs/droid-VNC-server。
1.使用droid VNC的步骤
用过VNC进行PC上不同系统的远程访问的应该都清楚,VNC包括客户端(Viewer)和服务器端(Server)两部分。droid VNC是在Anroid手机上安装了VNC的server,只需要在PC上安装相应的vnc viewer就可以了。
具体的使用步骤可以见http://www.21kexin.com/jishu/201307308.html
2.构建快速的网络
传输图像是十分耗带宽的应用,如果带宽过低,用vnc进行传输就会出现色值有偏差,手机操作不流畅等问题。目前我是用11n的ap(TP-Link TL-WR720N)和手机上的11n网卡直接进行传输的,配置如下图,在Win7下vnc viewer中可以看到显示的带宽值可以达到20000kbps,截图如下。此时在手机上进行划屏切换的时候仍然会看出图片帧的切换过程,但是对于应用的展示来说应该还是基本够用的。后续的考虑是
1.用随身WiFi替换目前的构造方式,简化搭建流程
2.看看usb tethering的功能能不能达到更高的带宽和在手机上11n开启channel bonding看能不能达到更大带宽。