進捗どうですか

以前 Android の Emulator の docker image があると聞いた。

android-developers.googleblog.com

githubリポジトリはここ

github.com

どうも読んでいくと、そもそも Linux で動く Android の Emulator は、Linuxカーネル内で動作する KVM という仮想マシンで動くそうで、これは docker をつかうわけですが、docker guest OS で動作する Android Emulator は docker ホスト OS の kvm を使用するという。

ちなみに docker guest には、タッチイベントなどの入力を扱う gRPC のために envoy という microservice で使う proxy サーバもあるし、nginx で webapp を出力していて、そこで webrtc しているらしい。どうもその二つと Android Emu がやりとりするらしいんだ。ちなみに kvm というのは Intel-vt, amd-vt のような CPU の仮想化支援機能を使いますと。docker のコンテナの仮想化とは違うものです。

Host のハード的な仮想化技術を使うとはいえ、docker の上で仮想マシンが動くわけで、これを Nested Virtualization と呼ぶらしい。

それはいいとして、じゃあまずはローカルで動かしてみようとなったとき、Linux どうするかっていうのがあって、Mac なぼくはしょうがないので VMWare Fusion でやろうとしたわけです。

blog.bungu-do.jp

ビンゴな記事がありました。

docker と docker-compose の install はいいとして、kvm ってどうやっていれんのさ、というのは、公式の Q&A がありました。

help.ubuntu.com

あとは python の環境整えたりして、emulator のダウンロード始めたら

OSError: [Errno 28] No space left on device

とかいいやがったので、VM のイメージサイズを拡張した。

qiita.com

boot delay の設定には助かりました。で、サイズが増えたことを確認して、疲れたのでやめました。kvm とか、全然知らんかった。いまはこんなことになっているのね。しかし Android の docker image というから、普通の Linux の上で動いている Android なのかと思ったら、ちょっと違うんじゃないかしら。