Dispositivi Android virtuali Cuttlefish

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

Obiettivi di seppia

  • Consenti agli sviluppatori di piattaforme e app di non dipendere 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 all'alta fedeltà mantenendo un'attenta allineamento con il framework di base.
  • Supporta tutti i livelli API successivi al 28.
  • Fornisci un livello di funzionalità coerente nei vari livelli dell'API, in linea con il comportamento sull'hardware fisico.
  • Attiva la scala:

    • Offrire la possibilità di eseguire più dispositivi in parallelo.
    • Consente l'esecuzione di test simultanei con elevata fedeltà a un costo di entry inferiore.
  • Fornisci un dispositivo configurabile con la possibilità di regolare il fattore di forma, la RAM, le CPU e così via.

Confrontare Cuttlefish con altri dispositivi

Cuttlefish e emulatore Android

Esistono molte somiglianze con l'emulatore Android, ma Cuttlefish garantisce la massima fedeltà con il framework Android (che si tratti di AOSP puro o di un'implementazione personalizzata nel tuo albero). Nell'applicazione reale, questo significa che dovresti aspettarti che Cuttlefish risponda alle tue interazioni a livello di sistema operativo come un telefono fisico di destinazione creato con la stessa sorgente 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ò potrebbe comportare delle difficoltà se vuoi creare un emulatore con il tuo framework Android personalizzato. Se hai bisogno di un dispositivo virtuale che rappresenti il codice della tua piattaforma/del tuo framework personalizzato o Android di punta, Cuttlefish è un'opzione virtuale ideale. È 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 di hardware abstraction layer (HAL), nonché in qualsiasi software che interagisce con hardware personalizzato. Ad eccezione delle implementazioni specifiche per l'hardware, dovresti aspettarti un comportamento funzionalmente equivalente tra Cuttlefish e un dispositivo fisico.

In che modo Cuttlefish può aiutarti?

Puoi interagire con Cuttlefish come faresti con qualsiasi altro dispositivo Android che potresti utilizzare per il debug. Si registrerà come un normale dispositivo tramite adb e potrai interagire con esso come con un dispositivo fisico tramite Remote Desktop. I casi d'uso sono ampi e possono includere test di app, test di compilazione di sistemi personalizzati e altro ancora.

Poiché Cuttlefish si impegna per garantire la fedeltà completa del framework, può essere utilizzato per il test funzionale del framework o delle app in cui non sono presenti dipendenze hardware fisiche impossibili da emulare.

Come viene comunemente 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

Posso ospitare Cuttlefish nel cloud?

Sì, Cuttlefish supporta nativamente Google Cloud ed è previsto il supporto di altre piattaforme cloud.

Inizia

Per indicazioni su come creare un'istanza Cuttlefish basata su AOSP, consulta Utilizzare Cuttlefish.