6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

リモートマシンのエミュレータとadbで接続して開発する

Last updated at Posted at 2019-07-14

はじめに

リモートの仮想マシンにRDPでつないでAndroid開発を試みた際、HAXMが動作しない問題1に直面しました。
さすがにリモートの仮想マシンというただでさえ枷の多い環境で、更にエミュレータまで動作に問題があるとなると、開発時のストレスが大変なことになりそうだったので、エミュレータだけローカルで動作させる方法を探してみました。

調査結果

以下のように開発を行うローカルマシンから、エミュレータを動作させるリモートマシンに対してsshでポートフォワーディングを行います。
こうすることで、ローカルのadbなどなど、各種ツールがリモートのエミュレータと接続することができるようになります。

ssh -NL 5554:localhost:5554 -L 5555:localhost:5555 <ユーザー名>@<リモートマシンのアドレス> -p <ポート番号>

接続後、ローカルのadbを再起動することで認識されるようになります。
AndroidStudioからきちんとビルドしたapkをインストールさせて動かすことが出来ますし、Logcatにもきちんとログが出力されますし、ブレークポイントで処理を止めることも出来ます。
軽く触ってみた感じ、ローカルで通常の方法で動作させているエミュレータと遜色ない動作をします。

Peek 2019-07-14 22-58.gif

リモートのWindowsマシンからローカルのUbuntuマシン上のエミュレータを使う

解説

5554はtelnet用、5555はDDMSなどのツール用にオープンされているポートです。これらの通信をリモートに飛ばすことでリモートマシンに存在しているエミュレータを制御することが可能になります。

参考

  1. HAXMは仮想マシン上で仮想化を行うことは出来ません

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?