2013-08-09 1 views
3

ARM 용으로 컴파일되었을 때 VMWare에서 Android x86에서 앱이 작동하는 방식을 알아 내려고했습니다. Qemu에서 GUI가 실행되고 있습니까? Android x86이 실제로 x86 인 경우 정확히 어떻게 실행합니까?Android x86에서 ARM을 에뮬레이트합니까?

답변

3

우선 Android 앱 (순수 자바)이 실제로 "ARM 용으로 컴파일되지 않았습니다. Java 응용 프로그램이 중간에 컴파일되어 JVM을 지원하는 모든 플랫폼에서 실행되도록 컴파일됩니다. Java로 작성된 Android 앱이 컴파일됩니다. Dalvik에 바이트 코드가 달빅 VM을 지원하는 플랫폼에서 실행 할 수 있습니다. 이러한 점에서, 어떻게 안드로이드 애플 리케이션은 86를 실행하거나 ARM이나 MIPS 등의

자바는 86, SPARC, POWER에서 실행되는 앱은 방법과 유사 물론 응용 프로그램에 기본 코드가 포함되어 있으면 x86 에뮬레이터 또는 실제 x86 전화/태블릿에서 x86 용 지원을 포함해야합니다.

질문의 두 번째 부분은 안드로이드의 OS 부분이 x86 플랫폼으로 컴파일되었으므로 x86 컴퓨터에서 x86 안드로이드를 실행하는 것이 정확히 예를 들어 실행중인 Windows와 동일하다고 가정합니다. OSX를 사용할 때 VM.

0

응용 프로그램에 ARM 원시 코드가 포함되어 있으면 Android x86 포크 "AndroVM"(공식 사이트가 더 이상 존재하지 않음, someone has mirrored the files here)이 ARM 에뮬레이션을 수행했습니다.

안드로이드 x86의 공식 버전은 ARM 에뮬레이션을 수행하지 않습니다. 네이티브 ARM 코드를 사용하는 앱이 즉시 충돌합니다.

Genymotion (AndroVM sequel)은 기본적으로 ARM을 에뮬레이션하지 않습니다. 그래도 ARM 에뮬레이션을 추가하는 unofficial hack이 있습니다.

6

인텔은 arm 명령어를 x86으로 변환하는 라이브러리 ('libhoudini')를 출시했습니다. 그런 다음 x86 CPU에서 실행됩니다.

+0

libhoudini에 대한 자세한 정보 https://commonsware.com/blog/2013/11/21/libhoudini-what-it-means-for-developers.html – Dori