Cuttlefish 는 원격으로(Google Cloud Engine과 같은 타사 클라우드 제품 사용) 및 로컬로(Linux x86 시스템에서) 실행할 수 있는 구성 가능한 가상 Android 기기입니다.
오징어 목표
- 코드 변경 사항을 개발하고 검증하기 위해 플랫폼 및 앱 개발자가 물리적 하드웨어에 의존하지 않도록 합니다.
- 핵심 프레임워크와의 긴밀한 정렬을 유지하여 높은 충실도 에 중점을 두고 실제 장치의 프레임워크 기반 동작을 복제합니다.
- 28 이후의 모든 API 수준을 지원합니다.
- 물리적 하드웨어의 동작에 맞춰 API 수준에서 일관된 수준의 기능을 제공합니다.
규모 활성화:
- 여러 장치를 병렬로 실행할 수 있는 기능을 제공합니다.
- 낮은 진입 비용으로 충실도가 높은 동시 테스트 실행을 가능하게 합니다.
폼 팩터, RAM, CPU 등을 조정할 수 있는 구성 가능한 장치를 제공합니다.
Cuttlefish를 다른 장치와 비교
오징어와 안드로이드 에뮬레이터
Android Emulator 와 많은 유사점이 있지만 Cuttlefish는 Android 프레임워크(순수한 AOSP이든 자체 트리의 맞춤 구현이든 상관 없음)에 대한 완전한 충실도를 보장합니다. 실제 응용 프로그램에서 이는 Cuttlefish가 동일한 맞춤형 또는 순수 Android OS 소스로 구축된 물리적 전화 대상과 마찬가지로 OS 수준에서 상호 작용에 응답할 것으로 예상해야 함을 의미합니다.
Android Emulator는 애플리케이션 개발을 쉽게 만드는 사용 사례를 중심으로 구축되었으며 Android 앱 개발자의 사용 사례에 호소하는 많은 기능 후크를 포함합니다. 맞춤 Android 프레임워크로 에뮬레이터를 빌드하려는 경우 문제가 발생할 수 있습니다. 사용자 지정 플랫폼/프레임워크 코드 또는 트리 끝 Android를 나타내는 가상 장치가 필요한 경우 Cuttlefish는 이상적인 가상 옵션입니다. AOSP 개발의 현재 상태를 나타내는 정식 장치입니다.
오징어와 물리적 장치
Cuttlefish 가상 장치와 실제 장치 간의 주요 차이점은 HAL(하드웨어 추상화 계층) 수준과 사용자 지정 하드웨어와 상호 작용하는 모든 소프트웨어에 있습니다. 하드웨어별 구현을 제외하고 Cuttlefish와 물리적 장치 간에 기능적으로 동일한 동작을 기대해야 합니다.
오징어는 어떻게 도울 수 있습니까?
디버깅에 사용할 수 있는 다른 Android 기기와 마찬가지로 Cuttlefish와 상호작용할 수 있습니다. adb를 통해 일반 장치로 등록되며 원격 데스크톱을 통해 물리적 장치처럼 상호 작용할 수 있습니다. 사용 사례는 광범위하며 애플리케이션 테스트, 사용자 지정 시스템 빌드 테스트 등을 포괄할 수 있습니다.
Cuttlefish는 전체 프레임워크 충실도를 위해 노력하기 때문에 에뮬레이트할 수 없는 물리적 하드웨어 종속성이 없는 프레임워크 및/또는 애플리케이션의 기능 테스트에 사용할 수 있습니다.
Cuttlefish는 오늘날 테스트에 일반적으로 어떻게 사용됩니까?
테스트를 위한 Cuttlefish의 몇 가지 일반적인 응용 프로그램은 다음과 같습니다.
- CTS
- 프레임워크 준수
- 지속적인 통합 테스트
- 맞춤형 테스트 스위트
클라우드에서 갑오징어를 호스팅할 수 있나요?
예, Cuttlefish는 기본적으로 Google Cloud를 지원하며 다른 클라우드 플랫폼에 대한 지원도 계획되어 있습니다.
시작하기
AOSP를 기반으로 하는 Cuttlefish 인스턴스 생성에 대한 지침은 Cuttlefish 사용 을 참조하십시오.