リモートマシンのエミュレータとadbで接続して開発する
はじめに
リモートの仮想マシンにRDPでつないでAndroid開発を試みた際、HAXM
が動作しない問題1に直面しました。
さすがにリモートの仮想マシンというただでさえ枷の多い環境で、更にエミュレータまで動作に問題があるとなると、開発時のストレスが大変なことになりそうだったので、エミュレータだけローカルで動作させる方法を探してみました。
調査結果
以下のように開発を行うローカルマシンから、エミュレータを動作させるリモートマシンに対してssh
でポートフォワーディングを行います。
こうすることで、ローカルのadb
などなど、各種ツールがリモートのエミュレータと接続することができるようになります。
ssh -NL 5554:localhost:5554 -L 5555:localhost:5555 <ユーザー名>@<リモートマシンのアドレス> -p <ポート番号>
接続後、ローカルのadb
を再起動することで認識されるようになります。
AndroidStudioからきちんとビルドしたapk
をインストールさせて動かすことが出来ますし、Logcat
にもきちんとログが出力されますし、ブレークポイントで処理を止めることも出来ます。
軽く触ってみた感じ、ローカルで通常の方法で動作させているエミュレータと遜色ない動作をします。
解説
5554はtelnet用、5555はDDMSなどのツール用にオープンされているポートです。これらの通信をリモートに飛ばすことでリモートマシンに存在しているエミュレータを制御することが可能になります。
参考
-
HAXMは仮想マシン上で仮想化を行うことは出来ません ↩
Author And Source
この問題について(リモートマシンのエミュレータとadbで接続して開発する), 我々は、より多くの情報をここで見つけました https://qiita.com/shyne/items/149c2b44a6cc170ba684著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .