pythonでスマホゲーム自動化~PCからandroidの操作を自動化編~


概要

pythonを用いた画像処理を用いてスマホゲームを自動化していきます.
PCを初期化したので,再度設定してきます.

解説動画

下記動画で解説してます.

SDK Platform-Toolsのインストール

SDK Platform-Tools リリースノート
https://developer.android.com/studio/releases/platform-tools?hl=ja

PCからandroidの画面をタッチするには,adbコマンドが必要です.
上記のリンクからインストールしたSDK Platform-Toolsの中にadb.exeがあるので,それを用いてandroidの画面をタッチします.

スマホの設定

USBデバッグをONにし,adbコマンドを許可する.

adbコマンドの確認

主なコマンドとしてtouchscreen, swipe, screencap, pullがある.
上記のコマンド内容と実行方法を下記に記載する.
コマンドを実行するために,まず最初,adb.exeがあるフォルダでコマンドプロンプトを開く.

>cd C:\Users\XXXXX\Documents\platform-tools_r31.0.2-windows\platform-tools

touchscreen

touchscreenは画面をタッチするコマンドである.
下記コマンドでタッチコマンドを送信する.
最後に,タッチされたことを確認できたら,touchscreenコマンドの確認は終了.

>adb shell input touchscreen tap 330 600

swipe

swipeは画面をスワイプするコマンドである.
下記コマンドでスワイプコマンドを送信する.
最後に,スワイプされたことを確認できたら,swipeコマンドの確認は終了.

adb shell input swipe 50 50 500 500

screencap

screencapは画面をキャプチャするコマンドである.
下記コマンドで画面キャプチャコマンドを送信する.

adb shell screencap -p /sdcard/screen.png

pull

pullは画面をandroidからPCにファイルを転送するコマンドである.
下記コマンドで転送コマンドを送信する.
adb.exeと同じフォルダにscreen.pngがあれば完了

adb pull /sdcard/screen.png

おわりに

今回はtouchscreen, swipe, screencap, pullの4つのコマンドを紹介しました.
感の良い人はわかると思いますがこれと画像処理を組み合わせればゲームを自動化できます.

今後はこれと画像処理を組み合わせたコードを書いていきます.

↓これです.

次回,「pythonでスマホゲーム自動化~FGO自動化編~」
https://qiita.com/m_tani_july/items/98bddff824cecbf8a395

「pythonでスマホゲーム自動化~ファイナルファンタジー ブレイブエクスヴィアス(FFBE)自動化編~」
https://qiita.com/m_tani_july/items/df81ea3a10a70581bb77

参考サイト

[Android] タッチの座標を確認する
https://qiita.com/takeoverjp/items/69c89d300b50b8fe4367

androidの操作を自動化したときの覚書
https://qiita.com/techno-tanoC/items/b93723618a792c7096ee

SDK Platform-Tools リリースノート
https://developer.android.com/studio/releases/platform-tools?hl=ja

adb 経由の screenshot の取り方
https://qiita.com/TNaruto/items/b2407f5668e15e42bedd