Android端末のリモート操作/管理ツールのOpenSTFをWindows上のDockerで動かしてみました。
このツール、リモート操作できるだけでなくapkのインストールやシェルの実行、logcatの取得も出来るのでほんと便利。
環境についてもdocker-composeを公開して下さっている方がいたので、これをWindowsで起動できるようにしてみました。
環境
試した環境は次の通り。
- Windows 10 Professional
- Docker for Windows
- adbがインストールされている
Windows10 Homeだと、Docker Toolkitを使うことになってしまうので、この方法だけではダメかもしれません。
adbによる接続を前提としたツールなので、adbはインストール済みとします。
docker-comopse
Windowsで起動させたdocker-compose.ymlです。
version: "3" services: db: image: rethinkdb command: rethinkdb --bind all volumes: - ./db_data:/data stf: image: openstf/stf ports: - 7100:7100 - 7110:7110 - 7400-7679:7400-7679 links: - db environment: - RETHINKDB_PORT_28015_TCP=tcp://db:28015 - RETHINKDB_ENV_DATABASE=stf command: stf local --allow-remote --public-ip host.docker.internal --adb-host host.docker.internal --provider-max-port 7679
これをdocker-compose.ymlとして保存します。
その後は簡単に次のような手順で。
- Android端末をUSBデバッグ接続
adb devices
でデバイスの接続を確認docker-comopse up
で起動- http://localhost:7100にアクセス
ポート番号は7100がWebブラウザからの接続用ポート、7110および7400-7679がWebSockerで使用してるみたいです。デフォルトで7400-7700の範囲でしたが、Windows10の場合ポート7680がWindows Updateで使用されているようだったのでそれを避けて、ポート7679まで使用するようにしました。--provider-min-port
と合わせて範囲をずらしてもいいと思います。
--public-ip
はローカルアクセスの場合は不要そうで、なくても動きました。
このへんのオプションはsft local -h
で色々出てくるので、そちらを確認してみてください。
結果
さっくり動いた。
画面には出さないですがAndroid端末の情報とかも簡単に取れるし、開発しているときにはすごい役に立つと思います。
adbリモート接続でもOK
要するにadb devicesで認識してくれていればいいようなので、USBじゃなくてWi-Fiでリモート接続しててもOKです。
ただその場合は画面の更新速度が遅くなります。必要十分かどうかは用途によるかなあ。
OculusQuestでは動かなかった
Andriod端末ならいけるかとおもってQuest試してみたのですが、「切断中」のままになってしまいました…何か足りないのか、STFが動かないのかはまだわからない。
どうもSTFServiceなるサービスがインストールされるようなので、それがQuestでは上手く動いてないのかもしれない。
FireHD10はいけました。