Android Emulator의 하드웨어 가속 구성

에뮬레이터는 순수하게 소프트웨어로 실행하는 것보다 CPU, GPU, 모뎀과 같은 머신 하드웨어를 사용할 수 있는 경우에 최적의 성능을 보여줍니다. 머신 하드웨어를 사용하여 성능을 개선하는 이 기능을 하드웨어 가속이라고 합니다.

에뮬레이터는 하드웨어 가속을 사용하여 다음과 같은 두 가지 주요 방식으로 환경을 개선할 수 있습니다.

  • 그래픽 가속으로 화면 렌더링 개선
  • 가상 머신(VM) 가속으로 실행 속도 개선

하드웨어 가속은 대부분의 머신에서 기본적으로 사용 설정되어 있습니다. 이 페이지에서는 머신에서 사용 설정되어 있지 않은 경우 그래픽 및 가상 머신 (VM) 가속을 구성하여 에뮬레이터의 성능을 높이는 방법을 설명합니다.

그래픽 가속 구성

그래픽 가속은 컴퓨터의 하드웨어(일반적으로 GPU)를 사용하여 화면 렌더링 속도를 높입니다. Android 기기는 내장된 시스템용 OpenGL(OpenGL ES 또는 GLES)을 사용하여 2D 및 3D 그래픽을 화면에 렌더링합니다.

AVD Manager에서 Android Virtual Device(AVD)를 만들 때 에뮬레이터가 AVD의 GPU를 에뮬레이션하기 위해 하드웨어를 사용할지 소프트웨어를 사용할지 지정할 수 있습니다. 하드웨어 가속이 권장되며 일반적으로 더 빠릅니다. 그러나 컴퓨터에서 에뮬레이터와 호환되지 않는 그래픽 드라이버를 사용하는 경우 소프트웨어 가속을 사용해야 할 수도 있습니다.

기본적으로 에뮬레이터는 컴퓨터 설정에 기반해 하드웨어 또는 소프트웨어 그래픽 가속을 사용할지 판단합니다. GPU 하드웨어와 드라이버가 호환된다면 에뮬레이터는 GPU를 사용합니다. 호환되지 않으면 에뮬레이터는 소프트웨어 가속(컴퓨터의 CPU 사용)을 사용하여 GPU 처리를 시뮬레이션합니다.

명령줄에서 에뮬레이터를 시작하면 가상 기기 인스턴스에 맞게 AVD에서 그래픽 가속 설정을 재정의할 수 있습니다.

요구사항

그래픽 가속을 사용하려면 개발 환경에 다음이 포함되어야 합니다.

  • SDK 도구: 최신 버전 권장(최소 버전 17)
  • SDK 플랫폼: 최신 버전 권장(최소 Android 4.0.3, 버전 3)

AVD Manager에서 그래픽 가속 구성

AVD의 그래픽 가속을 구성하려면 다음 단계를 따르세요.

  1. AVD Manager를 엽니다.
  2. 새 AVD를 생성하거나 기존 AVD를 수정합니다.
  3. Verify Configuration 창에서 Emulated Performance 섹션을 찾습니다.
  4. Graphics: 옵션값을 선택합니다.
  5. Finish를 클릭합니다.

명령줄에서 그래픽 가속 구성

명령줄에서 AVD를 실행할 때 그래픽 가속 유형을 지정하려면 다음 예와 같이 -gpu 옵션을 포함합니다.

emulator -avd avd_name -gpu mode [{-option [value]} ... ]

mode 값은 다음 옵션 중 하나로 설정할 수 있습니다.

  • auto: 에뮬레이터가 컴퓨터 설정에 기반해 하드웨어 또는 소프트웨어 그래픽 가속 중에서 선택할 수 있습니다.
  • host: 하드웨어 가속을 위해 컴퓨터의 GPU를 사용합니다. 이 옵션을 선택하면 일반적으로 에뮬레이터의 그래픽 품질과 성능이 가장 높아집니다. 그러나 그래픽 드라이버에서 OpenGL을 렌더링하는 데 문제가 있다면 swiftshader_indirect 또는 angle_indirect 옵션을 사용해야 할 수도 있습니다.
  • swiftshader_indirect: 소프트웨어 가속을 사용하여 그래픽을 렌더링하려면 Quick Boot와 호환되는 SwiftShader 변형을 사용합니다. 이 옵션은 컴퓨터에서 하드웨어 가속을 사용할 수 없는 경우 host 모드의 좋은 대안입니다.
  • angle_indirect: 소프트웨어 가속을 사용하여 그래픽을 렌더링하려면 Quick Boot와 호환되는 ANGLE Direct3D 변형을 사용합니다(Windows 전용). 이 옵션은 컴퓨터에서 하드웨어 가속을 사용할 수 없는 경우 host 모드의 좋은 대안입니다. 대부분의 경우 ANGLE 성능은 host 모드를 사용하는 것과 유사합니다. ANGLE이 OpenGL 대신 Microsoft DirectX를 사용하기 때문입니다.

    Windows에서는 일반적으로 Microsoft DirectX 드라이버가 OpenGL 드라이버보다 문제가 적습니다. 이 옵션은 Direct3D 11을 사용하며, Windows 10, Windows 8.1 또는 Windows 7 플랫폼 업데이트가 포함된 Windows 7 SP1이 필요합니다.

  • guest: 게스트 측 소프트웨어 렌더링을 사용합니다. 이 옵션을 선택하면 에뮬레이터의 그래픽 품질과 성능이 가장 낮아집니다.

다음 mode 옵션은 지원이 중단되었습니다.

  • swiftshader: 버전 27.0.2에서 지원이 중단되었습니다. 대신 swiftshader_indirect를 사용하세요.
  • angle: 버전 27.0.2에서 지원이 중단되었습니다. 대신 angle_indirect를 사용하세요(Windows 전용).
  • mesa: 버전 25.3에서 지원이 중단되었습니다. 대신 swiftshader_indirect를 사용하세요.

Android UI에 Skia 렌더링 사용 설정

API 수준 27 이상의 이미지를 사용할 때 에뮬레이터는 Skia로 Android UI를 렌더링할 수 있습니다. Skia는 에뮬레이터가 그래픽을 더 부드럽고 효율적으로 렌더링하도록 도와줍니다.

Skia 렌더링을 사용 설정하려면 adb 셸에서 다음 명령어를 사용하세요.

su
setprop debug.hwui.renderer skiagl
stop
start

VM 가속 구성

VM 가속은 컴퓨터 프로세서를 사용하여 에뮬레이터의 실행 속도를 크게 개선합니다. 하이퍼바이저라는 도구는 컴퓨터 프로세서가 제공하는 가상화 확장 프로그램을 사용하여 이러한 상호작용을 관리합니다. 이 섹션에서는 VM 가속을 사용하기 위한 요구사항과 각 운영체제에서 VM 가속을 설정하는 방법에 관해 설명합니다.

일반 요구사항

에뮬레이터에서 VM 가속을 사용하려면 컴퓨터가 이 섹션의 일반 요구사항을 충족해야 합니다. 컴퓨터는 운영체제와 관련된 다른 요구사항도 충족해야 합니다.

개발 환경 요구사항

VM 가속을 사용하려면 개발 환경이 다음 요구사항을 충족해야 합니다.

  • SDK 도구: 최소 버전 17, 권장 버전 26.1.1 이상
  • AVD: 필수 Android 버전은 다음 표에 설명되어 있습니다.

    CPU 아키텍처 시스템 이미지 요구사항
    X86_64 x86 또는 x86_64 시스템 이미지: Android 2.3.3(API 수준 10) 이상
    ARM64 arm64-v8a 시스템 이미지: Android 5.0(API 수준 21) 이상

가상화 확장 프로그램 요구사항

개발 환경 요구사항 외에도 컴퓨터 프로세서는 가상화 확장 프로그램을 지원해야 합니다. 지원되는 프로세서는 다음과 같습니다.

  • Intel 가상화 기술(VT-x, vmx)이 적용된 Intel 프로세서(예: Intel Core iX, Intel Core Ultra 프로세서)
  • AMD Ryzen 프로세서와 같은 AMD-V (SVM)가 포함된 AMD 프로세서
  • Apple Silicon

Intel 및 AMD 프로세서의 추가 요구사항

Intel 및 AMD 프로세서에는 두 번째 수준의 주소 변환(Intel EPT 또는 AMD RVI)이 필요합니다. 대부분의 최신 Intel 및 AMD 프로세서는 두 번째 수준의 주소 변환을 지원합니다. 가상화 확장 프로그램을 제공하는 1세대 Intel 또는 AMD 프로세서에만 두 번째 수준의 페이지 변환이 없을 수 있습니다.

프로세서가 필수 확장 프로그램을 지원하는지 확실하지 않다면 제조업체 사이트에서 프로세서 사양을 확인합니다. 프로세서가 이러한 확장 프로그램을 지원하지 않으면 VM 가속을 사용할 수 없습니다.

제한사항

VM 가속에는 다음과 같은 제한사항이 있습니다.

  • 다른 VM 내에서 VM 가속 에뮬레이터를 실행할 수 없습니다(예: VirtualBox나 VMWare, Docker에서 호스팅하는 VM). 호스트 컴퓨터에서 직접 VM 가속 에뮬레이터를 실행해야 합니다.
  • 운영체제 및 하이퍼바이저에 따라 VM 가속 에뮬레이터를 실행하는 동시에 다른 가상화 기술을 사용하는 소프트웨어를 실행할 수 없습니다. 이러한 소프트웨어의 예로는 가상 머신 솔루션, 특정 바이러스 백신 프로그램, 속임수 방지 솔루션 등이 포함됩니다(이에 국한되지 않음). 대체로 Windows에서 Hyper-V가 꺼진 경우 이러한 상황이 관찰됩니다. 이러한 소프트웨어는 대부분 문제없이 Android Emulator와 공존할 수 있습니다. 그러나 충돌이 발생하면 이러한 소프트웨어로 VM 가속 에뮬레이터를 동시에 실행하지 않는 것이 좋습니다.

하이퍼바이저 정보

VM 가속에는 하이퍼바이저가 필요합니다. 하이퍼바이저는 컴퓨터 프로세서에서 제공하는 가상화 확장 프로그램을 사용합니다.

하이퍼바이저와 VM 가속이 없으면 에뮬레이터는 호스트 컴퓨터의 아키텍처에 맞게 VM 블록에서 기계어 코드를 블록 단위로 번역해야 합니다. 이 과정은 꽤 느릴 수 있습니다. 하이퍼바이저를 사용하면 VM과 호스트 컴퓨터의 아키텍처가 일치하므로 에뮬레이터가 하이퍼바이저를 사용하여 호스트 프로세서에서 직접 코드를 실행할 수 있습니다. 이러한 개선을 통해 에뮬레이터의 속도와 성능이 모두 크게 향상됩니다.

가장 적합한 하이퍼바이저는 컴퓨터 운영체제 및 구성에 따라 다릅니다. 자세한 내용은 다음 섹션 중 하나를 참고하세요.

하이퍼바이저 설치 여부 확인

에뮬레이터의 -accel-check 명령줄 옵션을 사용하여 하이퍼바이저가 현재 컴퓨터에 설치되어 있는지 확인할 수 있습니다.

다음 예는 에뮬레이터의 accel-check 옵션을 사용하는 방법을 보여줍니다. 각 예에서 Sdk는 Android SDK의 위치입니다.

Windows:

c:\Users\janedoe\AppData\Local\Android> Sdk\emulator\emulator -accel-check
accel:
0
AEHD (version 2.2) is installed and usable.
accel
Windows에는 여러 하이퍼바이저 옵션이 있습니다. 여기 나온 예와 다를 수 있습니다. 예를 들어 메시지에 GVM(AEHD의 이전 이름), WHPX 키워드 중 하나가 표시될 수 있습니다.

macOS:

janedoe-macbookpro:Android janedoe$ ./Sdk/emulator/emulator -accel-check
accel:
0
Hypervisor.Framework OS X Version 13.2
accel

Linux:

janedoe:~/Android$ ./Sdk/emulator/emulator -accel-check
accel:
0
KVM (version 12) is installed and usable.

Windows에서 VM 가속 구성

Windows의 VM 가속은 다음 두 하이퍼바이저 중 하나를 사용할 수 있습니다.

  • Windows Hypervisor Platform(WHPX)
  • Android Emulator Hypervisor Driver(AEHD)

Windows에서 하이퍼바이저 선택

이 섹션에서는 사용할 하이퍼바이저를 결정하는 기준을 보여줍니다. 각 하이퍼바이저를 사용하여 VM 가속을 구성하는 프로세스는 다음 섹션에서 설명합니다.

기준 하이퍼바이저
Hyper-V를 Android Emulator와 동시에 실행해야 합니다. WHPX를 사용합니다.
Hyper-V를 Android Emulator와 동시에 실행할 필요가 없습니다. Android Emulator Hypervisor Driver를 사용합니다.

Windows Hypervisor Platform을 사용하여 VM 가속 구성

WHPX를 사용 설정하려면 컴퓨터가 다음 요구사항을 충족해야 합니다.

  • Intel 프로세서: 가상화 기술(VT-x), 확장 페이지 테이블(EPT), 무제한 게스트(UG) 기능을 지원해야 합니다. 컴퓨터의 BIOS 설정에서 VT-x가 사용 설정되어 있어야 합니다.
  • AMD 프로세서: AMD Ryzen 프로세서를 권장합니다. 컴퓨터의 BIOS 설정에서 가상화 또는 SVM이 사용 설정되어 있어야 합니다.
  • Android 스튜디오 3.2 베타 1 이상
  • Android Emulator 버전 27.3.8 이상
  • Windows 10 이상

Windows에 WHPX를 설치하려면 다음 단계를 따르세요.

  1. Windows 바탕화면에서 Windows 아이콘을 마우스 오른쪽 버튼으로 클릭하고 Apps and features(앱 및 기능)를 선택합니다.
  2. Related settings(관련 설정)에서 Programs and Features(프로그램 및 기능)를 클릭합니다.
  3. Turns Windows Features on or off(Windows 기능 켜기/끄기)를 클릭합니다.
  4. Windows Hypervisor Platform을 선택합니다.

  5. OK를 클릭합니다.

  6. 설치가 완료되면 컴퓨터를 다시 시작합니다.

Windows에서 Android Emulator Hypervisor Driver(AEHD)를 사용하여 VM 가속 구성

Android Emulator Hypervisor Driver를 설치하고 사용하려면 컴퓨터가 다음 요구사항을 충족해야 합니다.

  • 가상화 확장 프로그램이 포함된 Intel 또는 AMD 프로세서
  • 64비트 Windows 11 또는 Windows 10 (32비트 Windows는 지원되지 않음)

    Windows 8.1, Windows 8, Windows 7 사용자는 AEHD 1.7 이하를 계속 사용할 수 있습니다. 하지만 이러한 시나리오에 대한 지원은 제공되지 않습니다.

  • Windows 기능 대화상자에서 Hyper-V를 사용 중지해야 합니다.

    특정 창 구성요소는 Windows Defender에서 제공하는 핵심 격리와 같은 Windows 기능 대화상자에서 Hyper-V를 사용 설정하지 않고도 Hyper-V 하이퍼바이저를 사용 설정할 수 있습니다. 이러한 경우에는 대신 WHPX를 사용하세요.

AMD 프로세서의 경우 Android 스튜디오 4.0 Canary 5 이상에서 SDK Manager를 통해 Android Emulator Hypervisor Driver를 설치할 수 있습니다.

Intel 프로세서의 경우 Android 스튜디오 Flamingo 이상에서 SDK Manager를 통해 Android Emulator Hypervisor Driver를 설치할 수 있습니다.

SDK Manager에서 설치하려면 다음 단계를 따르세요.

  1. Tools > SDK Manager를 선택합니다.
  2. SDK Tools 탭을 클릭하고 Android Emulator Hypervisor Driver를 선택합니다.
  3. OK를 클릭하여 Android Emulator Hypervisor Driver를 다운로드하고 설치합니다.
  4. 설치 후 다음 명령줄의 명령어를 사용하여 드라이버가 올바르게 작동하는지 확인합니다.

    AEHD 2.1 이상

    sc query aehd
    

    상태 메시지에는 다음 정보가 포함됩니다.

    SERVICE_NAME: aehd
           ...
           STATE              : 4  RUNNING
           ...
    

    다음 오류 메시지는 가상화 확장 프로그램이 BIOS에서 사용 설정되지 않았거나 Hyper-V가 사용 중지되지 않았음을 의미합니다.

    SERVICE_NAME: aehd
           ...
           STATE              : 1  STOPPED
           WIN32_EXIT_CODE    : 4294967201 (0xffffffa1)
           ...
    

    AEHD 2.0 이하

    sc query gvm
    

    상태 메시지에는 다음 정보가 포함됩니다.

    SERVICE_NAME: gvm
           ...
           STATE              : 4  RUNNING
           ...
    

    다음 오류 메시지는 가상화 확장 프로그램이 BIOS에서 사용 설정되지 않았거나 Hyper-V가 사용 중지되지 않았음을 의미합니다.

    SERVICE_NAME: gvm
           ...
           STATE              : 1  STOPPED
           WIN32_EXIT_CODE    : 4294967201 (0xffffffa1)
           ...
    

Android Emulator Hypervisor Driver는 GitHub에서도 다운로드하여 설치할 수 있습니다. 드라이버 패키지의 압축을 해제한 후 관리자 권한으로 명령줄에서 silent_install.bat를 실행합니다.

관리자 권한으로 명령줄에서 다음 명령어를 사용하여 Android Emulator Hypervisor Driver를 제거합니다.

AEHD 2.1 이상

   sc stop aehd
   sc delete aehd

AEHD 2.0 이하

   sc stop gvm
   sc delete gvm

macOS에서 VM 가속 구성

macOS에서 Android Emulator는 내장된 Hypervisor.Framework를 사용하며, 이를 위해서는 MacOS v10.10(Yosemite) 이상이 필요합니다.

Linux에서 VM 가속 구성

Linux 기반 시스템은 KVM 소프트웨어 패키지를 통해 VM 가속을 지원합니다. 안내에 따라 Linux 시스템에 KVM을 설치하고 KVM이 사용 설정되었는지 확인합니다. Ubuntu 시스템의 경우 Ubuntu KVM 설치를 참고하세요.

요구사항

KVM을 실행하려면 특정 사용자 권한이 필요합니다. KVM 설치 안내에 지정된 대로 충분한 권한이 있는지 확인합니다.

Linux에서 VM 가속을 사용하려면 컴퓨터가 다음 요구사항도 충족해야 합니다.

  • Intel 프로세서의 경우: 사용 설정된 가상화 기술(VT-x)과 Intel EM64T(Intel 64) 기능, Execute Disable(XD) Bit 기능을 지원합니다.
  • AMD 프로세서: AMD 가상화(AMD-V)를 지원합니다.

KVM이 현재 Linux에 설치되어 있는지 확인

에뮬레이터 -accel-check 명령줄 옵션을 사용하여 KVM이 설치되어 있는지 확인할 수 있습니다. 또는 kvm-ok 명령어가 포함된 cpu-checker 패키지를 설치할 수 있습니다.

다음 예는 kvm-ok 명령어를 사용하는 방법을 보여줍니다.

  1. 다음과 같이 cpu-checker 패키지를 설치합니다.

    sudo apt-get install cpu-checker
    egrep -c '(vmx|svm)' /proc/cpuinfo
    

    출력이 1 이상이면 가상화가 지원된다는 의미입니다. 출력이 0이면 CPU가 하드웨어 가상화를 지원하지 않는다는 의미입니다.

  2. kvm-ok 명령어를 실행합니다.

    sudo kvm-ok
    

    예상 출력:

    INFO: /dev/kvm exists
    KVM acceleration can be used
    

    다음 오류가 표시되면 가상 머신을 계속 실행할 수 있다는 의미입니다. 그러나 가상 머신은 KVM 확장 프로그램이 없으면 속도가 느려집니다.

    INFO: Your CPU does not support KVM extensions
    KVM acceleration can NOT be used
    

Linux에서 KVM 설치

다음 명령어를 사용하여 KVM을 설치합니다.

Cosmic (18.10) 이상:

sudo apt-get install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils

Lucid (10.04) 이상:

sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Karmic (9.10) 이하:

sudo aptitude install kvm libvirt-bin ubuntu-vm-builder bridge-utils

Windows의 VM 가속에 관한 이전 구성 가이드

Intel에서 HAXM 개발을 중단하므로 에뮬레이터 33.x.x.x부터는 HAXM이 지원 중단됩니다. Android Emulator 하이퍼바이저 드라이버(AEHD)가 Intel 프로세서의 Intel HAXM을 대체합니다.

Windows에서 하이퍼바이저 선택 (에뮬레이터 32.x.x.x 이하)

기준 하이퍼바이저
Intel 프로세서가 있고 Android Emulator와 동시에 Hyper-V를 실행할 필요가 없습니다. Intel HAXM을 사용합니다.
AMD 프로세서가 있고 Android Emulator와 동시에 Hyper-V를 실행할 필요가 없습니다. Android Emulator Hypervisor Driver를 사용합니다.
Intel 또는 AMD 프로세서가 있고 Android Emulator와 동시에 Hyper-V를 실행해야 합니다. WHPX를 사용합니다.

Windows에서 Intel HAXM을 사용하여 VM 가속 구성

Intel HAXM을 설치하고 사용하려면 컴퓨터가 다음 요구사항을 충족해야 합니다.

  • 가상화 기술(VT-x), Intel EM64T(Intel 64) 기능, Execute Disable(XD) Bit 기능이 사용 설정된 Intel 프로세서
  • 64비트 Windows 11, Windows 10, Windows 8, Windows 7(또는 64비트 프로세서에서 32비트 버전의 운영체제)
  • Windows 11, Windows 10, Windows 8에서는 Windows 기능 대화상자에서 Hyper-V를 사용 중지해야 합니다.

Intel HAXM 드라이버를 설치하려면 다음 단계를 따르세요.

  1. SDK Manager를 엽니다.
  2. SDK Update Sites 탭을 클릭한 다음 Intel HAXM을 선택합니다.
  3. OK를 클릭합니다.
  4. 다운로드가 완료되면 설치 프로그램을 실행합니다.

    일반적으로 sdk\extras\intel\Hardware_Accelerated_Execution_Manager\intelhaxm-android.exe 위치에서 설치 프로그램을 찾을 수 있습니다.

  5. 마법사를 사용하여 설치를 완료합니다.

  6. Intel HAXM을 설치한 후 다음 명령줄 명령어를 사용하여 가상화 드라이버가 올바르게 작동하는지 확인합니다.

    sc query intelhaxm
    

    상태 메시지에는 다음 정보가 포함됩니다.

    SERVICE_NAME: intelhaxm
           ...
           STATE              : 4  RUNNING
           ...
    

자세한 내용은 Windows에서 Intel HAXM 설치 안내를 참고하세요.

Intel HAXM을 제거하려면 설치 프로그램 또는 Windows 제어판을 사용하세요. Intel HAXM을 제거하기 전에 실행 중인 x86 에뮬레이터를 종료합니다.

Hyper-V를 사용 중지할 때 다시 확인

Android Emulator Hypervisor Driver 또는 Intel HAXM을 사용하려면 Hyper-V를 사용 중지해야 합니다. 그러나 Windows 기능 대화상자에서 'Hyper-V'를 선택 해제해도 Hyper-V가 사용 중지되지 않습니다.

Windows 10의 여러 기능에서 Hyper-V를 암시적으로 사용 설정합니다. 사용자는 이러한 기능 중 하나를 사용 설정할 때 Hyper-V가 활성화되는지도 모를 수 있습니다. 이러한 기능에는 다음이 포함됩니다.

  • Virtual Machine Platform
  • Windows Hypervisor Platform
  • Windows Sandbox
  • Core Isolation
  • Credential Guard

또한 Linux 버전 2용 Windows Subsystem에는 가상 머신 플랫폼이 필요합니다. 즉, 암시적으로 Hyper-V가 필요합니다. 이 목록은 전체 목록이 아니며, 여기에 포함되어야 하는 항목이 있다면 버그를 신고해 주세요.

Hyper-V를 사용 중지할 때 위에 나열된 기능도 사용 중지되는지 다시 한번 확인합니다. 개별 기능을 사용 중지하는 방법을 알아보려면 Microsoft 문서와 아래의 예를 참고하세요.

일부 플랫폼은 사용 중지될 때 즉시 Hyper-V를 사용 중지하지 못합니다. 이 경우 Windows OS에서 반환하는 오류가 없으며 Windows 기능 대화상자에서 Hyper-V가 사용 중지된 것처럼 표시됩니다. 이러한 문제가 발생하면 Microsoft의 Issue Tracker로 버그를 신고하세요.