Linuxコンテナ上でAndroidアプリケーションを動かすAnboxが良い感じなので簡単に外観を紹介します。本記事はUbuntu 16.04上で試しています。
Table of Contents
1 Anbox
AndroidアプリケーションをLinuxコンテナ上で実行するフレームワークです。コンテナのタイプはシステムコンテナです(アプリケーションコンテナではありません)。以下の特徴があります。
- コンテナを実現するのにLXCを使っています。Windowsで動かすにはDockerのようにVirtualBoxが必要になるかもしれません。
- anboxdというデーモンがAndroidアプリケーションのOpenGLESアクセスとホストマシンのOpenGLライブラリを仲介します。
- ashmem等のカーネルモジュールがdkmsパッケージとして提供されます。
- systemdはanbox.xxx.serviceを起動します。anbox.xxx.serviceはAndroidルートファイルシステムをマウントし、その中にあるinitを起動します。このinitはAndroidの各種サービスとanboxdを起動します。
- initの延長でadbdも動作しており、adb経由の操作も可能です。adb devicesではemulaterとして表示されます。
- anboxdの起動後にAndroidアプリケーションのアイコンがラウンチャに追加されます。
- Anboxマネージャ経由、あるいはラウンチャに追加されたアイコン経由で、Androidアプリケーションを起動できます。
現状だとAndroidエミュレータと同様にGoogle Playなしのルートファイルシステムです。今後、Google Playありのルートファイルシステムになると思います。
2 Anboxのインストール
インストールするには以下のコマンドを実行します。anbox-installer自体はsnapとして提供されていますが、snap非対応のディストリでも特に問題はないでしょう。
$ sudo snap install --classic anbox-installer $ printf "1\nI AGREE\n" | anbox-installer $ sudo reboot
アンインストールするには以下のコマンドを実行します。
$ printf "2\nI AGREE\n" | anbox-installer $ sudo reboot
3 実行例
Androidのルートファイルシステムがマウントされます。
UnityのラウンチャにAnboxとAndroidアプリケーションのアイコンが追加されます。