4

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

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

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

谢谢,
泰加

4

2 回答 2

4

我对 PerfectoMobile 不熟悉,但我可以为您提供一些关于如何实现这一点的建议:

  • 对于镜像,一种方法是使用 AirPlay,API 有很好的文档记录,但不做我们所说的需要一些严肃的逆向工程,但绝对有可能,这些人已经做到了。另一种方法是运行一个后台应用程序,该应用程序会定期拍摄主屏幕的快照,并通过套接字连接将它们发送到客户端。您可以将其用作 VNC 服务器,并将远程视图合并到 Web 应用程序中,您可以使用noVNC。就使用 USB 连接而言,在后台应用程序通过 TCP 与客户端通信的情况下,您可以转发到端口。

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

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

于 2013-11-06T02:49:49.433 回答
0

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

于 2013-12-21T12:32:11.403 回答