6월 3일의 ⁠#Android11: 베타 버전 출시 행사에 참여하세요.

Android Emulator의 하드웨어 가속 구성

Android Emulator는 하드웨어 가속 기능을 사용하여 때로는 성능을 크게 개선할 수 있습니다. 이 페이지에서는 에뮬레이터의 성능을 높이기 위해 그래픽 및 가상 머신(VM) 가속을 구성할 수 있는 방법에 관해 설명합니다.

그래픽 가속 구성

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

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

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

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

요구사항

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

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

AVD Manager에서 그래픽 가속 구성

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

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

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

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

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

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

  • auto: 에뮬레이터가 컴퓨터 설정에 기반해 하드웨어 또는 소프트웨어 그래픽 가속 중에서 선택할 수 있습니다.
  • host: 하드웨어 가속을 위해 컴퓨터의 GPU를 사용합니다. 이 옵션을 선택하면 일반적으로 에뮬레이터의 그래픽 품질과 성능이 가장 높아집니다. 그러나 그래픽 드라이버에서 OpenGL을 렌더링하는 데 문제가 있다면 swiftshader_indirect 또는 angle_indirect 옵션을 사용해야 할 수도 있습니다.
  • swiftshader_indirect: 소프트웨어 가속을 사용하여 그래픽을 렌더링하려면 빠른 부팅과 호환되는 SwiftShader 변형을 사용합니다. 이 옵션은 컴퓨터에서 하드웨어 가속을 사용할 수 없는 경우 host 모드의 좋은 대안입니다.
  • angle_indirect: 소프트웨어 가속을 사용하여 그래픽을 렌더링하려면 빠른 부팅과 호환되는 ANGLE Direct3D 변형을 사용합니다(Windows에만 적용). 이 옵션은 컴퓨터에서 하드웨어 가속을 사용할 수 없는 경우 host 모드의 좋은 대안입니다. 대부분의 경우 ANGLE 성능은 host 모드를 사용하는 것과 비슷해야 하는데 그 이유는 ANGLE이 OpenGL 대신 Microsoft DirectX를 사용하기 때문입니다. Windows에서 Microsoft DirectX 드라이버는 일반적으로 OpenGL 드라이버보다 문제가 적습니다. 이 옵션은 Direct3D 11을 사용하며 Windows 7 플랫폼 업데이트가 포함된 Windows 10, Windows 8.1 또는 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 Tools: 최소 버전 17, 권장 버전 26.1.1 이상
  • x86 기반 시스템 이미지가 있는 AVD, Android 2.3.3(API 수준 10) 이상에서 사용 가능

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

개발 환경 요구사항 외에도 컴퓨터 프로세서는 다음 가상화 확장 프로그램 기술 중 하나를 지원해야 합니다.

  • Intel 가상화 기술(VT, VT-x, vmx) 확장 프로그램
  • AMD 가상화(AMD-V, SVM) 확장 프로그램

최신 프로세서는 대부분 이러한 가상화 확장 프로그램을 지원합니다. 프로세서가 이러한 확장 프로그램을 지원하는지 확실하지 않다면 제조업체 사이트에서 프로세서 사양을 확인합니다. 프로세서가 이러한 확장 프로그램 중 하나를 지원하지 않으면 VM 가속을 사용할 수 없습니다.

제한사항

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

  • 다른 VM 내에서 VM 가속 에뮬레이터를 실행할 수 없습니다(예: VirtualBox나 VMWare, Docker에서 호스팅하는 VM). 호스트 컴퓨터에서 직접 VM 가속 에뮬레이터를 실행해야 합니다.
  • 운영체제 및 하이퍼바이저에 따라 VM 가속 에뮬레이터를 실행하는 동시에 다른 가상화 기술을 사용하는 소프트웨어를 실행할 수 없습니다. 예를 들어 VirtualBox와 VMWare, Docker는 현재 다른 가상화 기술을 사용하므로 가속 에뮬레이터와 동시에 실행할 수 없습니다.

하이퍼바이저 정보

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
    HAXM version 7.3.2 (4) is installed and usable.
    accel
    

MacOS

    janedoe:~/Android$ ./sdk/emulator/emulator -accel-check
    accel:
    0
    HAXM version 7.3.2 (4) is installed and usable.
    accel
    

Linux

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

Windows에서 VM 가속 구성

Windows에서 VM 가속은 Intel Hardware Accelerated Execution Manager(HAXM) 또는 Windows Hypervisor Platform(WHPX) 중 하나를 사용할 수 있습니다.

Windows에서 하이퍼바이저 선택

사용해야 하는 하이퍼바이저를 결정하려면 다음 기준을 적용하세요.

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

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

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

  • Virtualization Technology(VT-x), Intel EM64T(Intel 64) 기능, Execute Disable(XD) Bit 기능이 사용 설정된 Intel 프로세서
  • 64비트 Windows 10이나 Windows 8, Windows 7(또는 64비트 프로세서에서 32비트 버전의 운영체제)
  • Windows 10 또는 8에서 Intel HAXM을 사용하려면 Windows 제어판에서 Hyper-V를 꺼야 합니다. 참고: 특정 소프트웨어를 설치하면 Hyper-V가 다시 켜질 수도 있습니다. 가능한 경우 Android 스튜디오는 Hyper-V가 다시 사용 설정되어 있는지 감지하고 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을 설치한 후 Command Prompt 창에 다음 명령어를 입력하여 가상화 드라이버가 올바르게 작동하는지 확인합니다.

    sc query intelhaxm
        

    다음 정보가 포함된 상태 메시지가 표시됩니다.

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

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

설치 프로그램을 다시 실행하여 Intel HAXM 커널 확장 프로그램에 사용 가능한 메모리 양을 조정할 수 있습니다.

설치 프로그램 또는 Windows 제어판을 사용하여 Intel HAXM을 제거할 수 있습니다. Intel HAXM을 제거하기 전에 현재 실행 중인 x86 에뮬레이터를 종료합니다.

Windows 하이퍼바이저 플랫폼을 사용하여 VM 가속 구성

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

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

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

  1. Windows 바탕화면에서 Windows 아이콘을 마우스 오른쪽 버튼으로 클릭하고 Apps and features를 선택합니다.
  2. Related settings에서 Programs and Features를 클릭합니다.
  3. Turns Windows Features on or off를 클릭합니다.
  4. Windows Hypervisor Platform을 선택합니다.

  5. OK를 클릭합니다.

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

macOS에서 VM 가속 구성

Mac OS X v10.10 Yosemite 이상에서 Android Emulator는 내장된 Hypervisor.Framework를 기본적으로 사용하고 Hypervisor.Framework가 초기화에 실패할 경우에는 Intel HAXM을 사용하게 됩니다.

Hypervisor.Framework를 사용할 수 없을 때 macOS에서 VM 가속을 사용하려면 Intel HAXM 커널 확장 프로그램을 설치해야 합니다.

Intel HAXM 커널 확장 프로그램을 설치하려면 다음 단계를 따르세요.

  1. SDK Manager를 엽니다.
  2. SDK Update Sites 탭을 클릭한 다음 Intel HAXM을 선택합니다.
  3. OK를 클릭합니다.
  4. 다운로드가 완료되면 설치 프로그램을 실행합니다. 일반적으로 sdk/extras/intel/Hardware_Accelerated_ExecutionManager/IntelHAXMversion.dmg 위치에서 설치 프로그램을 찾을 수 있습니다.
  5. 화면에 표시된 안내에 따라 설치를 완료합니다.
  6. 설치가 완료되면 터미널 창을 열고 다음 명령어를 실행하여 새 커널 확장 프로그램이 올바르게 작동하는지 확인합니다.

        kextstat | grep intel
        

    커널 확장 프로그램이 로드되었음을 나타내는 다음 확장 프로그램 이름이 포함된 상태 메시지가 표시됩니다.

    com.intel.kext.intelhaxm
        

자세한 내용은 Intel HAXM 설치 안내를 참조하세요.

설치 프로그램을 다시 실행하여 Intel HAXM 커널 확장 프로그램에 사용 가능한 메모리 양을 조정할 수 있습니다.

Intel HAXM 커널 확장 프로그램을 제거하여 사용 중지할 수 있습니다. 제거하기 전에 현재 실행 중인 x86 에뮬레이터를 종료한 후 터미널 창에서 다음 명령어를 실행합니다.

    sudo /System/Library/Extensions/intelhaxm.kext/Contents/Resources/uninstall.sh
    

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 명령어를 사용하는 방법을 보여줍니다.

$ sudo apt-get install cpu-checker
    $ egrep -c '(vmx|svm)' /proc/cpuinfo
    12
    $ kvm-ok
    INFO: /dev/kvm exists
    KVM acceleration can be used
    

Linux에서 KVM 설치

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

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