web-dev-qa-db-ja.com

iPhone SimulatorとAndroid Emulatorの違い

IPhone SimulatorとAndroidエミュレーターの違いは何ですか?エミュレーターは、シミュレーターの場合には当てはまらないターゲットデバイスを実際にエミュレートするという人がいます。

Androidエミュレーターはターゲットデバイスの処理速度、メモリ使用量を模倣しますが、シミュレーターはデバイスをエミュレートしません。

49
Krishnan

免責事項:私はiPhone開発者であり、Android開発者ではありません。

エミュレータとシミュレータの違いは、エミュレータが実際のデバイスにあるソフトウェアandハードウェア環境を模倣することです。一方、シミュレータはソフトウェア環境のみを模倣します。それ以外の場合は、ディスクスペース、メモリ、プロセッサ速度など、ホストシステムのすべてのハードウェアリソースにアクセスできます。

IPhone SimulatorはiPhoneプロセッサ、ディスクドライブ、メモリの制約などをエミュレートしないため、Appleは常にデバイステストの重要性を強調しています。 Macがリソース自体の管理に苦労していない限り、シミュレータのメニュー項目から(再び)メモリ警告をシミュレートしない限り、メモリ警告を受け取ることはほとんどありません。

実際、[設定]> [全般]> [バージョン情報]に移動すると、シミュレータのディスク容量は、インストールされているMacのファイルシステムと同じであることがわかります。

62
BoltClock

AndroidエミュレータはARMプロセッサと特定のハードウェアをエミュレートしますが、それでもCPUパフォーマンスを一致させる良い仕事をしません。

エミュレーターであるため、メモリ消費量とよく一致し、特定の単純なデバイスをうまくエミュレートできますが、モバイルGPUやHWメディアデコーダーなどのデバイスが複雑になると失敗します。また、エミュレーションロジックは、各ARM命令をX86命令に変換し、そのパフォーマンスホグを実行し、設計によりサイクルが正確ではありません。

プログラミングモデルがJavaの場合、エミュレータのパフォーマンスはデバイスのパフォーマンスを反映しないため、この設計はアプリケーション開発者に何も購入しません(エミュレーションの速度およびHWデバイスの欠落による)デバッグサイクルが遅いため、多くの場合、不便です。唯一の利点は、デバイス上でアプリケーションがエミュレータの動作に準拠していることです(再コンパイルなし)。

IPhoneのシミュレータモデルでは、Appleデバイスと完全には一致しないことに気付いたため、アプリケーションを効果的に開発するための高速なサイクルタイムと強化されたツールサポートを開発者に提供しません。

19
Neera