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はいけました。
