Android Debug Bridgeを使ってゲームを自動化しよう!
ADB SHELLとは、PCからのデバッグモードを使用したスマフォ操作
筆者の環境はOpenCVの項目でも記載したが、下記の状態
Windows7 Pro 64bit
SONY XPERIA SO-02F
■ADB SHELLを使用するために準備するもの
ハードウェア
・Android端末
・Micro USBケーブル(充電に使用しているケーブル)
・Windows PC
ソフトウェア
・JRE (JAVAのランタイム)
・Android SDK
・Android端末のUSBドライバ(筆者環境ではSONYのXPERIA用ドライバ)
ハードウェアは特に気にしなくても持っている方が大半のはず
Micro USBがACアダプタ一体型のものを使用している場合は別途USBが必要になるかも
■ソフトウェアインストール
・JRE (JAVAのランタイム)
JAVAを動かすために必要
適当に最新版をインストール()2015/10/26現在
http://www.oracle.com/technetwork/java/javase/downloads/index.html
まずはOracle社のJavaダウンロードサイトに接続
その中から、JREを選択
最新Verのランタイムをダウンロード 今回はJava SE Runtime Environment 8u66
Accept License Agreementにチェックを入れ、64bit環境なのでWindows x64のVer
jre-8u66-windows-x64.exe
をダウンロードしインストール
・Android SDK
ダウンロードサイトに接続
http://developer.android.com/sdk/index.html
Eclipse等でAndroidのアプリ開発をしない場合はAndroid SDKのみで十分なため、画面↓の方にあるTools OnlyのInstallerをダウンロードする
Other Download Options
|
SDK Tools Only
|
installer_r24.4.1-windows.exe
(2015/10/26時点)
|
I have read and agree with the above terms and conditionsにチェックを入れる
|
DOWNLOAD INSTALLER_R24.4.1-WINDOWS.EXEをクリックしダウンロード
ダウンロード後実行すると、インストール先を聞かれるが、深い階層がデフォルトになっているためCドライブのルートに変更してしまおう
C:\android-sdk
別に名前はなんでもいいが、忘れないためにandroid-sdkとした
インストーラーが終了すると、自動的にAndroid SDK Managerが起動すると思うので、ADB SHELLに必要な項目のみにチェックを入れインストール
※不要なAPIをインストールしても構わないが、10GB以上のサイズをダウンロードするため、HDD(SSD)にも時間的にもやさしくないので外すことを推奨
・Android SDK Tools
・Android SDK Platform-tools
・Google USB Driver
最後に、環境変数のPathにSDKをインストールしたフォルダの場所を教えて完了
今回はC:\android-sdkがPathとなる
Windowsキーープログラムとファイルの検索に” 環境変数 ”と入力
” 環境変数を編集 ”を選択する
” システム環境変数(S) ”の中にあるPathを選択し” 編集(I) ”ボタンを押下
変数値の一番後ろにパスを追記する
;C:\android-sdk;
・Android端末のUSBドライバ
ADB SHELLを使用するためには、PCとスマフォを接続しUSBデバッグモードとする必要があるため、USBドライバを入れ開発者向けオプションを表示する必要がある
まずは開発者向けオプションを表示する必要があるが、Android4.4.2では、裏コマンドとして
設定
|
端末情報
|
ビルド番号を連続タップ
する必要がある
無事開発者向けオプションが表示されたら、開発者向けオプションを有効にし、USBデバッグにチェックを入れる
次にSONYのサイトからPC Companionをダウンロードしよう
http://www.sonymobile.co.jp/support/software/pcc/2.3/
サイトの下側に今すぐダウンロードの項目があるのでそこからダウンロードを実行
インストールすれば、ドライバ関連も勝手に入っている
■PCと接続し動作を確認
PCと接続すると、スマフォ画面上にデバッグモードの有無が表示されるのでYesを選択
その後、コマンドプロンプトを起動し、下記コマンドを入力してみよう
adb devices
接続した端末情報を返すコマンド
そもそもadb shellが反応しない場合は、Pathの設定を見直してみよう
adb shell screencap -p /sdcard/screen.png
スマフォの画面をスクリーンショットに保存
adb pull /sdcard/screen.png
現在のコマンドプロンプトのフォルダにスクリーンショットの画像をコピー
これが実行できれば後は簡単
スマフォの操作をUWSCやC++やBatファイルを使って自動化出来る
Batファイルの例
テキストファイルに下記を記入し、保存
その後ファイルの拡張子をtxtからbatに変更すればひたすらスクリーンショット撮影、PCに移動を繰り返すことが出来る
画像ファイルをウィンドウズのデフォルトビューワーで開いたままこのBatを実行すれば、常にスマフォの画像を更新してPCで表示し続けることが可能だ
@echo off
:LOOP
adb shell screencap -p /sdcard/screen.png
adb pull /sdcard/screen.png
goto :LOOP
exit /b 0
UWSC例
FFGMの経験値稼ぎを自動化
C++(OpenCV)例
時のドラゴンのおまかせ戦闘自動クリック