4

モバイル自動テスト用のさまざまなテスト スイートを検討していたところ、Perfecto Mobile という会社に出会いました。私を驚かせた機能の 1 つは、(脱獄することなく) 物理的な iPad で「リモート デスクトップ」を効果的に実行できることです。

そのため、iPad の画面は Web アプリケーション内でミラーリングされ、タッチ/スワイプ イベントを Web アプリに登録し、デバイス上で実行できます。私が持っている唯一の関連する技術的な詳細は、これらすべてが USB ケーブル経由で送信されるコマンドを使用して実行されているということです。

これがどのように実装されているか、関連するプライベート API がある場合はその詳細について、私は本当に興味があります。

ありがとう、
テジャ

4

2 に答える 2

4

私は PerfectoMobile に詳しくありませんが、これを実現する方法についていくつかのヒントを与えることができます。

  • ミラーリングについては、AirPlay の使用を検討する 1 つの方法があります。APIは十分に文書化されていますが、深刻なリバース エンジニアリングが必要になる、私たちが話していることを実行しないでください。別のアプローチは、メイン画面のスナップショットを定期的に取得し、ソケット接続を介してクライアントに送信するバックグラウンド アプリを実行することです。これを VNC サーバーとして実行し、リモート ビューを Web アプリに組み込むには、noVNCを使用できます。USB 接続を使用する限り、バックグラウンド アプリが TCP 経由でクライアントと通信する場合は、ポート転送できます。

  • リモート ビューアーから送信されたタッチ イベントをデバイス上で実際に実行するために、ほとんどの人は、デバイスをジェイルブレイクする必要なく、GraphicsServices プライベート フレームワークの関数のGSEventグループを使用しています。繰り返しますが、バックグラウンド アプリはソケットを介して「Tap there」などの命令を受け取り、GSEvent をインスタンス化し、それを挿入して、最前面のアプリの実行ループで処理されるようにします。

これらのいくつかの可能性は、少なくとも、iOS 6.1 までのさまざまな iOS アプリで正常に実装されています (iOS7 は別の動物です)。Apple はサード パーティ アプリでのプライベート フレームワークの使用を明確に禁止しているため、App Store にはそのようなアプリはありません。ただし、Android では、Play ストアでVMLiteを利用できます。

于 2013-11-06T02:49:49.433 に答える
0

iOS / Android から画面を共有したい場合は、skreen.me をチェックしてください。試用できるサンプル アプリがあり、モバイル アプリ統合用のライブラリも提供しています。

于 2013-12-21T12:32:11.403 に答える