2010-12-28 3 views
42

iPhone 시뮬레이터와 Android 에뮬레이터의 차이점은 무엇입니까? 에뮬레이터가 실제로 시뮬레이터의 경우에는 맞지 않는 대상 장치를 에뮬레이트한다고 말하는 사람들이 왔습니다.iPhone 시뮬레이터와 Android 에뮬레이터의 차이점

Android 에뮬레이터는 대상 장치의 처리 속도, 메모리 사용을 모방한다고 생각하지만 시뮬레이터는 장치를 에뮬레이션하지 않습니다.

+3

예, Android 에뮬레이터에 대한 사실입니다. 나는 iPhone이나 그 시뮬레이터에 대해서는 아무것도하지 않는다. – Mudassir

+0

그냥 오늘의 PC (Core2 Duo @ 2.9 GHz, 3 GB RAM)에서 안드로이드 에뮬레이터가 1 ​​세대 장치 (HTC Dream, Hero, Samsung Spica)보다 느리게 작동 할 것으로 예상 할 수 있습니다. – tomash

+0

요약하면 - 하나는 하드웨어를 에뮬레이션하고, 다른 하나는 소프트웨어를 에뮬레이트합니다. :) – controlbox

답변

55

면책 조항 : 저는 Android 개발자가 아닌 iPhone 개발자입니다.

맞습니다. 에뮬레이터와 시뮬레이터의 차이점은 에뮬레이터가 소프트웨어 실제 장치에있는 하드웨어 환경을 모방 한 것입니다. 시뮬레이터는 다른 한편으로는 소프트웨어 환경을 모방합니다. 그렇지 않으면 디스크 공간, 메모리 및 프로세서 속도와 같은 호스트 시스템의 모든 하드웨어 리소스에 액세스 할 수 있습니다.

iPhone 시뮬레이터는 iPhone 프로세서, 디스크 드라이브, 메모리 제약 및 기타 등등을 모방하지 않으므로 Apple은 항상 장치 테스트의 중요성을 강조합니다. Simulator의 메뉴 항목에서 메모리 경고를 시뮬 레이팅하지 않으면 Mac에서 자원 관리에 어려움을 겪지 않는 한 메모리 경고가 발생하지 않습니다.

17

: 당신이 설정> 일반> 정보에 가면 사실

, 당신은 시뮬레이터의 디스크 용량이에 설치된 맥의 파일 시스템과 동일한 것을 확인할 수 있습니다 안드로이드 에뮬레이터는 ARM 프로세서와 특정 하드웨어를 에뮬레이션하지만, 여전히 CPU 성능을 맞추는 데는 도움이되지 않습니다.

에뮬레이터를 사용하면 메모리 소비를 잘 충족시킬 수 있습니다. 특정 단순 장치를 잘 에뮬레이션 할 수 있지만 모바일 GPU 및 HW 미디어 디코더와 같이 장치가 복잡 해지면 실패합니다. 그리고 에뮬레이션 로직이 각 ARM 명령어를 X86 명령어로 변환하고 성능 호그를 실행하고 정확한 사이클이 아닌 설계로 작동하기 때문에.

프로그래밍 모델이 Java 인 경우 에뮬레이터의 성능이 (에뮬레이션 속도와 HW 장치 부족으로 인해) 장치 성능을 반영하지 않으므로이 디자인은 응용 프로그램 개발자에게 아무 것도 사지 않습니다. 디버그 사이클이 느려지므로 불편 함이 있습니다. 응용 프로그램이되는 유일한 장점은 장치에서와 마찬가지로 에뮬레이터 작업을 준수하기 때문입니다 (다시 컴파일하지 않음).

iPhone의 시뮬레이터 모델에서 Apple은 장치를 완벽하게 일치시키지 않으므로 개발자는 응용 프로그램을 효과적으로 개발하기 위해 빠른주기 시간과 향상된 도구 지원을 시도해 보지도 않으려 고합니다.

관련 문제