この記事では、LinuxシステムでAndroidアプリを動かしたり、スマホゲームを遊んだりするための、無料の「Androidエミュレーター」ソリューションをいくつか紹介します。
概論#
市場にはBlueStacks、NOX、LDPlayer、MEmu、Google Play Games on PCなど、多くの商用Androidエミュレーターがあります。形はいろいろですが、結局のところx86 PC上でx86またはARMアーキテクチャのスマホゲームを遊べるというものです。多重起動、放置周回、キーボードマッピングも難しくありません。
Windowsに多数存在するAndroidエミュレーターと比べると、GNU/Linuxシステム(Ubuntu、Fedora、Arch Linux、openSUSE、Gentoo、ChromeOSを除く)の選択肢はかなり少ないです。Windowsで有名なAndroidエミュレーターの多くはLinux版を出していません。初期のLinuxでは「Genymotion」と「Android Studio」くらいしか使えず、この2つは基本的に開発者向けで、ゲーム用途には使いにくいものでした。
また、上で述べたWindows向けAndroidエミュレーターは、Wineを使ってもLinuxでは動きません。
幸い、近年は状況が改善してきました。LXCコンテナ技術を使うAnboxとWaydroidの登場により、LinuxでもAndroidアプリを実行できるようになりました。LinuxのQEMU/KVM技術を利用して、高効率なAndroid-x86仮想マシンをインストールするのも堅実で実用的な方法です。
いまでは、LinuxユーザーがPC上でAndroidアプリを動かしたりゲームを遊んだりしたい場合、オープンソースソフトウェアで構成されたソリューションを使って「Androidエミュレーター」に近い効果を実現できます。ついでに商用Androidエミュレーターにありがちな企業案件や広告表示からも離れられます。
1. Waydroid#
WaydroidはCanonicalが開発したAnboxに由来し、LXC技術を採用しています。コンテナはLinuxとカーネルを共有し、Androidシステムを実行します。開発チームはBliss OSの開発も担当しています。
Anboxは基本的に開発が停止しており、Waydroidがそれに代わる最も有名なAnbox後継となっています。
特徴:
- ライセンス:GPLv3
- LXCコンテナは非常に軽量で、実行効率は仮想マシンやエミュレーターよりかなり高く、PCのGPUを有効活用してゲーム性能を加速できます
- LinuxシステムとAndroidクリップボードを共有し、アプリをウィンドウモードで操作できます。まるでネイティブLinuxアプリのような操作感で、MicrosoftのWSAに似ています
- Google Playストアを内蔵
- x86とARMのイメージを提供しており、x86 PCでもRaspberry Piでもデプロイできます
- Waydroidを動かすにはWayland表示プロトコルのデスクトップが必要です
- Waydroidは多重起動に向いておらず、1台のPCにインストールできるAndroidバージョンは1つだけです
- ARMトランスレーターを手動でインストールする必要があります
- 現在Nvidia GPUには対応しておらず、Mesaオープンソースドライバーを使うIntelとAMDなどのGPUのみ対応しています
インストール手順はこちらをご覧ください。
2. ReDroid#
DockerコンテナでAndroidシステムを実行し、さらにScrcpyでデスクトップに接続します。開発者の本来の意図はサーバー上にクラウドスマホを構築することですが、デスクトップユーザーもこの方法を参考にできます。
特徴:
- ライセンス:Apache
- x86とARMアーキテクチャのイメージを提供しており、x86 PCでもRaspberry Piでもデプロイできます
- GPUハードウェアアクセラレーションに対応
- ARMトランスレーターを提供
- Google Playストアは自分でインストールする必要があります
- Dockerコンテナの特性によりサーバーへ素早くデプロイでき、Scrcpyでリモート接続できます
- Dockerコンテナはリソース消費が少なく複製も容易なので、多重起動も可能です
- インストール手順はやや煩雑で、うまく使うにはDockerの操作知識がある程度必要です
- 現在Nvidia GPUには対応しておらず、Mesaオープンソースドライバーを使うIntelとAMDなどのGPUのみ対応しています
インストール方法はReDroidをご覧ください
3. Android-x86仮想マシン#
Android-x86仮想マシンは、長く開発されてきた同名プロジェクトに由来します。物理PCにインストールできるだけでなく、仮想マシンにもインストールできます。
ただし、オリジナルのAndroid-x86はAndroid 9以降ほとんど更新されていません。
近年はAndroid-x86ベースの「Bliss OS」が登場し、非常に活発に更新され、Android 15まで対応しています。
特徴は以下の通りです:
- ライセンス:Apache
- Android-x86は完全なOSで、Android 7からAndroid 15までISOがあります
- ほぼオープンソースソフトウェアで構成されたソリューションで、システムはクリーンかつ広告なしです
- 仮想マシンにデプロイできるほか、Microsoft Surfaceなどの物理機にメインシステムとしてインストールすることもできます
- ARM → x86アーキテクチャ変換に対応し、より多くのスマホゲームをサポートします
- GPUパススルーなしでもVirGLで3Dハードウェアアクセラレーションを実現でき、Intel、AMD、Nvidia GPUに対応します
- 多重起動の可能性があります
- Google Playストアを内蔵
- 仮想マシンのバックエンドにはQEMU/KVM、VirtualBox、VMwareなどを選べます
- 仮想マシンなのでGPUアクセラレーション能力には限界があります
- x86アーキテクチャのPCのみ対応
QEMU/KVMでAndroid-x86仮想マシンを動かす手順はこちら:Bliss OS QEMU VM。
4. Android StudioのAVDエミュレーター#
Android Virtual Device、略してAVDは、Google公式が開発するAndroidエミュレーターで、Android Studioに付属しています。
特徴:
- ライセンス:プロプライエタリソフトウェア
- 主にAndroidアプリ開発用で、他の方案と比べると比較的成熟しています
- クロスプラットフォームで、同じソフトウェア一式をWindowsとmacOSでも使えます
- ADBとRootを使用できます
- 複数のスマホ機種をエミュレートでき、技術的には多重起動も可能です
- Google PlayとARMトランスレーターlibndkを内蔵
- GPUグラフィックアクセラレーションを提供し、Intel、AMD、Nvidia GPUに対応します。
- Android Studio実行時は非常にリソースを食いますが、AVDエミュレーターはAndroid Studioに依存せず単独で実行するよう設定できます
- x86アーキテクチャのPCのみ対応
参考手順:Linux + Android AVD
5. Genymotionエミュレーター#
クロスプラットフォームの商用Androidエミュレーターです。
特徴:
- ライセンス:プロプライエタリソフトウェア
- インストールが最も簡単
- 実行時にQEMU/KVMまたはVirtualBoxに依存します
- さまざまなスマホ機種のエミュレーションを提供
- スクリーンショット、録画、ジェスチャーのシミュレーションに便利なクイックボタン操作を提供
- ARMトランスレーターを内蔵
- Intel、AMD、Nvidia GPUグラフィックアクセラレーションに対応。
- 使用には登録が必要
- 無料版では画面上にウォーターマークが表示され、使用の妨げになります。ライセンス購入が必要です
- x86アーキテクチャのPCのみ対応
Linux版Genymotionのインストール手順はこちら
どれを選ぶべきか?#
Nvidiaグラフィックカードのユーザーで、内蔵GPUがなく、面倒な調整もしたくない場合、選択肢はAndroid StudioのAVDとGenymotionだけです。
IntelやAMDグラフィックカードのユーザーなら、選択肢は増えます。Linuxの各種「Androidエミュレーター」方案を比較すると、Waydroidは間違いなく最高性能です。LXCコンテナ技術を使い、Linuxとカーネルを共有するため、計算時の性能損失がほとんどありません。Waydroidの性能は、物理PCにAndroidをインストールしたようなものです。
Android StudioのAVDエミュレーターやAndroid-x86仮想マシン方案と比べると、Waydroidの性能はかなり高いです。特に低スペックPCでは、Waydroidが最も経済的な選択です。私がGeekbenchでベンチマークしたところ、仮想化を一層挟んだAndroidの性能は、最大でほぼ半分近く失われます!つまり仮想マシンの性能を支えるには、より多くのCPUコアを割り当てる必要があります。PCのCPUが4コア以下なら、Android-x86仮想マシンを起動すると全リソースを食い尽くしてしまいます!それに比べ、Waydroidのリソース消費は低いです。
Android-x86仮想マシンのグラフィックアクセラレーションはVirGLに依存しており、この性能はAndroid StudioのAVDエミュレーターよりやや弱いです。
ReDroidについては上級者向けで、クラウドスマホへリモート接続したいプレイヤーに向いています。


