콘텐츠로 이동

기기

여기서 기기는 Mac에 있는 Android 가상 기기(AVD)를 말합니다. 페이지는 한 번에 한 기기를 보여 줍니다.

왼쪽 목록에는 emulator -list-avds가 보고하는 모든 AVD가 표시됩니다. 각 기기마다 다음을 보여 줍니다:

  • 이름
  • 화면 해상도
  • Android 버전
  • 상태: 실행 중 아님, 부팅 중(경과 시간 초 단위 표시), 실행 중, 또는 실행 중이지만 넘겨받을 수 없음
  • 시작 또는 중지 버튼

해상도, RAM, Android 버전은 ~/.android/avd/<name>.avd/에 있는 각 AVD의 config.ini에서 가져옵니다. ANDROID_AVD_HOME을 설정했다면 게이트웨이는 대신 그 디렉터리를 읽습니다. config.ini에 항목이 없으면 비워 둡니다.

기기 옆의 시작 버튼을 클릭하세요. 게이트웨이가 다음을 실행합니다:

터미널 창
emulator -avd <name> -no-window -grpc <port> -no-boot-anim -gpu host
  • -no-window는 별도의 에뮬레이터 창을 열지 않는다는 뜻입니다. 화면은 페이지에만 나타납니다.
  • gRPC 포트는 8554부터 위로 올라가며 처음으로 비어 있는 짝수 포트입니다.
  • adb -s emulator-<serial> shell getprop sys.boot_completed가 1을 반환하면 기기가 부팅된 것으로 봅니다. 그때까지 페이지에 진행 상황이 표시됩니다.
  • 180초가 지나도 기기가 부팅되지 않으면 시작이 실패하고 게이트웨이가 에뮬레이터 프로세스를 종료합니다.

기기가 부팅 중일 때 시작을 다시 클릭해도 두 번째 사본은 시작되지 않습니다. 부팅 중에 페이지를 닫았다가 다시 열면 진행 상황이 이어집니다.

중지를 클릭하세요. 게이트웨이가 adb -s emulator-<serial> emu kill을 실행합니다.

게이트웨이는 에뮬레이터가 ~/Library/Caches/TemporaryItems/avd/running/에 기록하는 파일을 통해 실행 중인 에뮬레이터를 찾습니다. 예를 들어 -grpc <port>로 시작한 에뮬레이터처럼 gRPC가 활성화된 채 실행 중인 에뮬레이터가 있으면, 게이트웨이는 다른 사본을 시작하지 않고 그 에뮬레이터에 연결합니다.

gRPC 없이 실행 중인 에뮬레이터는 “실행 중이지만 넘겨받을 수 없음”으로 표시됩니다. 게이트웨이가 화면을 읽고 입력을 보내려면 gRPC가 필요합니다. 그 에뮬레이터를 중지하고 페이지에서 시작하세요.

게이트웨이를 중지해도 에뮬레이터는 중지되지 않습니다. 게이트웨이를 다시 시작하면 에뮬레이터에 다시 연결합니다.

AVD가 없으면 게이트웨이는 첫 실행 때 emu_web_default를 만들겠다고 제안합니다: Pixel 5 프로필, Android 14(API 34)용 arm64 시스템 이미지, 4096 MB RAM, 1080×2340. 첫 실행을 참고하세요. avdmanager나 Android Studio로 기기를 만들 수도 있으며, 목록에 자동으로 나타납니다.