Android (Automotive)

Android Cuttlefish (안드로이드 커틀피쉬)

chbae 2024. 11. 8. 02:09
728x90

Android Cuttlefish란?

Android Cuttlefish는 안드로이드 운영체제를 가상으로 실행할 수 있도록 설계된 가상 장치로, 특히 OS 및 하드웨어 통합 수준에서의 테스트에 최적화되어 있다. Cuttlefish는 구글 클라우드 플랫폼(GCP)과 AWS (Amazon Web Service) 같은 클라우드 환경에서 실행될 수 있어, 대규모 테스트나 원격 액세스가 필요한 개발자들에게 유용하다. 주로 시스템 개발자나 플랫폼 엔지니어들이 안드로이드 시스템 구성 요소 및 하드웨어와의 통합을 테스트하는 데 활용한다.

출처: https://source.android.com/docs/devices/cuttlefish/multi-display?hl=ko

Android Cuttlefish와 Emulator와의 차이점

목적

  • Cuttlefish: 주로 OS 및 하드웨어 통합 수준에서의 테스트를 위해 설계된 가상 장치이다. 일반 애플리케이션보다는 안드로이드 시스템 구성 요소와 관련된 플랫폼 개발자들이 많이 사용한다.
  • Emulator: 주로 일반 앱 개발과 테스트를 위해 설계되었다. 컴퓨터에서 안드로이드 기기를 시뮬레이션하여 앱 개발자들이 많이 사용한다.

배포 및 호환성

  • Cuttlefish: 주로 리눅스 기반 환경에서 실행되며, 특히 구글 클라우드 플랫폼(GCP)과 같은 클라우드 환경에서의 테스트에 최적화되어 있다.
  • Emulator: 다양한 호스트 시스템(Windows, macOS, Linux)과 높은 호환성을 가지고 있으며, 일반적인 앱 개발을 위한 편리한 툴이다.

Android Cuttlefish 사용 팁 및 사례

  • x86-64와 arm64를 모두 지원하지만 x86-64 환경을 선호한다. arm64에서는 일부 기능이 제한될 수 있다. riscv-64도 지원할 예정이다.
  • cuttlefish와 emulator 모두 KVM (Kernel-based Virtual Machine)이 지원되어야 한다. cuttlefish는 그 위에서 docker와 같은 container를 사용하여 여러개를 띄워 사용할 수 있는 장점이 있다.
  • cuttlefish는 CI와 연결하여 사용할 수 있으며 쿠버네티스를 사용하여 여러개의 container를 관리할 수 있다. 설정할 때 "Running Android on Amazon EKS" 레퍼런스를 참고하면 좋다. AWS에서 직접 추천해준 링크이다.

레퍼런스