Ubuntu Weekly Recipe

第468回 UbuntuにAndroidアプリをインストールする

この記事を読むのに必要な時間:およそ 4 分

Anboxアプリケーションマネージャー

Anboxを利用するためには,Anboxアプリケーションマネージャーを起動します。これはAndroidで言うところのドロワーです。起動にはDashでAnboxを検索して実行するだけです。ちなみに/var/lib/snapd/desktop/applications/anbox_anbox.desktopから,/snap/bin/anboxをオプション付きで実行しているため,その手順を踏めば端末からでも起動できます。

図1 Anboxアプリケーションマネージャー

画像

すでにいくつかのアプリはインストール済みです。ただし当然のことながらGoogleの認証を経ていない環境ですので「Google Play」に相当するストアアプリは存在しません。独自のアプリをインストールしたければ,apkファイルを入手した上でホストシステムから以下のコマンドを実行する必要があります。

$ adb install base.apk

特定のapkファイルの入手方法はいくつか存在します。もしインストール済みのAndroidスマートフォンが存在するのであれば,以下のようにadbコマンドで取得する方法が一番簡単かもしれません。なお,開発者モードをあらかじめ有効化しておいてください。

$ adb devices
(対象のスマートフォンのデバイスIDを確認する)
$ adb -s デバイスID shell pm list packages
(インストール済みのパッケージリストが表示される)
$ adb -s デバイスID shell pm path パッケージ名
(apkファイルのPATHが表示される)
$ adb -s デバイスID pull apkファイルのPATH

ちなみにapkファイルを入手したからといって必ずAnboxで動くとは限りません。むしろ動かないアプリのほうが多いかもしれません。

他にも「Settings」を起動すれば,Androidのシステム設定アプリが立ち上がります。⁠Language and Input」において「日本語」を選択すれば,UIを日本語化することも可能です。一応ソフトウェアキーボードの選択画面もありますが,Anbox上だとうまくソフトウェアキーボードが動かないようです。

FLOSSアプリストア「F-Droid」

F-DroidはFLOSSなAndroidアプリを公開しているアプリストアであり,そのストアアプリです。FLOSSであるということはとどのつまり再配布の自由が保証されているため,このように独自のストアを構築することも可能なのです。

F-Droidアプリをインストールしておけば,Google Playと同じ感覚でアプリを検索・インストールできます。

$ wget https://f-droid.org/FDroid.apk
$ adb install FDroid.apk

図2 F-Droidの起動画面

画像

図3 インストールは「INSTALL」ボタンを押すだけ

画像

インストールしたアプリに対して,Desktopファイルが$HOME/snap/anbox/common/app-data/applications/anbox/に自動生成されます。つまりAnboxアプリケーションマネージャーを起動しなくても,他のUbuntu上のソフトウェアと同じように,Dashから検索・起動できるわけです。このためAnboxへのアプリのインストール方法は特殊ですが,インストールしたあとの起動方法は他のソフトウェアとそこまで違いはなくなります。

Anboxの仕組み

Anbox自体はLXCを使って実装されています。つまりAndroidエミュレーターのルートファイルシステムをコンテナと起動し,その中で諸々のサービスを立ち上げています。anboxコマンドは,そのコンテナ内部のサービスとのインターフェースとなっているわけです。

LXCそのものはホストにインストールされたLXCではなく,snapパッケージの一部として提供されます。サイズがコンパクトになるようにLXCの多くの機能(主に外部API)を無効化しています。anboxコマンドの本体はC++で書かれたアプリケーションです。LXCのC++ APIを使ってAndroidコンテナを管理しつつ,qemudなどを利用してホストとAndroidコンテナの間の連携を取り持ちます。

この仕組みはUbuntuだからこそ実現できるというものではなく,他のLinuxディストリビューションでも容易に移植できるはずです。実際,Ubuntu Touchの後継となるUBportsの開発者は,将来的なAnboxのサポートを表明していますし,実際にOnePlus One上では動いているようです※2⁠。

※2
ただしUBportsの特定の開発者の「先走り」っぷりには他のコミュニティメンバーから公開書簡が送られたりそれに対して当該開発者が反論したりと,特定のサイトが喜びそうな展開になりつつあります。よって,実際にサポートするまでは今しばらく時間がかかるものと思われます。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。