Android Virtual Device(AVD)는 Android Emulator에서 시뮬레이션하려는 Android 휴대전화나 태블릿, Wear OS, Android TV, Automotive OS 기기의 특성을 정의하는 구성입니다. 기기 관리도구는 AVD를 만들고 관리하는 데 도움을 주는 도구로 Android 스튜디오에서 실행할 수 있습니다.
새 기기 관리도구를 열려면 다음 중 하나를 실행하세요.
- Android 스튜디오 시작 화면에서 More Actions > Virtual Device Manager를 선택합니다.
- 프로젝트를 연 후 기본 메뉴 바에서 View > Tool Windows > Device Manager를 선택한 다음 +를 클릭하고 Create Virtual Device를 클릭합니다.
기기를 만들면 기기 관리자 패널에 모든 기기의 목록이 표시됩니다.
가상 기기를 사용하여 확장 가능한 자체 관리 방식으로 자동화된 계측 테스트를 실행하려면 Gradle 관리 기기를 사용해 보세요.
AVD 정보
AVD에는 하드웨어 프로필과 시스템 이미지, 저장소 영역, 스킨, 기타 속성이 포함됩니다.
매니페스트의 <uses-sdk>
설정에 기반하여 앞으로 지원 가능성이 있는 시스템 이미지마다 AVD를 만드는 것이 좋습니다.
하드웨어 프로필
하드웨어 프로필은 공장에서 배송된 상태 그대로의 기기 특성을 정의합니다. 기기 관리도구에는 특정 하드웨어 프로필(예: Pixel 기기)이 미리 로드되어 있으며 필요에 따라 하드웨어 프로필을 정의하거나 맞춤설정할 수 있습니다.
Play 스토어 열에서 Google Play 로고로 라벨이 지정된 기기 정의에는 Google Play 스토어 앱 및 Google Play 서비스 액세스 권한이 포함됩니다. 기기에서 Google Play 서비스를 간편하게 업데이트할 수 있는 버튼이 제공되는 Extended controls 대화상자의 Google Play 탭도 정의에 포함됩니다.
이 로고가 있고 기기 유형이 '휴대전화'인 기기도 CTS를 준수하며 Play 스토어 앱을 포함하는 시스템 이미지를 사용할 수 있습니다.
시스템 이미지
Google API로 라벨이 지정된 시스템 이미지에는 Google Play 서비스 액세스 권한이 포함됩니다.
Recommended 탭에는 추천 시스템 이미지가 나열됩니다. 다른 탭에는 관련된 전체 목록이 포함되어 있습니다. 오른쪽 창에는 선택한 시스템 이미지에 대한 설명이 나옵니다.
시스템 이미지 옆에 다운로드 아이콘이 표시된다면 해당 이미지가 현재 개발 머신에 설치되어 있지 않은 것입니다. 아이콘을 클릭하여 시스템 이미지를 다운로드합니다. 시스템 이미지를 다운로드하려면 인터넷에 연결되어 있어야 합니다.
대상 기기의 API 수준이 중요한 이유는 앱 매니페스트 파일의 minSdk
속성에 지정된 값, 즉 앱에서 필요한 API 수준보다 API 수준이 낮은 시스템 이미지에서는 앱을 실행할 수 없기 때문입니다. 시스템 API 수준과 minSdk
의 관계에 관한 자세한 내용은 앱 버전 지정을 참고하세요.
앱이 매니페스트 파일에서 <uses-library>
요소를 선언하면 앱은 요소에 선언된 외부 라이브러리가 포함된 시스템 이미지가 필요합니다.
에뮬레이터에서 앱을 실행하려면 필요한 라이브러리가 포함된 AVD를 만듭니다. 이렇게 하려면 AVD 플랫폼용 부가기능 구성요소를 사용해야 할 수도 있습니다. 부가기능 구성요소의 예로는 Google 지도 라이브러리가 포함된 Google API 부가기능을 들 수 있습니다.
Google Play 스토어가 포함된 시스템 이미지는 앱 보안과 실제 기기의 일관성 있는 환경을 보장하기 위해 출시 키로 서명되어 있으므로 승격된 권한(루트)을 얻는 데 사용할 수 없습니다.
앱 문제 해결을 위해 승격된 권한 (루트)이 필요한 경우 Google 앱이나 서비스가 포함되지 않은 Android 오픈소스 프로젝트 (AOSP) 시스템 이미지를 사용하면 됩니다. 그런 다음 adb root
및 adb unroot
명령어를 사용하여 일반 권한과 승격된 권한 간에 전환할 수 있습니다.
% adb shell emu64a:/ $ emu64a:/ $ exit % adb root restarting adbd as root % adb shell emu64a:/ # emu64a:/ # exit % adb unroot restarting adbd as non root % adb shell emu64a:/ $ emu64a:/ $ exit %
저장소 영역
AVD에는 개발 머신에 있는 전용 저장소 영역이 있습니다. 저장소 영역에는 설치된 앱 및 설정과 같은 기기 사용자 데이터와 에뮬레이션된 SD 카드가 저장됩니다. 필요한 경우 기기 관리도구를 사용하여 사용자 데이터를 완전히 삭제하면 기기의 데이터를 새 기기와 같이 만들 수 있습니다.
스킨
에뮬레이터 스킨은 기기의 모양을 지정합니다. 기기 관리도구는 미리 정의된 스킨을 제공합니다. 사용자가 직접 정의하거나 서드 파티에서 제공한 스킨을 사용할 수도 있습니다.
AVD 및 앱 기능
AVD 정의에 앱이 사용하는 기기의 기능이 포함되어 있는지 확인하세요. AVD에 정의할 수 있는 기능 목록은 하드웨어 프로필 속성 및 AVD 속성 섹션을 참고하세요.
AVD 만들기
새 AVD를 만들려면 다음 단계를 따르세요.
- 기기 관리도구를 엽니다.
- Create Device를 클릭합니다.
Select Hardware 창이 표시됩니다.
일부 하드웨어 프로필에만 Play 스토어가 포함되어 있습니다. 이러한 프로필은 CTS를 완전히 준수하며 Play 스토어 앱이 포함된 시스템 이미지를 사용할 수도 있습니다.
- 하드웨어 프로필을 선택한 다음 Next를 클릭합니다.
원하는 하드웨어 프로필이 표시되지 않으면 이 페이지의 다른 섹션에서 설명한 대로 하드웨어 프로필을 만들거나 가져올 수 있습니다.
System Image 창이 표시됩니다.
- 특정 API 수준의 시스템 이미지를 선택한 다음 Next를 클릭합니다.
- 필요한 경우 AVD 속성을 변경한 다음 Finish를 클릭합니다.
Show Advanced Settings를 클릭하면 더 많은 설정(예: 스킨)이 표시됩니다.
Verify Configuration 창이 표시됩니다.
새로운 AVD가 기기 관리도구의 Virtual 탭과 대상 기기 메뉴에 표시됩니다.
복사본을 사용하여 AVD를 만들려면 다음 단계를 따르세요.
- 기기 관리도구의 Virtual 탭에서 Menu를 클릭하고 Duplicate를 선택합니다.
Verify Configuration 창이 표시됩니다.
- System Image 또는 Select Hardware 창에서 변경사항이 있는 경우 Previous를 클릭합니다.
- 필요에 따라 변경한 후 Finish를 클릭합니다.
기기 관리도구의 Virtual 탭에 AVD가 표시됩니다.
하드웨어 프로필 만들기
기기 관리도구는 일반적인 기기의 미리 정의된 하드웨어 프로필을 제공하므로 AVD 정의에 이를 쉽게 추가할 수 있습니다. 다른 기기를 정의해야 한다면 새로운 하드웨어 프로필을 만들면 됩니다.
새 하드웨어 프로필을 처음부터 정의하거나 하드웨어 프로필을 복사해 시작점으로 활용할 수 있습니다. 미리 로드된 하드웨어 프로필은 수정할 수 없습니다.
새 하드웨어 프로필을 처음부터 만들려면 다음 단계를 따르세요.
- Select Hardware 창에서 New Hardware Profile을 클릭합니다.
필요한 경우 Configure Hardware Profile 창에서 하드웨어 프로필 속성을 변경합니다.
- Finish를 클릭합니다.
새 하드웨어 프로필이 Select Hardware 창에 표시됩니다. Next를 클릭하여 하드웨어 프로필을 사용하는 AVD를 생성하거나 Cancel을 클릭하여 Virtual 탭 또는 대상 기기 메뉴로 돌아갈 수 있습니다.
복사본을 시작점으로 사용해 하드웨어 프로필을 만들려면 다음 단계를 따르세요.
- Select Hardware 창에서 하드웨어 프로필을 선택하고 Clone Device를 클릭하거나 하드웨어 프로필을 마우스 오른쪽 버튼으로 클릭하고 Clone을 선택합니다.
- 필요한 경우 Configure Hardware Profile 창에서 하드웨어 프로필 속성을 변경합니다.
- Finish를 클릭합니다.
새 하드웨어 프로필이 Select Hardware 창에 표시됩니다. Next를 클릭하여 하드웨어 프로필을 사용하는 AVD를 생성하거나 Cancel을 클릭하여 Virtual 탭 또는 대상 기기 메뉴로 돌아갈 수 있습니다.
기존 AVD 수정
기기 관리도구의 Virtual 탭에서 AVD와 관련된 다음 작업을 실행할 수 있습니다.
- AVD를 수정하려면 Edit this AVD 를 클릭하고 원하는 항목을 변경합니다.
- AVD를 삭제하려면 Menu 를 클릭하고 Delete를 선택합니다.
- 디스크에 관련 AVD INI 및 IMG 파일을 표시하려면 Menu 를 클릭하고 Show on Disk를 선택합니다.
- Android 스튜디오팀으로 보내는 버그 신고에 포함될 수 있는 AVD 구성 세부정보를 보려면 Menu 를 클릭하고 View Details를 선택합니다.
기존 하드웨어 프로필 수정
미리 로드된 하드웨어 프로필은 수정하거나 삭제할 수 없지만 Select Hardware 창에서 다른 하드웨어 프로필에 관해 다음 작업을 실행할 수 있습니다.
- 하드웨어 프로필을 수정하려면 프로필을 선택하고 Edit Device를 클릭합니다. 하드웨어 프로필을 마우스 오른쪽 버튼으로 클릭하고 Edit을 선택해도 됩니다. 그런 다음 원하는 항목을 변경합니다.
- 하드웨어 프로필을 삭제하려면 프로필을 마우스 오른쪽 버튼으로 클릭하고 Delete를 선택합니다.
에뮬레이터 실행 및 중지, 데이터 삭제
Virtual 탭에서 에뮬레이터에 관해 다음 작업을 실행할 수 있습니다.
- AVD를 사용하는 에뮬레이터를 실행하려면 Launch 를 클릭합니다.
- 실행 중인 에뮬레이터를 중지하려면 Menu 를 클릭하고 Stop을 선택합니다.
- 에뮬레이터의 데이터를 삭제하려면 Menu 를 클릭하고 Wipe Data를 선택합니다.
하드웨어 프로필 가져오기 및 내보내기
Select Hardware 창에서 다음과 같이 하드웨어 프로필을 가져오고 내보낼 수 있습니다.
- 하드웨어 프로필을 가져오려면 Import Hardware Profile을 클릭하고 컴퓨터에서 정의가 포함된 XML 파일을 선택합니다.
- 하드웨어 프로필을 내보내려면 마우스 오른쪽 버튼으로 클릭하고 Export를 선택합니다. 정의가 포함된 XML 파일을 저장할 위치를 지정합니다.
AVD 속성
AVD 구성은 개발용 컴퓨터와 에뮬레이터 사이의 상호작용과 하드웨어 프로필에서 재정의하려는 속성을 지정합니다. Verify Configuration 창에서 AVD 구성의 다음 속성을 지정할 수 있습니다. (Advanced) 라벨이 지정된 속성은 Show Advanced Settings를 클릭한 경우에만 표시됩니다.
AVD 구성 속성은 하드웨어 프로필 속성을 재정의하고 에뮬레이터가 실행되는 동안 설정한 에뮬레이터 속성은 두 가지를 모두 재정의합니다.
AVD 속성 | 설명 |
---|---|
AVD 이름 | AVD 이름을 입력합니다. 이름에는 대소문자, 숫자, 마침표, 밑줄, 괄호, 대시, 공백이 포함될 수 있습니다. AVD 구성을 저장하는 파일 이름은 AVD 이름에서 파생됩니다. |
AVD ID(고급) | AVD ID를 확인합니다. AVD ID는 AVD 이름에서 파생됩니다. 이 ID를 사용하여 명령줄에서 AVD를 참조할 수 있습니다. |
하드웨어 프로필 | Change를 클릭하여 Select Hardware 창에서 다른 하드웨어 프로필을 선택합니다. |
시스템 이미지 | Change를 클릭하여 System Image 창에서 다른 시스템 이미지를 선택합니다. 새 이미지를 다운로드하려면 인터넷에 연결되어 있어야 합니다. |
시작 방향 | 초기 에뮬레이터 방향에 맞게 옵션을 선택합니다.
옵션은 하드웨어 프로필에서 지원되는 경우에만 사용 설정됩니다. AVD를 에뮬레이터에서 실행할 때 하드웨어 프로필에서 세로 및 가로 모드가 모두 지원되는 경우 방향을 변경할 수 있습니다. |
카메라(고급) | 사용 설정된 카메라에 맞는 옵션을 선택합니다. 에뮬레이션된 설정과 VirtualScene 설정은 소프트웨어가 생성하는 이미지를 만드는 반면 웹캠 설정은 개발용 컴퓨터의 웹캠을 사용하여 사진을 촬영합니다. 카메라 옵션은 하드웨어 프로필에서 지원되는 경우에만 사용할 수 있습니다. Wear OS, Android TV, Google TV에서는 사용할 수 없습니다. |
네트워크: 속도(고급) | 네트워크 프로토콜을 선택하여 데이터 전송 속도를 결정합니다.
|
네트워크: 지연 시간(고급) | 네트워크 프로토콜을 선택하여 프로토콜이 데이터 패킷을 한 지점에서 다른 지점으로 전송하는 데 걸리는 시간을 설정합니다. |
에뮬레이션된 성능: 그래픽 | 에뮬레이터에서 그래픽 렌더링 방법을 선택합니다.
|
에뮬레이션된 성능: 부팅 옵션(고급) |
AVD가 부팅되는 방식을 선택합니다. |
에뮬레이션된 성능: 멀티코어 CPU(고급) | 에뮬레이터에 사용할 컴퓨터의 프로세서 코어 수를 선택합니다. 프로세서 코어를 더 많이 사용할수록 에뮬레이터 속도가 빨라집니다. |
메모리 및 저장소: RAM(고급) | 하드웨어 제조업체에서 설정한 기기의 RAM 크기를 재정의합니다. 크기를 늘리면 컴퓨터 리소스를 더 많이 사용하지만 에뮬레이터 작업이 더 빨라집니다. RAM 크기를 입력하고 B(바이트), KB(킬로바이트), MB(메가바이트), GB(기가바이트), TB(테라바이트) 중에서 단위를 선택합니다. |
메모리 및 저장소: VM 힙(고급) | 하드웨어 제조업체에서 설정한 VM 힙 크기를 재정의합니다. 힙 크기를 입력하고 B(바이트), KB(킬로바이트), MB(메가바이트), GB(기가바이트), TB(테라바이트) 중에서 단위를 선택합니다. |
메모리 및 저장소: 내부 저장소(고급) | 기기에서 사용할 수 있는 일체형 메모리 공간의 크기(하드웨어 제조업체에서 설정)를 재정의합니다. 크기를 입력하고 B(바이트), KB(킬로바이트), MB(메가바이트), GB(기가바이트), TB(테라바이트) 중에서 단위를 선택합니다. |
메모리 및 저장소: SD 카드(고급) | 기기의 데이터를 저장하는 데 사용할 수 있는 이동식 메모리 공간 크기를 지정합니다. Android 스튜디오에서 관리하는 가상 SD 카드를 사용하려면 Studio-managed를 선택하고 크기를 입력한 다음 B(바이트), KB(킬로바이트), MB(메가바이트), GB(기가바이트), TB(테라바이트) 중에서 단위를 선택합니다. 카메라를 사용하려면 100MB 이상의 공간을 지정하는 것이 좋습니다. 파일의 공간을 관리하려면 External file을 선택하고 ...을 클릭하여 파일 및 위치를 지정합니다. 자세한 내용은 |
기기 프레임: 기기 프레임 사용 설정 | 실제 기기 모양을 모방하는 에뮬레이터 창 주위에 프레임을 사용 설정하려면 선택합니다. |
맞춤 스킨 정의(고급) | 기기가 에뮬레이터에 표시될 때의 모양을 제어하는 스킨을 선택합니다. 스킨보다 너무 큰 화면 크기를 지정하면 화면이 잘려서 전체 화면을 볼 수 없습니다. 자세한 내용은 에뮬레이터 스킨 만들기 섹션을 참고하세요. |
키보드: 키보드 입력 사용 설정(고급) | 이 옵션을 선택하면 하드웨어 키보드를 사용하여 에뮬레이터와 상호작용할 수 있습니다. 이 옵션은 Wear OS 및 Android TV에서 사용할 수 없습니다. |
하드웨어 프로필 속성
Configure Hardware Profile 창에서 하드웨어 프로필에 다음 속성을 지정할 수 있습니다. AVD 구성 속성은 하드웨어 프로필 속성을 재정의하고 에뮬레이터가 실행되는 동안 설정한 에뮬레이터 속성은 두 가지를 모두 재정의합니다.
기기 관리도구에 포함된 미리 정의된 하드웨어 프로필은 수정할 수 없습니다. 프로필을 복사하고 복사본을 수정할 수는 있습니다.
일부 기기 유형에서는 몇 가지 속성이 사용 중지됩니다. 예를 들어 'Round' 속성은 Wear OS 기기에서만 사용할 수 있습니다.
하드웨어 프로필 속성 | 설명 |
---|---|
기기 이름 | 하드웨어 프로필의 이름을 입력합니다. 이름에는 대소문자, 숫자, 마침표, 밑줄, 괄호, 공백이 포함될 수 있습니다. 하드웨어 프로필을 저장하는 파일 이름은 하드웨어 프로필 이름에서 파생됩니다. |
기기 유형 | 다음 중 하나를 선택합니다.
|
화면: 화면 크기 | 대각선으로 측정한 화면의 실제 크기를 인치 단위로 지정합니다. 크기가 컴퓨터 화면보다 크면 시작 시 크기가 줄어듭니다. |
화면: 화면 해상도 | 너비와 높이를 픽셀 단위로 입력하여 시뮬레이션된 화면에서 사용되는 총 픽셀 수를 지정합니다. |
화면: 원형 | 기기 화면이 둥근 경우 이 옵션을 선택합니다(예: 일부 Wear OS 기기). |
메모리: RAM | 기기의 RAM 크기를 입력하고 B(바이트), KB(킬로바이트), MB(메가바이트), GB(기가바이트), TB(테라바이트) 중에서 단위를 선택합니다. |
입력: 하드웨어 버튼 있음(뒤로/홈/메뉴) | 기기에 하드웨어 탐색 버튼이 있으면 이 옵션을 선택합니다. 이러한 버튼이 소프트웨어로만 구현된다면 선택 해제합니다. 이 옵션을 선택하면 버튼이 화면에 표시되지 않습니다. 두 경우 모두 에뮬레이터 측면 패널을 사용하여 버튼 누르기를 시뮬레이션할 수 있습니다. |
입력: 하드웨어 키보드 있음 | 기기에 하드웨어 키보드가 있으면 이 옵션을 선택합니다. 하드웨어 키보드가 없으면 이 옵션을 선택 해제합니다. 이 옵션을 선택하면 키보드가 화면에 표시되지 않습니다. 두 경우 모두 컴퓨터 키보드를 사용하여 키 입력을 에뮬레이터로 전송할 수 있습니다. |
입력: 탐색 스타일 | 다음 중 하나를 선택합니다.
이러한 옵션은 기기 자체에 있는 실제 하드웨어를 컨트롤하기 위한 것입니다. 그러나 외부 컨트롤러에서 기기로 전송하는 이벤트와 동일합니다. |
지원되는 기기 상태 | 다음 옵션 중 하나를 선택하거나 둘 다 선택합니다.
하나 이상의 옵션을 선택해야 합니다. 두 옵션을 모두 선택하면 에뮬레이터에서 방향을 전환할 수 있습니다. |
카메라 | 카메라를 사용 설정하려면 다음 옵션 중 하나 또는 둘 다를 선택합니다.
카메라가 사용 설정된 경우 AVD 구성에서 선택한 옵션에 따라 개발 머신의 웹캠 또는 에뮬레이터에서 제공되는 사진을 사용하여 사진 촬영을 시뮬레이션할 수 있습니다. |
센서: 가속도계 | 기기에 기기의 방향을 결정하는 데 도움이 되는 하드웨어가 있으면 이 옵션을 선택합니다. |
센서: 자이로스코프 | 기기에 회전 또는 비틀기를 감지하는 하드웨어가 있으면 이 옵션을 선택합니다. 자이로스코프는 가속도계와 함께 사용할 경우 더 원활한 방향 감지를 제공하고 6축 방향 시스템을 지원합니다. |
센서: GPS | 기기에 위성 위치 확인 시스템(GPS), 즉 위성 기반 탐색 시스템을 지원하는 하드웨어가 있으면 이 옵션을 선택합니다. |
센서: 근접 센서 | 통화 중에 기기가 사용자의 얼굴에 가까워지면 이를 감지하여 화면에서 입력을 사용 중지하는 하드웨어가 있으면 이 옵션을 선택합니다. |
기본 스킨 | 기기가 에뮬레이터에 표시될 때의 모양을 제어하는 스킨을 선택합니다. 해상도보다 너무 큰 화면 크기를 지정하면 화면이 잘려서 전체 화면을 볼 수 없습니다. 에뮬레이터 스킨 만들기에 관한 자세한 내용은 이어지는 섹션을 참고하세요. |
에뮬레이터 스킨 만들기
Android Emulator 스킨은 에뮬레이터 디스플레이의 시각 및 컨트롤 요소를 정의하는 파일 모음입니다. AVD 설정에서 사용 가능한 스킨 정의가 요구사항을 충족하지 않으면 자체 맞춤설정 스킨 정의를 만든 다음 AVD에 적용하면 됩니다.
각 에뮬레이터 스킨에는 다음이 포함됩니다.
hardware.ini
파일- 지원되는 방향 및 실제 구성을 위한 레이아웃 파일
- 디스플레이 요소에 맞는 이미지 파일(예: 백그라운드, 키, 버튼)
맞춤설정 스킨을 만들고 사용하려면 다음 단계를 따르세요.
- 스킨 구성 파일을 저장할 수 있는 디렉터리를 만듭니다.
layout
이라는 텍스트 파일에서 스킨의 시각적 모양을 정의합니다. 이 파일은 스킨의 많은 특성(예: 특정 버튼의 크기 및 이미지 애셋)을 정의합니다. 예:parts { device { display { width 320 height 480 x 0 y 0 } } portrait { background { image background_port.png } buttons { power { image button_vertical.png x 1229 y 616 } } } ... }
- 기기 이미지의 비트맵 파일을 동일한 디렉터리에 추가합니다.
- 기기 설정의 INI 파일에 하드웨어별 기기 구성을 추가로 지정합니다(예:
hw.keyboard
,hw.lcd.density
). - 스킨 폴더에 파일을 보관처리하고 보관 파일을 맞춤설정 스킨으로 선택합니다.
에뮬레이터 스킨 만들기에 관한 자세한 내용은 도구 소스 코드에서 Android Emulator 스킨 파일 사양을 참고하세요.