このブログの読者各位には釈迦に説法だと思いますが、あるコンピュータ上で別のOSやアーキテクチャのシステムを動作させることは現代では全くもって難しいことではありません。
Androidエミュレータもそのうちの1つで、WindowsやMacなどのPC上でAndroidを実行する→スマホ専用アプリや各ゲームをPCで遊べるなどのメリットを享受できます。
Androidエミュレータといえば NoxPlayer という老舗ソフトが昔からの定番で、今回もこれの紹介がメイン。
だいぶでかいバージョンアップをしたらしく、実際のところ中身もかなりパワーアップしていたのでその辺りをドドンとお届けする!
お話を頂いてのPR記事ではあるけど、僕も昔から何度も使ってきたソフトということで愛着はかなりあります。楽しくレビューできました。
0.Androidエミュレータ is 何
読み飛ばしていいです。
(飛ばす方はこちらから次へ行けます)
…が、せっかくなので今回は少し技術的な観点からエミュレータおよびAndroidについて説明をしてみます。これは僕の勝手な趣味です(記事本来の趣旨的には蛇足)。
1.コンピュータの仕組み
コンピュータは多数の層構造によって成り立っていると理解しておきましょう。
このように、
- 下へ行くほど現実世界のハードウェア部品の概念に近づく
- 上へ行くほどより具体的なソフトウェア要素(アプリケーション)に近づく
というレイヤー構造になっています。ITの世界ではこの概念は色々なところで用いられていて、どこへ行っても「下が広い概念や僕らが実際に認識できる物理要素、上がプログラムっぽいもの」という棲み分けになっています。
本来この図が示しているのは「上に乗る要素は下に依存する」という事実なのだけど、これを逆手に取るのが「エミュレータ」および「仮想環境」などと呼ばれるものです。
2.「エミュレート」って実際何が起きてるの
IT系の話題で「エミュレート」とか「仮想」とかみたいな言葉が出てきたら、パッケージ化して丸ごと乗せてるみたいに思うと分かりやすいです。
さっきの図だとこういう風になっていて「OSの上にはアプリケーション類しか乗らない」ということになってましたね。
それがこうなる。
「別のコンピュータシステム丸々1つをさらにアプリケーションみたいに扱ってしまおう」という考え方。
これによって、例えばmacOS上で動いているマシンの上でWindowsを動かしたりなどができるようになるわけだ!(実際にはBoot Campは仮想化の技術ではないので例としては微妙だけど)
他にもエミュレータで有名なものといえば、各種コンシューマーゲーム機類のエミュがありますね。
これも別のハードウェアアーキテクチャに載っていたものをPC上で動かしているという意味ではエミュレータですね。
さすがに実際にどういう処理で動かしているかまでは知らないので、もしかしたら厳密には間違っているかも。例えばマイコンをリバースエンジニアリングして同じような処理で動くように別のプラットフォーム上でシミュレートしているだけ、かもしれないし(その場合は「シミュレータ」ですね)。
3.Androidエミュレータはどういう感じ?
で、これがAndroidだとどうなるかというと、技術的にはちょっと楽です。
楽というと語弊があるのだけど、一般論としてはみなさんもその違いは理解しやすいです。
AndroidというOSは、これ自体が既に仮想環境で動いているようなものなんですよね。
※例によって厳密には違う点が多々あるのですが、大枠を優先して端折ります。
これはAndroid自体のシステムアーキテクチャ図ですが、中央右あたりに「Android Runtime」というのがありますね。Runtime というのはバーチャルに動かす環境みたいに思ってよいです。
Androidの上層~中層で動作するアーキテクチャ(およびプログラミング言語)であるJavaというものも、そもそもがJava VM(Virtual Machine)という仮想マシン上で動作する仕組みです。
結果として、AndroidというOS単体で見てもミルフィーユのようにたくさんの層構造になるわけだ。
で、ここまで来ると話は簡単。
要は「既に動いている仮想環境(=Android)を丸ごと扱える状態になっている」ということですね。これはイメージがつきやすいと思います。
Androidエミュレータがだいぶ昔から盛んで知名度が高かった理由もこういうことなんじゃないかなーと個人的に思っています。もちろん技術的には「はい乗っけて終わり」ってわけじゃないのはそうなんですが、比較論でいえば他のOSより相性はいいのでは、と。
ちなみにAndroidをエミュレートしたいとき、スマホアプリの開発に使用する Android Studio という統合開発環境を使う手もあります。
これは誰でも無料で使えるので、エミュレータそのものに興味がある方は試してみるといいかもしれません。まあ設定の保存とかはそれないに知識がないと手軽にはできないけれども。
ちなみに同じ理論でMac専用アプリの X Code というのを使うとiPhoneのエミュレートもできるぞー!
1.NoxPlayerが他のAndroidエミュレータより優れているところ
いつものごとく本筋と関係ないくだりで3,000文字も使ってしまったけど、気を取り直して進めよう。
Androidエミュレータがどういうものか具体的なイメージが湧いたところで、「NoxPlayerが他のエミュレータと比べてどう優れているか?」をまずはまとめておきたいわけですな。
これをちゃんと把握するためにはエミュレータについてちゃんと分かっておく必要があるということで、実はさっきまでの前置きは計算されていたわけなのだよ(ごめんなさい)
3つ書きます。
1.単純に速度と安定性が秀ですぎている(正直他を選ぶ必要がないレベル)
もうこれ以上説明することもないくらいなのだけど。
NoxPlayerは動作速度(スピードと軽さ両方)と安定性において普通に最強だと思います。特別な理由がない限り他のものをわざわざ選ぶ必要がないと僕も本当に思います。
エミュレータというのはその性質上、どうしてももっさりとした動きになってしまいがちです。実際のハードウェアは現実世界の僕らのマシンが動いているわけで、そこまでの距離が遠くなれば色々うまく行かなくなってしまうのはみなさんも想像がつくと思います。
ところがNoxPlayerはゲーム向けをウリにしているだけのこともあり、まあヌルヌル動きます。特にゲームは最適化されている印象が強くて僕もだいぶ驚きです。
僕はスマホゲームって全くやらないんですが、今回NoxPlayerのレビューにあたりゲームを起動してみたら想像以上でかなりビビったというわけです。
さらに言うと、スマホ本体でゲームをやるときの多くの不都合をなくせます。
- 本体の発熱、それによるバッテリーへのダメージ
- 単純に充電とか気にしなくていい
- マルチインスタンス(エミュレータ自体を複数起動できる)のでスマホアプリの同時実行が可能になる
などなど。
これはまさにエミュレータそのものが持つメリットの本質であり、別の環境上で動かしていることだからこそできることです。特にマルチインスタンスは知らなかった人にはヤバい機能かも。
スマホゲームって本当によく知らないけど、なんか時間が経つのを待ったりすることってよくあるんでしょう?その間にも他のゲームできちゃうとかそういうことですよ…!
後半の話はエミュレータ自体のメリットなのでNoxPlayerならではではなかったけど、それでもマルチインスタンスしたときの動作安定性が高いなどにやっぱり繋がってくると思いますよ。
2.独自の設定、特にゲーム向け環境セッティングが豊富
エミュレータを使ったことがない方には想像がつきにくいと思いますが、エミュレータを起動すると「Androidの世界の中にあるいつもの設定」に加え「エミュレータ自体の設定」という概念にも当然アクセスできるようになります。
これはつまり「各エミュレータで如実に差が出るところ」であり、もっというとNoxPlayerが他との差別化に成功している部分でもあるはず。
例えば分かりやすいところでいうと、グラフィックスを中心とした性能制御がかなりちゃんとしてます。
ホストマシンの性能もちゃんと有効に活用できるような設計が考えられており、さながらPCゲームの設定に近いおもむき。あとは「右クリックを戻るアクションにする」みたいな便利設定もなかなかナイスです。
その他ズバリ「ゲーム設定」なんてのもあるし、
エミュレータする端末やIMEI(モバイル端末固有のIDみたいなもの)をアサインすることもできます。
また、そういういわゆる「設定」的なものとは別に壁紙切り替えなどもサポートされています。
まあこれだけ揃っていればAndroidをエミュレートするのに困ることは基本的にないはずなので、ほぼ全てのニーズを満たせるかと。
そういう意味でも他を選ぶ必要はほとんどないのかなあと思う次第です。
3.Android 9に対応してしまった
ほんでね、今回はお世辞抜きでマジですごいです。
これまでのNoxPlayer以外も含む各AndroidエミュレータはAndroid 7までしか対応していなかったところ、今回のアプデでいきなりAndroid 9に正式対応になったとのこと。
これはつまり最近のゲーム含むほぼ全てのアプリがちゃんと動作するということであり、ゲーム目的の人はもちろんAndroidの仮想環境として各使用用途に十二分に適うことになったわけです。
僕も過去にAndroidカスタマイズやら裏ワザハック的な感じでPCからAndroidアプリを制御しようと何度も試みてきたわけですが(Java書けないマン…)、そのほとんどはバージョン的に非対応とかそういうつまらない理由で頓挫してました。
ところが今回の情報を見るに、その辺のデメリットはほとんど払拭されていそう…!
というわけで次から実際にAndroid 9対応版を起動して色々見てみるぞ。
今回はリリース前の非正式版を特別に用意してもらえました。なので細かい安定感とかは記事の内容からは除外してます~。
2.2021年アップデート内容①:めっちゃ軽くて速くなった!
今回のアップデートで全体の性能が凄まじく上がっています。
わりとアピールされていたので「正直どこまでホントかな?」と思っていたのだけど、これはけっこうな差があると感じました。
そもそも今回のアップデート内容の目玉はAndroid 9に対応したことなんですが、それはつまりその次点で動作の快適感も向上していることになるんですよね。
AndroidやWindowsが特にそうなんですが、サポートする端末の種類があまりにも幅広すぎるために、作ったOSが一種類しかないと低スペックなマシンに適応できないという問題がありました。
これを改善するため、例えばWindowsはWindows 10にするときに「これまでにないくらいエントリーモデルPCでも快適に動くような軽量な設計を心がけた」ということになっているわけです。Androidも似たような考え方を汲んでバージョンアップデートしています。
つまり今回のNoxPlayerも、エミュレートするAndroidのバージョンが 9 になっただけでそれらの恩恵をいくらか受けていると考えても不自然ではないわけですね(どこまでのもんかは分からんけど)。
とはいえ、今回はかなり差を感じたのでNoxPlayer自身の進化がめざましいのは言うまでもないでしょう。
試しに今回もらったAndroid 9版と現在の正式リリース版(Android 7版)で軽く比較してみます。
使うのはGeekbench 5。
とりあえず同じ条件でテストしてみればいいかなーという軽い気持ちで、CPU BENCHMARKにしてみます。
Android 9対応版の結果はこんな感じでした。
ほうほう。絶対値的にはどの程度の値なのか全然分かりませんが、これを現在の正式リリース版であるver.7.0.1.0と比較してみましょう。
Geekbench 5を起動してみます。
あれ、CPUが僕のホストPCのものになっている。笑
不穏ですがとりあえず続けてみます。
で、結果は…。
お、やっぱりちゃんと上がってましたね。
Android 9版 | Android 7版 | 上昇率 | |
シングルコア | 1335 | 1069 | 25%アップ |
マルチコア | 4503 | 3654 | 23%アップ |
スコア 1 分に相当する価値がどのレベルか分からなくとも、比較論で25%もアップしているならこれは「性能が良化した」と言うには十分なものではないでしょうか。同じアプリケーション内でここまで数字が変わるのは大したものかと。
ちなみに僕はNoxPlayerのAndroid 7版を使うのは今回が初めてではなく、ちょうど少し前にも用事があって使っていましたが、動作の快適感は格段に上がっています。
自分のメインPCはスペックもりもりなので「エミュレータとはいえ現代のソフトならそこそこサクサク動くんだろうな」と思って使ったらかなりモッサリだった…という記憶が前回はあるんだけど、今回は普通に使ってて文句を感じないレベルです。
ゲームという目的はもちろん、他の理由でもこれなら常用に耐えうるデキになったのではというのが正直な感想です。
3.2021年アップデート内容②:Android 9に対応したので起動アプリ多数増加!
Android 7といえば2021年の今ではだいぶ古いOSに感じますね。
OSが古いということは性能うんぬんの問題以前に、サポートされないシステムや機能がたくさんあるということにもなります。スマホアプリはその代表格。
特にゲームというのはハードウェアやOSなど根深いシステムに直結する要素が多いためにバージョンサポートがシビアになっちゃいます。最近のゲームを遊びたい場合にはAndroid 7だとちょっと心もとないわけです。
Androidエミュレータ界全体がそんな状況だったわけですが、なんとここにきてNoxPlayerは頭一つ抜き出たAndroid 9対応を達成したということ…!
原神などAndroid 7版エミュレータでは起動できないゲームもこうやってPCで遊べるようになると。
エミュレートすること自体もそうだけど、操作にPCのインターフェースを使えるのがいいよね。これはもうPCゲームを遊んでいるのと特に差はないということかと。
もちろんPC版があるゲームはそっちを遊べばいいという意見もあるのだけど、求められるスペックやソフトを買い足す必要がないみたいなメリットもあるわけだよね。
今の時点でもAndroid 9ならまだ現役といえる範囲だと思うのでしばらく困ることはないでしょう。今であればガジェットにそこそこ敏感な人はAndroid 10を使っていて、Pixelなど極一部の端末でAndroid 11を使っている人がいるかも、くらいでしょうかね。
今回のアプデで「バージョンが違う」という特大の差別化が起きた以上、しばらくNoxPlayerの強い時代が来そうです(他も黙ってはいないんでしょうけど)。
4.おまけ:Androidエミュレータの使いみち
ところで「Androidエミュレータなんて何に使うの?」という向きもあろうかというわけで、どんなことができるのかちょっとだけ書いて終わりにしようと思います。
位置情報の偽装
実物のスマートフォンは本体に搭載されているGPS(実際にはA-GPSというもので本物のGPSとは違う概念です)や電波基地局から識別されるセルIDというものによって位置情報が特定されるのだけど、エミュレータはこのルールに縛られません。
アプリに渡す位置情報データを好きなものに偽装できるので、例えばポケモンGOの地域限定ポケモンとかを家にいながら全部集められたりとかしちゃいます。
もちろん良いことではないのでサービス側に何されても文句は言えないのでご注意を。
文字入力がしやすい
これは人によると思いますが、文字入力の素早さが求められたりするシーンがある場合、一般的にはスマホよりPCの方が有利です。
まあ現代だと「スマホの文字はめっちゃ速く打てるけどPCのキーボードは打てない」みたいなのも多数派になってきているだろうし、違うのかな…。
「端末の個数を増やせる」という考え方
まあわざわざ書くことのほどでもない気がしますが、エミュレータはすなわち「スマホ本体がもう一つあることになる」と考えると、例えば一人で対戦プレイ的なことができたりとか、そういう使い方もできます。
ただしサービスによっては同一IPからの同時ログインは弾かれたりするので、スマホ本体側はケータイ回線からアクセスするみたいなことも必要だったりするかも。
おわりに
Androidエミュレータ全体の概要に触れつつ、NoxPlayerを紹介してかつ今回の大型アップデートの要点をまとめました。
自分が知っていてなおかつ普通に使っていたサービスのPR記事をお願いいただけたのはシンプルに嬉しかったし、分野的にも書いていてとても楽しい記事でした。ありがとうございます!
あと記事を書いてて思い出したのだけど、Androidってx86よりARM系アーキテクチャの方が動きやすいと言われているよね。これは最近のARM再注目の流れ(M1 Macとか)ととても相性がいいのではと思います。
そんなわけで、これからの時代的にはAndroidエミュレータは技術そのものが注目されてくるかもしれません。
少し難しい話だけど、x86系っていうIntel一強だった時代がM1 Macなどの登場によってARMという新しい(もしくは古い)考え方もありかもね!ってなってきているということ!この技術はエミュレータみたいな概念と隣接しているんだよね。
おわり。
この記事へのコメント
「やってるソシャゲに対応しなくなったから実機使お(ポイー」から放置してたので、使うかどうかはともかくとして情報助かりました
NOXはプリインが邪魔な標準ランチャーがBADで、ゲームに便利なマクロや録画機能がGOODだと思います
ゲームはバージョンサポート厳しいですもんね。やっぱりそういう方は他にも多くいらっしゃるんだと思います…!
ゲーム向けの標準機能がかなりしっかりしているということも僕も今回初めて知りました。たしかにそうですね~
android9、大々的に宣伝しておいて無かったことになってますね。
さすが大陸系なことだけはあります。
すみません、こちらはどういう意味でしょう…。
OSそのものとしてという話ですか???
別人ですが、9版がベータテスト段階にも至ってない話だと思います。
現在のアプリを利用したときに限定テストプレイの誘いが表示されたことがあるので
作ってはいるんでしょうけど4/30日に近日ベータテストやりますと
表明した段階なので遅れている旨は追記したほうが良いかもしれません
そういう意味でしたか。
なるほど、現行ユーザーさんには既に知られた内容だったんですね。そこは知らなかったゆえ申し訳なく思います。
先方から聞いた話によれば「もともとは5月初頭リリースの予定だったが、新しい不具合が見つかったためより良いものにするべく修正中」のような感じだそうです。
ありがとうございました。
一般ユーザー向けのver9.0.0.0はβ版すら公開されずに音沙汰ないんですが
紹介するなら根本的なところでは
申し訳ありません。
上の方のコメントにお返事した通りでしたが、その状況をよく分かっていない状態でした。
「作ってはいるので単に遅れている」くらいに思っておくのがちょうどいい気がします。どんなものでもあり得ることですし…。
(僕に話が来るということはちゃんと進捗はあるんだと思いますよ)