Android端末の操作を自動化
kapiparaです。
常々Androidアプリの操作を自動化したいという思いがあったので、ついにやってみました。
対象はスマホゲームです。
スマホゲームは単純作業の繰り返しと真剣にやる作業の2種類があり、
単純作業が全体の90%、真剣にやる作業が全体の10%というような比率だと
思います。
今回の狙いは単純作業90%を自動化し、残りの10%だけを楽しもうというものです。
(単純作業90%があるからこそ10%の時間が楽しいという効果が間違いなくあるので、これをすることで10%の楽しさが減ることは間違いないのですがそこは置いておきます。。)
ざっと調べた感じ、FRepを使用するやり方とadbコマンドを使用するやり方があるようです。
①FRep:記録+再生
②adbコマンド:タップやスワイプをコマンドプロンプトから入力できる機能
今回は拡張性が明らかに高そうな②adbコマンドでやってみます。
【準備】
⇒適当に実施
SDKのtool,platform-toolにpathを通す
⇒適当に実施
準備完了!
【実行】
・コマンドプロンプトを起動
・adb devicesと打ち込む
⇒デバイス情報が出る。(デバイスを読み込めているし、pathも通っている)
・あとはinput tap ,input swipeを使って一連の動作を記述
FF:オペラオムニアのクリスタル集め用のコマンドを作成したのが下記
------------------------
input swipe 930 450 931 451
sleep 2
input swipe 1100 660 1101 661
sleep 2
input swipe 660 200 661 221
sleep 2
input swipe 1100 660 1101 661
sleep 10
input swipe 880 660 881 661
sleep 300
input swipe 1150 660 1151 661
sleep 4
input swipe 1150 660 1151 661
sleep 5
-------------------------
こんな感じで一連の処理を記述するとあとは自動でやってくれます。
これでクリスタル集めが相当楽になる。
ただこれではただの記録・再生と変わらないので、次は画面の情報取得と取得した情報をもとに判断(OCRや画像認識+if文かなあ,,)を加えたいと思います。
以上。