Dispositivi Android virtuali Cuttlefish

Cuttlefish è un dispositivo virtuale configurabile basato su Android che può essere eseguito sia in remoto (utilizzando offerte cloud di terze parti come Google Cloud Engine) sia in locale (su macchine Linux x86 e ARM64).

Obiettivi di Cuttlefish

  • Liberare lo sviluppatore di piattaforme e app dalla dipendenza dall'hardware fisico per sviluppare e convalidare le modifiche al codice.
  • Replica il comportamento basato sul framework di un dispositivo reale con un'attenzione particolare alla fedeltà elevata, mantenendo uno stretto allineamento con il framework principale.
  • Supporta tutti i livelli API successivi al 28.
  • Fornisci un livello di funzionalità coerente tra i livelli API, in linea con il comportamento dell'hardware fisico.
  • Attiva scala:

    • Offrire la possibilità di eseguire più dispositivi in parallelo.
    • Consente l'esecuzione simultanea di test ad alta fedeltà a un costo di ingresso inferiore.
  • Fornisci un dispositivo configurabile con la possibilità di regolare elementi come il fattore di forma, la RAM e le CPU.

Confrontare Cuttlefish con altri dispositivi

Questa sezione confronta Cuttlefish con altri dispositivi.

Cuttlefish ed emulatore Android

Presenta molte somiglianze con l'emulatore Android, ma Cuttlefish ha una fedeltà completa con Android Framework (che si tratti di AOSP puro o di un'implementazione personalizzata nel tuo albero). In un'applicazione reale, ciò significa che devi aspettarti che Cuttlefish risponda alle tue interazioni a livello di sistema operativo proprio come un target di smartphone fisico creato con la stessa origine del sistema operativo Android personalizzato o puro.

L'emulatore Android è stato creato per semplificare lo sviluppo di app e contiene molti hook funzionali per soddisfare i casi d'uso degli sviluppatori di app per Android. Ciò può presentare delle difficoltà se vuoi creare un emulatore con il tuo framework Android personalizzato. Se hai bisogno di un dispositivo virtuale rappresentativo del tuo codice o framework personalizzato o della versione più recente di Android, Cuttlefish è un'opzione virtuale ideale. Cuttlefish è il dispositivo canonico per rappresentare lo stato attuale dello sviluppo di AOSP.

Cuttlefish e dispositivo fisico

Le differenze principali tra un dispositivo virtuale Cuttlefish e il tuo dispositivo fisico si trovano a livello dell'Hardware Abstraction Layer (HAL), nonché in qualsiasi software che interagisce con hardware personalizzato. A eccezione delle implementazioni specifiche dell'hardware, dovresti aspettarti un comportamento funzionalmente equivalente tra Cuttlefish e un dispositivo fisico.

Come può aiutarti Cuttlefish

Puoi interagire con Cuttlefish come faresti con qualsiasi altro dispositivo Android che potresti utilizzare per il debug. Si registra come un normale dispositivo con adb e puoi interagire con esso come con un dispositivo fisico con il desktop remoto. I casi d'uso sono ampi e possono riguardare test di app, test di build di sistemi personalizzati e altro ancora.

Poiché Cuttlefish mira alla piena fedeltà del framework, può essere utilizzato per test funzionali del framework o delle app in cui non sono presenti dipendenze hardware fisiche impossibili da emulare.

Come viene utilizzato Cuttlefish per i test oggi

Alcune applicazioni comuni di Cuttlefish per i test includono:

  • CTS
  • Conformità al framework
  • Test di integrazione continua
  • Suite di test personalizzate

Ospitare Cuttlefish nel cloud

Cuttlefish supporta in modo nativo Google Cloud e il supporto di altre piattaforme cloud è pianificato.

Inizia

Per indicazioni sulla creazione di un'istanza Cuttlefish basata su AOSP, consulta Utilizzare Cuttlefish.