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-main; cd aosp-main
    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. 추가 sdksdk_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-main/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 파일을 호스팅하고 AVD 시스템 이미지 URL로 사용할 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. 맞춤 업데이트 사이트 URLSDK 업데이트 사이트로 추가합니다.

    이렇게 하면 맞춤 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
    

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