0. 企画の概要
現在,下記の画像のようにゲームの自動化を行っています.まず,最初に,スマホ画面をスクリーンショットしてからPCに送信します.次に,画像解析を行ったのちにクリックコマンドをスマホに送信します.最後にスマホ上でクリックされてゲームが進んでいく感じです.
下記の動画はこの構成でスマホゲームの自動化を行っています.
しかし,これだと自動化するためにPCが必要であったり,ケーブルが必要であったりと結構手間です.そこで,今回は下記の図のようにTermux内にubuntuの環境を構築し,そこで画像処理を行えるようにすることでandroid単体で画像処理自動化プログラムを回していこうとする企画です.
1. Termuxのもろもろの設定
1.1 Termuxの基本設定
アプリストアからインストール. そしたら, パッケージのアップグレード.
pkg upgrade
完了したらSDカードの機能をONにする.
termux-setup-storage
これでTermuxの基本設定は完了.
<< 参考サイト >>
【随時更新】個人的 Termuxセットアップメモ
https://zenn.dev/ryuu/scraps/6b2584294674b7
1.2 SSHの基本設定
android上でコマンドを打つのはとても面倒なので, SSH経由でandroidに接続し, PC上をコマンドを叩くようにする.
*参考サイトの通りに行えば特に問題なく動作したので割愛させていただきます. *
<< 参考サイト >>
Termux on AndroidのSSHサーバに接続する方法
https://linuxfan.info/termux-sshd
1.3 ubuntuのインストール
temux上でadbコマンドを叩くようにするには結構面倒くさそうです. そこで, Ubuntuを導入して, そのUbuntu上でadbコマンドを叩くような流れでやっていきます.
*参考サイトの通りに行えば特に問題なく動作したので割愛させていただきます. *
<< 参考サイト >>
【随時更新】個人的 Termuxセットアップメモ
https://zenn.dev/ryuu/scraps/6b2584294674b7
2. adbコマンドの導入と設定
2.1 temuxのUbuntuにadbコマンドを導入
adbコマンドのインストール
>sudo apt-get install android-tools-adb
adbがインストールされたか確認
>adb version
adbコマンドでandroid端末が認識されているか確認. ポップアップが出るので許可してください.
>adb devices
List of devices attached
emulator-5554 device
<< 参考サイト >>
UbuntuでAndroid Debug Bridgeを使ってみる
https://saitodev.co/article/Ubuntu%E3%81%A7Android_Debug_Bridge%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%8B/
2.2 sshクライアント側のPCにadbコマンドを導入
ssh接続するPC側にもadbコマンドの導入をお願い致します.
ubuntuなら上記のコマンドで同様にインストールが可能です.
winodwsとかだとandroid studioとかに入っているのでそれを使ってください.
2.3 PCからandroidにadb接続
接続します.
$ adb devices
端末にADB接続していいかアラートが表示されるのでOKします.
これでWi-Fi接続の許可をします.
$ adb tcpip 5555
IPの確認を下記コマンドで行います.
$ adb shell ip route
ここで表示されたIPをメモしておきます.
2.4 termuxからandroidにadb接続
下記のコマンドでtermuxから自身のandroidにadb接続ができます.
>adb connect <ip:port>
この状況になれば, 今まで自動化で使用していたadbコマンド達を使用できそうです.
<< 参考サイト >>
Android端末内のTermuxからその端末にADB接続する
https://tanokatu.com/2019/05/20/01/
3. 自動化関連のadbコマンド使ってみる
自動化関連で使用していたのはスクリーンショットコマンドと画面タッチコマンドの2つです.
なので,この2つのコマンドがtermux上で使い物になるかを検証していきたいと思います.
3.1 スクリーンショットコマンド
実際に下記のスクリーンショットコマンドを叩いてみました.
adb shell screencap -p /sdcard/screen.png
その結果,ちゃんとスクリーンショットが撮影されていました.
3.2 Termuxのバックグラウンド起動
このままでは,ゲーム画面に遷移するとTermuxが落ちてしまいます.そこで,Termuxをバックグラウンド起動に設定します.
僕のスマホでは
設定>バッテリー>アプリ>Termux>バックグラウンド起動のON
でいけました.
3.3 タッチコマンドの確認
現在進行中.........