본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] 에뮬레이터와 시뮬레이터의 차이. ( Difference between Emulator and Simulator )

by 돼지왕 왕돼지 2012. 2. 22.
반응형


안녕하세요 돼지왕 왕돼지입니다.
오늘은 에뮬레이터( Emulator )와 시뮬레이터( Simulator )의 차이에 대해 알아보겠습니다.



에뮬레이터 ( Emulator )

 
에뮬레이터는 현재 사용중인 시스템 안에 다른 시스템을 완벽하게 "재현" 한 것을 말한다. 

 
안드로이드 프로그래밍을 하다보면 AVD ( Android Virtual Device ) 를 쓰게 되는데 이것이 바로 에뮬레이터이다. 안드로이드 기기들은 ARM 계열의 CPU 를 사용하기 때문에 Intel x86 이나 AMD 의 CPU 명령어 집합을 사용하지 못한다. 다시 말해, 안드로이드용 프로그램 ( apk ) 을 ARM 이 아닌 CPU 에서는 실행할 수 없다는 것이다. 에뮬레이터가 ARM 명령어를 해당 CPU에 맞도록 translate 하여 "마치 ARM Machine 을 사용하고 있는 것" 처럼 보여준다. 에뮬레이터는 최대한 실제 기기에 가까운 테스트가 가능하다. 보통 에뮬레이터는 실제 기기가 사용하는 hardware 등을 설정하거나, 가상으로 붙일 수도 있다. 하지만 초기 구동 시간이 매우 오래 걸린다는 단점을 가지고 있다. ( 물론 구동 후에도 simulator 보다 보통 느리다. )



[명령어 집합에 대한 추가 정보]
 



시뮬레이터 ( Simulator )


시뮬레이터는 대상 시스템을 "추상화" ( 또는 "흉내" ) 한 것을 말한다.

당연히 PC의 CPU 에 맞는 명령어를 사용하며, 따라서 실제 기기에서 사용하는 binary 를 실행할 수는 없다. 속도가 빠르다는 장점이 있지만, 정확한 기기의 상태를 재현할 수 없기 때문에, 시뮬레이터에서는 빠르고 정확히 동작하지만, 실제 단말에서는 느리게 또는 에러를 초래할 수도 있다. iPhone 개발할 때 쓰이는 녀석이 바로 simulator 입니다. 


로그인 없이 추천 가능합니다. 손가락 꾸욱~

반응형

댓글