Android Emulator 가상 기기 사용

Android Emulator를 사용하여 나만의 맞춤 Android 시스템 이미지를 실행하는 Android 기기의 에뮬레이션을 만들 수 있습니다. 또한 Android Emulator 에뮬레이션에 다중 디스플레이 지원을 추가할 수 있습니다.

Android Emulator 아키텍처

Android Emulator는 Android Virtual Device (AVD)라는 가상 머신에서 Android 운영체제를 실행합니다. 각 AVD 는 전체 Android 소프트웨어 스택을 포함하며 마치 실제 기기에 있는 것처럼 실행됩니다. 그림 1은 Android Emulator의 상위 수준 아키텍처를 보여줍니다. 에뮬레이터에 관한 자세한 내용은 Android Emulator에서 앱 실행을 참고하세요.

Android Emulator 아키텍처

그림 1. Android Emulator 아키텍처

AVD 이미지 빌드

각 AVD에는 해당 AVD에서 실행되는 Android 시스템 이미지가 있습니다. AVD Manager에는 일부 시스템 이미지가 포함되어 있습니다. 소스 코드에서 맞춤 AVD 시스템 이미지를 만들고 기기 에뮬레이션을 생성하여 실행할 수 있습니다.

AVD 시스템 이미지를 빌드하고 실행하려면 다음을 수행하세요.

  1. Android 소스 다운로드:

    mkdir aosp-android-latest-release; cd aosp-android-latest-release
    repo init -u
    repo sync -j24

다른 Android 버전을 빌드하려면 공개 Android 저장소에서 브랜치 이름을 찾아 보세요. Android 코드명, 태그 및 빌드 번호에 매핑됩니다.

  1. AVD 시스템 이미지를 빌드합니다. 이는 Android 기기 시스템 이미지를 빌드하는 과정과 동일합니다. 예를 들어 x86 64비트 AVD를 빌드하려면 다음을 실행합니다.

    source ./build/envsetup.sh
    lunch sdk_phone_x86_64
    make -j32
  2. Android Emulator에서 AVD 시스템 이미지를 실행합니다.

    emulator

에뮬레이터 실행에 관한 자세한 내용은 명령줄 시작 옵션 을 참고하세요. 그림 2는 AVD를 실행하는 Android Emulator의 예를 보여줍니다.

AVD를 실행하는 Android Emulator

그림 2. AVD를 실행하는 Android Emulator

Android 스튜디오에서 다른 사용자가 사용할 수 있도록 AVD 시스템 이미지 공유

AVD 시스템 이미지를 다른 사용자와 공유하려면 다음 안내를 따르세요. Android 스튜디오에서 AVD 시스템 이미지를 사용하여 앱을 개발하고 테스트할 수 있습니다.

  1. 추가 sdk 및 sdk_repo 패키지를 생성합니다.

    Android 13 이상의 경우 emu_img_zip 명령어를 사용합니다.

    $ make emu_img_zip
    

    이렇게 하면 sdk-repo-linux-system-images-eng.[username]].zip 파일이 생성됩니다.

    Android 12 이하의 경우 sdk_repo 명령어를 사용합니다.

    $ make -j32 sdk sdk_repo
    

    make sdk sdk_repo 명령어는 aosp-android-latest-release/out/host/linux-x86/sdk/sdk_phone_x86 아래에 파일 두 개를 만듭니다.

    • sdk-repo-linux-system-images-eng.[username].zip
    • repo-sys-img.xml
  2. 사용자가 액세스할 수 있는 위치에서 sdk-repo-linux-system-images-eng.[username].zip 파일을 호스팅하고 URL을 가져와 AVD 시스템 이미지 URL 로 사용합니다.

  3. Android 12 이하의 경우 적절하게 repo-sys-img.xml을 수정합니다.

    • <sdk:url>을 AVD 시스템 이미지 URL로 업데이트합니다.
    • 파일의 다른 업데이트에 관해 알아보려면 sdk-sys-img-03.xsd 를 참고하세요.
    • 사용자가 액세스할 수 있는 위치에서 repo-sys-img.xml을 호스팅하고 URL을 가져와 맞춤 업데이트 사이트 URL 로 사용합니다.

맞춤 AVD 이미지를 사용하려면 SDK Manager에서 다음을 실행합니다.

  1. 맞춤 업데이트 사이트 URL 을 SDK 업데이트 사이트로 추가합니다.

    이렇게 하면 맞춤 AVD 시스템 이미지가 시스템 이미지 페이지에 추가됩니다.

  2. 맞춤 AVD 시스템 이미지를 다운로드하고 선택하여 AVD를 생성합니다.

다중 디스플레이 지원 추가

Android 10 은 자동 및 데스크톱 모드와 같은 더 많은 사용 사례를 더 효과적으로 지원하기 위해 다중 디스플레이 를 개선합니다. Android Emulator는 다중 디스플레이 에뮬레이션도 지원합니다. 따라서 실제 하드웨어를 설정하지 않고도 특정 다중 디스플레이 환경을 만들 수 있습니다.

다음과 같이 변경하거나 이 CL에서 선별하여 AVD에 다중 디스플레이 지원을 추가할 수 있습니다.

  • build/target/product/sdk_phone_x86.mk 파일에 다음 행을 추가하여 다중 디스플레이 프로바이더를 빌드에 추가합니다.

    PRODUCT_ARTIFACT_PATH_REQUIREMENT_WHITELIST := \
        system/lib/libemulator_multidisplay_jni.so \
        system/lib64/libemulator_multidisplay_jni.so \
        system/priv-app/MultiDisplayProvider/MultiDisplayProvider.apk \
    PRODUCT_PACKAGES += MultiDisplayProvider
    
  • device/generic/goldfish/data/etc/advancedFeatures.ini 파일에 다음 행을 추가하여 다중 디스플레이 기능 플래그를 사용 설정합니다.

    MultiDisplay = on
    

다음 소스에서 최신 에뮬레이터 기능 및 출시 정보를 찾을 수 있습니다.