Dispositivi Android virtuali Seppia

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 su framework di un dispositivo reale con particolare attenzione all'alta fedeltà mantenendo lo stretto 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.
  • Abilita bilancia:

    • 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). Nelle applicazioni reali, ciò significa che Seppia dovrebbe rispondere alle tue interazioni a livello di sistema operativo proprio come un target di telefono fisico creato con la stessa sorgente di sistema operativo Android personalizzata o pura.

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 rappresentativo del codice della tua piattaforma/del tuo framework personalizzato o di Android di punta, Cuttlefish è un'opzione virtuale ideale. È il dispositivo canonico per rappresentare lo stato attuale dello sviluppo di AOSP.

Seppia 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 massima fedeltà del framework, può essere utilizzato per il testing 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?

Ecco alcune applicazioni comuni della Seppia per i test:

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

Posso ospitare seppie 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.