Androidのエミュレータを比較 Nox、BlueStacks、LD、Memu、Mumu、Wakuoo、Gameloopなど。
Androidのエミュレータ比較をしてみるよ
Androidエミュレータを比較しているようなサイトがあるようで意外とないと思わない?
機能の比較とかはどうでもいいんですよ。性能とかはエミュレータ作っている会社が発表してたりして、本当にどうなの?ってところが不明だし、自分の使いたい機能があるの?ってのもよくわからない。
と、いうわけで2022年4月時点の人柱環境でやってみるよ。もう。
比較ポイントは以下。
1.Geekbench5.4.4の性能比較
2.Geekbench5.4.4使用時のPCのCPU使用率、メモリの使用率適当比較
3.Adbがつかえるか確認
4.楽天Carアプリ1.14.0でRoot化判定されるか確認
5.その他
4.はVer1.13.0まではBluestacks4で普通に使えていたんだけど、Ver1.14.0になったらRoot化していないのにエミュレータだとRoot化を検知するという仕様に代わったっぽい。たぶん。そしてRoot化している実機ではRoot化検知されないという謎仕様。
それぞれ64bitのexeがあるものは64bit版。可能な限り4CPU設定、RAM4GB設定。内部解像度は1920x1080でタブレット式。Android 7以上のものだけ。ほんとはAndroid 7でも古いと思うけど。
NoxPlayer 7.0.2.6 (Android 7)
まずはNox Player 7.0.2.6 (Android 7)
デフォルト起動では4CPU、4GBメモリ。Android 7.1.2。apk/xapkでGeekbench/Antutu/楽天Carアプリをインストール。ここまでは順調。
GeekBenchの結果は以下の通り。CPU使用率は33%(12コアのPCなので4コアを目いっぱい使っていることになる)、メモリは730MB程度。
つづいて楽天Carアプリ。
はい、ダメ。Root化してないけどね。
つぎ、adbはnox_adb.exeをつかう。nox_adb.exe rebootでリブートしたものの、戻ってこない。コマンドを強制終了して、nox_adb.exe devicesでもリストされず。NoxPlayerを一度終了させて、再実行して確かめてみる。
nox_adb devicesの結果62001のポートで接続していることがわかる。
nox_adb rebootすると、いったんそれが切れてしまい、戻ってこなくなる?
nox_adb devicesを再び行うとリストされないので、再び
nox_adb connect 127.0.0.1:62001
で接続できて、
nox_adb shell am start -n jp.co.rakuten.carlifeapp/.splash.SplashActivity
で楽天Carアプリが起動する。
つぎはマルチインスタンスのときのadbも確認しよう。ついでにAndroid9版のNoxもセットアップ。
binフォルダにあるMultiPlayerManagerを起動してエミュレータを追加でAndroid9を選ぶ。
Android9が立ち上がったところで、nox_adbのリブートなどを試してみる。
Android9のほうは正常に反応するみたい。
というわけでAndroid 7/9ともにいったん落とす。
Nox Player 7.0.2.6 (Android 9)
Nox Player 7.0.2.6 (Android 9)のテスト。
こっちはデフォルトで2CPU、RAM3GBになっていたので4CPU、RAM4GBに変更。
GeekBenchの結果は以下の通り。CPU使用率は33%、メモリは700MB程度。Android 7とほぼ一緒。
あと、楽天Carアプリはやっぱりダメ。adbは一緒なので省略。
BlueStacks 5.7.1064 (Android 7)
次はBlueStacks 5.7.1064 (Android 7)。BlueStacksはダウンロードがAndroid 7の32bit/64bit/Android 9の64bitのインストーラがあるが、中身が全部一緒。どうもファイル名でインストールする対象が決まるみたいで、ファイル名がわかりにくいからとリネームしてしまうとAndroid 7の32bit版がインストールされるみたい。(あとでインスタンスを追加するときに選べるので、そこまで気にしなくてもいい。)
環境はデフォルト4CPU/4GBだったが、解像度が1600x900になっているので、1920x1080に変更。
GeekBenchの結果はNoxより25~30%程度いいスコア。CPUは33%使用でメモリは510MB程度。速いね。
次はadb。しかし、うまく行かなかった。
rebootが封じられているのかと思ったらshellも使えない。そうでした。BlueStacksはデフォルトでadbは使えないのでした。
オプションでadbを設定して再起動。
今度はうまく行った。ちなみに、hd-adb rebootではリブートせずにシャットダウンして終わってしまう。
楽天CarアプリはこちらもRoot化検知されてしまうので使えない。もちろんRootモードではない。
つづいて、マルチインスタンス。Android 9のインスタンスを作ってみる。
こんな感じで、Pieの64bit版をインストール。
BlueStacksの2インスタンス目はadbサーバーに自動で接続してくれないので、connectを使って接続する。ポート番号はオプションでadbを有効にするときに書いてあるので、それを使えばいい。
ちなみに楽天CarアプリはRoot化検知で立ち上がらない。
と、いうことで、たちあげた2つのインスタンスをいったん終了させる。
BlueStacks 5.7.1064 (Android 9)
ではBlueStacksのAndroid9の性能チェック。GeekBenchの結果はここまでで一番いい。NoxのAndroid 9の25~30%ほどいいスコア。CPUは33%は一緒、メモリは770MB。
adbも楽天Carアプリも結果は一緒なので、省略。
LD Player 4.0.79 (Android 7)
次はLD Player 4.0.79 (Android 7)。
こちらはデフォルトは4CPU、RAM 8GB、解像度 1600x900だったので、4CPU/4GB/1920x1080に変更して再起動。
解像度は内部解像度と物理解像度が一緒のようで 1920x1080だとうちのディスプレイだとはみ出す。
では、まずGeekBenchから。ちなみにapkのインストールがものすごく速い。Noxより若干悪い結果に。意外。もっと速いかと思っていたけど、そうでもなかった。CPUは33%使用、メモリは640MB程度。
つづいてadbは、LD Playerも最初にオプションでadbを使えるようにする必要がある。
他の設定のADBデバッグを「ローカルエリア接続を有効にする」に設定。
ポート番号を netstat -ano をつかって一応確認すると、5555。LD Playerはadbのモジュールは付属していないので、一般のplatform-toolsのadbを使用する。(私の環境はpathを通してあります。)よく見たらC:\LDPlayer\LDPlayer64\adb.exeがあります。
普通のadbを使ってコントロール可能。
そして楽天Carアプリ立ち上げてみると…。
うわ。ちゃんと立ち上がった。これは意外。
※2022/5/3追記。マルチインスタンスで別のインスタンスではなぜかRoot化検知した。同じアプリバージョンでも最初にインストールしたインスタンスではやっぱりOK。謎過ぎる。
LD Playerはマルチインスタンスはできるけど、Androidのバージョンが選べたりするわけではないので、今回は検証特にしない。ただ、かるく試してみたところ2インスタンス目のadbの接続先ポートは5557だった。明示的にconnectをしなくても使えた。
LD Player 9.0.13 (Android 9)
2022/8/5追加。7月にどうやらβリリースしたようで、今までAndroid 7だったのがAndroid 9になり、わかりやすくLDPlayerの番号も4から9に飛んだ。
インストールはなにもしなくてもLD Player4とは別のフォルダにインストールするので、上書きとかは気にしなくていい。LD Player9は64bit版しかないのかな?分かれてはいなかった。
ではまず、GeekBench。CPU使用率は33%、メモリは550MB程度とメモリ使用率は少な目で、スコアはBlueStackとほぼ同じぐらいでかなり速いほう。
adbについてはLD Player9もオプションで設定化必要。
adb.exeはデフォルトインストールならC:\LDPlayer\LDPlayer9\adb.exeを使用。さらに楽天Carアプリの最新版。
向きは自動回転を止めたので倒れたまま表示となっているが、Root化検知しない。LD Player4のときはマルチインスタンスではRoot化検知したが、今回はマルチインスタンスでもRoot化検知せず。Memu Player 7.6.6 (Android 7)
つづいては、Memu Player 7.6.6(Android 7)。テンセントだから、中国でもしっかりした企業かと思っていたのにインストール時にMcAfee他余計なものをインストールさせようとするし、立ち上がった後に動画広告とか自動で表示したりで、それだけで嫌。日本語もめちゃくちゃ。
一応、設定でデフォルト4CPU/RAM 6GB/解像度 1600x1000になっているのを他と同じに変更。レンダリングはDirect Xがデフォルトで選ばれているが、ほかと条件を合わせるため、Open GLに変更。
まずはGeekBench。CPU33%、メモリ890MB程度。スコアはほんの少しだけNoxより上。
adbはMemuのインストールフォルダにadb.exeがある。adb devicesすると、ポート番号21503で使えるようだ。
ただしrebootをしてしまうと見た目は立ち上がったままで、まったく操作できなくなる裏シャットダウン状態。
楽天CarアプリはRoot化検知で立ち上がらず。これもだめ。
Android 4とAndroid 5もあるが、Android 7(正式版)とAndroid 7(64bit)というのが別々に選べる?もしかして、デフォルト32bit?たしかにGeekBenchの結果に32bitとなってる。
と、いうわけで64bitのインスタンスを立ち上げてGeekBench動かしてみることにする。以下に一応、結果を記載するが、スマホのモデルが変わっただけで、32-bitのままだった。どゆこと?数値も一緒だし。
ま、いいか。adbのポートは2インスタンス目は21513だった。それと、Memuは終了してもMEmuSVCというサービスを立ち上げたままにするので注意。何しているかわからないのがちょい心配。
MuMuPlayer 9.0.1.0 (Android 9)
次はMuMuPlayer 9.0.1.0(Android 9)。安定版はAndroid 6だけど、OSとしてちょっと古いので評価しない。
一応、設定でデフォルト4CPU/RAM 9GB/解像度 1440x810になっているのを他と同じに変更。レンダリングはDirect Xがデフォルトで選ばれており、こちらもほかと条件を合わせるため、Open GLに変更。レンダリング加速の項目はデフォルトチェックが入っていないので、そのままとする。
Apkのインストールはドラッグ&ドロップではできず、画面端の「+APK」のボタンから選ぶ必要がある。
まずはGeekBench。CPU33%、メモリ790MBほど。スコアはBlueStacksとほぼ同じ。Android 9ではほんのわずか遅い。
つづいてadbを試してみる。MuMuの場合はemulator\nemu9\vmonitor\bin下にadb_server.exeがある。
「adb_server devices」しても接続はされていない。MuMuのオプションにもadb関連項目はなし。
ポート番号を推測。7555かな?
7555で接続できた。rebootは正常に再起動される。
楽天CarアプリはRoot化検知でダメ。
MuMuはAndroid 6版はマルチインスタンス可能だが、Android 9版/11版はまだマルチインスタンス対応していないとのこと。さらにAndroid 11版をいれるとAndroid 9版を上書きするらしい。
試しにAndroid 9版とインストールフォルダを変えて入れられるか試そうとしたが、アンインストール必須になっていた。
MuMuPlayer 11.0.0.0 (Android 11)
そういうわけで、MuMuPlayer 11.0.0.0 (Android 11)版をインストール。こちらの評価に入る。設定はMuMuPlayerのAndroid 9版と同じで各種設定を修正する。
GeekBenchの結果。CPU33%/メモリ790MBほど。スコアはAndroid 9よりほんの少し悪い。
adbや楽天Carアプリの起動については全く同じなので省略。
Wakuoo 1.0.0.9000 (Android 7)
つぎはWakuoo 1.0.0.9000 (Android 7)。Noxのチームが作っている別のエミュレータ。性能関連の設定はデフォルトで4CPU/RAM4GB/解像度1920x1080のOpenGL+となっており、特に修正は不要。
GeekBenchをインストールしようとしたが、Wakuooの場合、APKを直接インストールする機能はない。最低限GooglePlayでアカウントのログインが必要で、そこからChromeだけはインストール必要。まあ、ついでにPlay Storeから入れてもいいんだけど、ChromeでApkのあるページに行って、ApkをダウンロードしてインストールするのがWakuooのチームの標準だそうです。
で、GeekBenchの結果はNoxよりはいいけど、BluestacksやMuMuよりはスコア低い。CPU33%でメモリは950MBほど。そして結果を見ると32bitなのね。
adbはまだ未対応?
プロセスに紐づくLISTENポートがたくさんあるが、それっぽいポート番号じゃない。で、全部connectを試してみたが、下のようにすべてfailedになってしまった。
と、いうことでadbは未対応かもしれない。
楽天CarアプリはRoot化検知のためダメ。
GeekBenchの値はなかなかいいが、このエミュレータ動かすと、そもそものPCの動きがいちいち反応が悪くなるのと、エミュレータ自身もカクカクするので非常に使いにくい。どっちかというと実機スマホのミラー機能でPCから実機スマホを操作できるのが特徴なので、そういった使い方するならいいかもしれない。やっていないけど。いずれにしろ、まだまだ発展途上感がある。
今後Android 9や64bit対応する気はあるみたい。
Noxと同じく、終了してもタスクトレイに残っている。これを終了(「戻る」を選択)して、Wakuooのプロセスが落ちる。
Gameloop 1000218456(Android 7)
Gameloop 1000218456(Android 7)は、インストール後にエミュレータそのものではなく、プラットフォームだけ立ち上がるイメージ。Wakuooと同じ。とりあえず右上からローカルAPKインストールを選んで何かをインストールしないとエミュレータ起動も設定もできないっぽい。
アプリを起動すると設定ができるようになるが、主な設定はエンジン設定の中にある。adbの有効化も含め、スクロールすることで出てくるのがちょっと見逃しがち。デフォルトの設定値はよくわからないが4CPU/RAM 4GB/解像度1920x1080/Open GL+に設定する。ただ設定を保存しただけでは勝手に再起動などはしてくれないので、自分でいったん手動で落として再立ち上げする必要がある。
さて、GeekBenchを試してみる。結果はNoxなどより若干高いスコア。32bitなんだね。これも。CPU33%/メモリはCPUを使っているプロセスは130MB程度だが、AndroidEmulatorEx.exeというプロセスが630MBぐらい使っている。ほかのエミュレータと違って、本体のプロセスとアプリ実行のプロセスが分かれている形式なのかな。そこが特徴的と言えば特徴的。240DPI設定にしたけど、文字は小さいので結果表示が4画面で収まる。
アプリの一覧とかをだすボタンがなく、上のバーにあるUターン矢印ボタンで1アプリずつ落とす。
つぎはadbだが、Gameloopのuiのフォルダにadb.exeがある。adb devicesしてみるとつながっていない。ポート番号などを調べてみる。
TBoxHeadless.exeのPIDがLISTENしているポートは2つあるが、それっぽいのは5655。
adb connectしてみたらつながった。adb rebootは見た目は何も起きないが、操作はできなくなりしばらくすると、Gameloop本体がアプリがハングしたと検知。再起動を促される。自動では再起動しない。ふたたび何らかのアプリを立ち上げてから、adbを接続してみる。
と、いうことで普通にadbも使えました。
楽天CarアプリはRoot化検知で動かず。アプリの起動とかがちょっと使いにくいなぁ。
まとめ
と、いうことでまとめ。
エミュレータ | Android
バージョン |
GeekBench
シングルコア |
GeekBench
マルチコア |
メモリ使用量
(参考) |
adb
使用可否 |
楽天Carアプリ
1.14.0起動可否 |
---|---|---|---|---|---|---|
Nox Player | 7.1.2 | 560 | 2053 | 730MB | ○ | × |
Nox Player | 9 | 563 | 2046 | 700MB | ○ | × |
BlueStacks | 7.1.2 | 714 | 2621 | 510MB | ○ | × |
BlueStacks | 9 | 736 | 2657 | 770MB | ○ | × |
LD Player 4 | 7.1.2 | 540 | 1965 | 640MB | ○ | ○※ |
LD Player 9 | 9 | 752 | 2724 | 550MB | ○ | ○ |
Memu Player | 7.1.2 | 593 | 2161 | 890MB | ○ | × |
MuMu Player | 9 | 725 | 2551 | 790MB | ○ | × |
MuMu Player | 11 | 705 | 2414 | 790MB | ○ | × |
Wakuoo | 7.1.2 | 607 | 2161 | 950MB | × | × |
Gameloop | 7.1.2 | 576 | 2130 | 630MB+130MB | ○ | × |
※2022/5/3追記。マルチインスタンスで別のインスタンスではなぜかRoot化検知した。同じアプリバージョンでも最初にインストールしたインスタンスではやっぱりOK。謎過ぎる。
GeekBenchのテストは1回ずつしかやっていないから、統計的な確からしさはいまいちだけど、まあ総合的には速度、メモリ使用量などからBlueStacksが最もよさそう。
ただ、唯一のほぼ最新であるAndroid 11に対応しつつ、速度も申し分ないMuMuPlayerもよい。
このどちらかを使えばよさそう。Noxは意外と性能は良くないというか凡庸という結果に。
あとは唯一、どういうわけか楽天CarアプリのRoot化チェックに引っかからないLD Playerは特定の目的で使える可能性があるかも。
※2022/8/5 LD Player 9が現時点ではわずかではあるがさらに速い。また、これまで不安定だったアプリの安定性もかなり増したように感じ、一気に有力なエミュレータに。
あと、GeekBenchのapk版を入れたけど、これ、x86/x64のネイティブライブラリが含まれているので、ARMv7/v8しか対応していないアプリだと、もっと差が出ると思う。
(GeekBenchのxapk版はARMしか対応していなくて、これもBlueStacksが強かったが、MemuやMuMuにインストールできないなど、比較できなかったのでapk版でベンチを取った。)
コメント
コメントを投稿