13

AVDでスワイプジェスチャ(たとえば、左と右)をシミュレートするにはどうすればよいですか?それは可能ですか?(Android開発者ガイド-エミュレーター でそれらを見つけることができません...

PS:Android 2.2、APIレベル8のデバイス設定で「タッチスクリーンサポート」を「はい」に設定しています

4

4 に答える 4

8

マウスをクリックアンドホールドして動かすだけで、目的のモーションを作成できます。

于 2011-08-03T21:51:51.743 に答える
5

より簡単な方法の1つは、録音と再生です。

geteventのコマンド出力 を処理する代わりに、結果を送信するのsendeventが非常に遅くなります。AVDと同じAndroidバージョンの実際のデバイスからのジェスチャーを盲目的に記録し、記録されたデータを入力バッファーにストリーミングしたところ、デバイスをだますことに成功しました。

実際のデバイスのタッチ入力は、次の方法でコピーできます。

  1. コマンドを使用しddて、adbシェルでを実行しますdd if=/dev/input/event2 of=/sdcard/left。これにより、すべてのタッチ入力データが/sdcard/leftファイルにバッファリングされます。

  2. シミュレートしたいジェスチャーを実行します(スワイプ)。

  3. これで(/sdcad/left)、実際のタッチによって生成されたデータが入力されます。コマンドを終了できますdd(ctrl + c)。

  4. 実際のデバイスからAVD内の任意の場所にファイルを移動します(/sdcad/left)

  5. AVD adbシェルで、dd if=/sdcard/left of=/dev/input/event2

ビオラ!シミュレートされたタッチイベントが発生します。

注:私のデバイスでは、タッチイベントを含むファイルは/dev/input/event2、デバイスごとに異なる可能性があるため、最初に試行錯誤を行うことができます。


つまり、同じデバイスで録音して再生する場合は、次のようになります。

  1. dd if=/dev/input/event2 of=/sdcard/left

  2. 本当のタッチをしてください

  3. dd if=/sdcard/left of=/dev/input/event2

  4. 手順3を必要なだけ繰り返します。

于 2013-03-24T16:38:38.790 に答える
2

入力イベントを記録し、エミュレータで再生するには、adbshel​​lgeteventとadbshel​​sendeventを使用します。これは、理解するのが少し難しく、getevent出力の16進値を10進数に変換する必要がありますが、非常に便利です。

于 2011-08-04T05:36:52.497 に答える
0

tl; dr:ユーザー入力処理をオンラインにするのが本当に遅いという問題があると、うまくいかないと感じるかもしれません。それを10分間いじっても機能しない場合は、何か問題がありますが、最初に10分間与えてください。

これが私の経験ですので、私がどのようにしてその結論に達したのかを見ることができます:

AVDManagerにデバイスを明示的に追加したことはありません-Studioがデバイスを追加してくれました。

(Hello World)アプリを実行すると、起動するまでにかなりの時間がかかりました。最初は何も起きていないようだったので、Studioのウィンドウの下部にある[Android]をクリックすると、実行内容がログに記録されていることがわかりました。

まだ多くの遅れがありました。1分ほど後、エミュレータがポップアップし、バックアップがないなどのメッセージが表示されました。さらに1分ほどすると、「充電中」と表示されたので、クリックしてドラッグしましたが、何も起こりませんでした。私はそれをさらに数回試しましたが、最終的に「充電」を「スワイプしてロックを解除」に変更することで応答しました(私はそう思います)。そこで、クリックドラッグをさらに数回試しましたが、ドラッグが登録されていないようです。最後に、カメラ(ソフトウェア)ボタンをマウスで押すと点灯するのに気づいたので、それをクリックしてから、カメラに入り(白い円の小さな<をドラッグしたかクリックしたかはわかりません)、そこから私は何かをすることができました。

于 2015-06-06T05:38:06.787 に答える