2010-12-28 6 views
42

iPhone SimulatorとAndroidエミュレータの違いは何ですか?私はエミュレータが実際にシミュレータの場合には当てはまらないターゲットデバイスをエミュレートすると言っていると聞いています。iPhone SimulatorとAndroidエミュレータの相違点

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

+3

Androidのエミュレータについてはそうです。私はiPhoneやそのシミュレータについては何もしていません。 – Mudassir

+0

今日のPC(Core2 Duo @ 2.9 GHz、3 GB RAM)では、Androidエミュレータが第1世代のデバイス(HTC Dream、Hero、Samsung Spica)よりもわずかに遅く動作することが期待できます – tomash

+0

要約 - 1つはハードウェアをエミュレートし、もう1つはソフトウェアをエミュレートします:) – controlbox

答えて

55

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

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

iPhone SimulatorはiPhoneプロセッサ、ディスクドライブ、メモリの制約などをエミュレートしないため、アップルは常にデバイステストの重要性を認識しています。 Simulatorのメニュー項目からメモリ警告をシミュレートしない限り、Macがリソースを管理するのに苦労している場合を除き、メモリ警告はほとんど発生しません。

17

:あなたは設定>一般>についてに行けば実際に

、あなたはシミュレータのディスク容量は、それが上にインストールのMacのファイルシステムと同じであることがわかりますアンドロイドエミュレータはARMプロセッサと特定のハードウェアをエミュレートしますが、それでもCPUのパフォーマンスをマッチさせることはできません。

エミュレータであれば、メモリ消費量に合わせて簡単に特定のデバイスをエミュレートできますが、モバイルGPUやHWメディアデコーダなどのデバイスが複雑になるとエラーになります。また、エミュレーションロジックは各ARM命令をX86命令に変換して実行し、パフォーマンスを向上させるとともに、正確なサイクルではない設計によって動作します。

エミュレータのパフォーマンスがエミュレーションの速度とHWデバイスの不足のためにデバイスのパフォーマンスを反映しないため、このデザインはアプリケーション開発者に何も購入しません。デバッグサイクルが遅いなどの不便さがあります。アプリケーション上の唯一の利点は、デバイス上のエミュレータ作業(再コンパイルなし)に準拠していることです。

iPhoneのシミュレータモデルでは、Appleはデバイスを完璧にマッチさせることはないと認識しているため、開発者にアプリケーションを効果的に開発するための高速サイクルタイムとツールサポートを提供しません。