iOS - Perfecto Mobile中的屏幕共享

时间:2013-10-09 18:20:21

标签: ios iphone-privateapi

我们正在探索各种用于移动自动化测试的测试套件,并遇到了名为Perfecto Mobile的公司。让我感到震惊的一个功能是他们能够(没有越狱)在物理iPad上有效地执行“远程桌面”。

因此,iPad的屏幕在Web应用程序中进行镜像,它可以在Web应用程序上注册触摸/滑动事件并在设备上执行它们。我唯一相关的技术细节是使用通过USB电缆发送的命令执行所有这些操作。

我真的很好奇这是如何实现的,以及相关私有API的详细信息(如果有的话)。

谢谢,
Teja公司

2 个答案:

答案 0 :(得分:4)

我不熟悉PerfectoMobile,但我可以就如何实现这一点给你一些指示:

  • 对于镜像,一种方法是使用AirPlay,APIs are pretty well documented,但不要做我们正在谈论的,这需要一些严肃的逆向工程,但它绝对可能, these guys have done it。另一种方法是运行后台应用程序,该应用程序将定期拍摄主屏幕的快照,并通过套接字连接将其发送到客户端。您可以将其作为VNC服务器执行,并将远程视图合并到Web应用程序中,您可以使用noVNC。到目前为止,使用USB连接,如果后台应用程序通过TCP与客户端通信,您可以转发到端口。

  • 要在设备上实际执行从远程查看器发送的触摸事件,大多数人一直在使用GraphicsServices私有框架中的GSEvent组功能,而无需越狱设备。同样,后台应用程序将通过套接字接收诸如“点击那里”之类的指令,实例化GSEvent,并将其注入,以便在最前端应用程序的运行循环中处理它。

这些少数几种可能性至少已经在iOS 6.1以下的iOS应用程序中成功实现(iOS7是另一种动物)。您不会在App Store中找到任何此类应用程序,因为Apple明确禁止在第三方应用程序中使用私有框架,而是使用Enterprise和ad-hoc配置文件在内部部署它们。但是在Android上,Play商店中提供了VMLite

答案 1 :(得分:0)

如果您想从ios / android共享屏幕,请查看skreen.me。他们有可以尝试的示例应用程序,还提供用于移动应用程序集成的库。