Androidのリモート操作/管理ツール「OpenSTF」をDocker for Windowsで使う

ヨメレバCSS
オリジナルCSS

 Android端末のリモート操作/管理ツールのOpenSTFをWindows上のDockerで動かしてみました。

 このツール、リモート操作できるだけでなくapkのインストールやシェルの実行、logcatの取得も出来るのでほんと便利。

 環境についてもdocker-composeを公開して下さっている方がいたので、これをWindowsで起動できるようにしてみました。

スポンサーリンク
GoogleAdSence レクタングル(大)

環境

 試した環境は次の通り。

  • 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として保存します。

 その後は簡単に次のような手順で。

  1. Android端末をUSBデバッグ接続
  2. adb devicesでデバイスの接続を確認
  3. docker-comopse upで起動
  4. 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はいけました。

参考

スポンサーリンク
GoogleAdSence レクタングル(大)

シェアする

スポンサーリンク
GoogleAdSence レクタングル(大)