PHP+ADB でAndroid画面操作の保存と再現をする

adb経由で getevent/sendevent を使います.

Getevent | Android Developers

adb_—_121×44

やってみておもしろかったの以下からのPHPへの移植です.

getevent/sendeventでAndroid端末の操作自動化

実行方法は同様に,ADB接続したパソコン上コンソールから

保存

$ adb shell getevent /dev/input/event2 | php getevent.php > events.txt

保存したファイルはシェルスクリプトです.

$ cat event.txt
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 53 283
sleep 0.010
adb shell sendevent /dev/input/event2 3 54 2331
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 57 4294967295
sleep 0.060
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 57 1886
sleep 0.344
adb shell sendevent /dev/input/event2 3 53 800
sleep 0.000
adb shell sendevent /dev/input/event2 3 54 2312
sleep 0.000
adb shell sendevent /dev/input/event2 3 58 64
sleep 0.000
adb shell sendevent /dev/input/event2 3 48 4
sleep 0.000
adb shell sendevent /dev/input/event2 0 0 0
sleep 0.000
adb shell sendevent /dev/input/event2 3 53 798
sleep 0.010
adb shell sendevent /dev/input/event2 3 54 2311
...

このときの タッチパネルを表す /dev/input/event2 は端末によって違います.

コンソールから以下で確認しましょう.

以下Nexus4の場合.

$ adb shell getevent
add device 1: /dev/input/event0
  name:     "pmic8xxx_pwrkey"
add device 2: /dev/input/event1
  name:     "keypad_8064"
add device 3: /dev/input/event4
  name:     "apq8064-tabla-snd-card Headset Jack"
add device 4: /dev/input/event3
  name:     "apq8064-tabla-snd-card Button Jack"
add device 5: /dev/input/event5
  name:     "hs_detect"
add device 6: /dev/input/event2
  name:     "touch_dev"
^C

再現

$ sh events.txt

続きを読む >>


パソコン上で Android を試せる「Genymotion」で GooglePlayStore を使う

公式エミュレータとの比較になるのだけれども。

Genymotion

デメリット

・Geniymotionにアカウント登録が必要。
ダウンロード時、メールアドレス等の登録が必要。

・VirtualBox のインストールが必須。
ダウンロード後、ダブルクリックでインストール完了。

・起動できないアプリもある。
DRMとか課金系とか、厳しいアプリは起動できないように思える。

・動画が見れない。

メリット

・サクサク快適。

起動が早い。低スペックなマシンでは動かなかったNexus10も軽快にうごく。

・インストール、設定が簡単。

公式では、同じ kitkat(API19)でも、intelx86 とか、arm とか、snapshot が、とかあるけども簡単に avd の作成ができる。
対応機種は少ないが機種名から、その機種の最新のOSバージョンが設定されるので便利。例えば、Nexus S なら 2.3.7 とか。
Kitkatならカラー絵文字もフツーに表示されるし、表示サイズもパソコンディスプレイサイズに合わせて表示されている。

・Google Play Store が利用できる。

arm コンバータと、gapps のzipアーカイブをGUI上にドラッグアンドドロップするだけでフラッシュまで完了できる。楽ちん。
ストア上の掲載情報や公開されているapkを実際にインストールできるので間違いがない。

・文字入力、カーソルキーで画面遷移や操作ができる。

結構でかい。パソコンで矢印(ポインタ)を移動させながらのドラッグとかスワイプほどダルい操作はない。

なんせ、動作がキビキビで快速なのが最大のメリット。デフォルト設定でこの快適感。インストールから起動までの作業時間もほんの数分。

ちと、Chromeが不安定に思えるのだがまあいいか。

AndroidStudioプラグインもあるよ。

JetBrains Plugin Repository :: Genymotion

jenkins に。

Use Genymotion with Jenkins for Android testing | Genymobile Blog

で、これって、Googleアカウントがあれば、パソコン上で、Androidを*ある程度*お試しできるよなあ、と。

続きを読む >>


サンプル付きのAPIリファレンス「APIMiner」で開発時間を短縮すべし

フツー、公式APIリファレンスで ListView を見るとこんなです。

ListView___Android_Developers

ListView___Android_Developers 2

ListView | Android Developers

で、クラス名やメソッド名や説明文に含まれる単語を元にぐぐったりしながらサンプルコードを見つけたりします。

それってめんどくさかったりします。

こんなリファレンスがあったりします。

ListView_-_Android_SDK___Android_Developers

「Example」ボタンをクリックするとサンプルが続々と表示されます。

ListView_-_Android_SDK___Android_Developers 2

続きを読む >>