5

私は現在、Androidデバイスでゲームをプレイする人々を含む研究プロジェクトに取り組んでいます。加速度計とタッチイベントを記録するAndroidアプリを作成できるようにしたいと思っています。ユーザーの感動的なデータを記録しながら、怒っている鳥などのゲームをプレイできるようにしたいと思います。

この種のデータ収集はアプリの内部から可能であることを理解していますが、アプリの外部からも可能ですか?(おそらく、バックグラウンドで実行されているアプリを介して?)

これが不可能な場合、代替手段はありますか?(理論的にはAndroid OSのソースコードにアクセスしてこれを実現できると思いますか?)

4

2 に答える 2

4

この種のデータ収集がアプリ内から可能であることは理解していますが、アプリ外から可能ですか? (おそらくバックグラウンドで実行されているアプリを介して?)

明らかにプライバシーとセキュリティ上の理由から、タッチ イベントの場合はありません。以前可能でしたが(「タップジャッキング」という用語を調べてください)、現在のバージョンの Android では最終的にこの動作がブロックされました。

加速度計イベントについては、すべてのアプリで同時に同じであるため、それらを記録できます。サンプリング レートは、使用しているアプリのサンプリング レートと正確に一致しない場合があることに注意してください。

理論的には、Android OS のソース コードを調べて、これを実現できると思いますか?

はい、ただし、その変更された Android を ROM mod に変換し、デバイスにインストールする必要があります。

于 2012-12-19T20:44:12.793 に答える
2

アプリは、保護されたデバイス (つまり、「ルート化」されていない消費者の電話/タブレット) でこれを行うことはできません。

ただし、必要に応じて、コンピューターに接続された開発ツールで可能になる場合があります。制御された環境での各試行の前に、ある程度厄介な設定を行うことができる場合は、USB ケーブルを使用して ADB を Wi-Fi モードに切り替え、ワイヤレス ADB セッションで入力イベントを監視することで、いくつかのストック デバイスでそれを行うことができると思います。見る

http://source.android.com/tech/input/getevent.html

そのドキュメントは、「su」が必要であることを暗示しているようです (公式の「su」はルート以外のユーザーが使用できないため、これは奇妙です) が、多くのストック デバイスでは機能しません。

また、フォアグラウンドにあるアプリケーションを把握するために logcat を実行することも必要になるでしょう。

于 2012-12-19T23:00:46.687 に答える