Cuttlefish è un dispositivo Android virtuale configurabile che può essere eseguito sia in remoto (utilizzando offerte cloud di terze parti come Google Cloud Engine) che in locale (su macchine Linux x86).
Obiettivi di seppia
- Libera lo sviluppatore della piattaforma e dell'app dalla dipendenza 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 uno stretto allineamento con il framework principale.
- Supporta tutti i livelli API dopo il 28.
- Fornisci un livello coerente di funzionalità tra i livelli API, in linea con il comportamento sull'hardware fisico.
Abilita scala:
- Fornire la possibilità di eseguire più dispositivi in parallelo.
- Consenti l'esecuzione simultanea di test con alta fedeltà a un costo di ingresso inferiore.
Fornire un dispositivo configurabile con la possibilità di regolare fattore di forma, RAM, CPU, ecc.
Confronta Seppia con altri dispositivi
Seppia ed emulatore Android
Ci sono molte somiglianze con l' emulatore Android , ma Cuttlefish garantisce la piena fedeltà con il framework Android (sia che si tratti di AOSP puro o di un'implementazione personalizzata nel proprio albero). Nell'applicazione del mondo reale, ciò significa che dovresti aspettarti che Cuttlefish risponda alle tue interazioni a livello di sistema operativo proprio come un target telefonico fisico costruito con la stessa sorgente del sistema operativo Android personalizzata o pura.
L'emulatore Android è stato creato attorno al caso d'uso per semplificare lo sviluppo di applicazioni e contiene molti hook funzionali per fare appello ai casi d'uso dello sviluppatore di app Android. Ciò potrebbe presentare delle difficoltà se desideri creare un emulatore con il tuo framework Android personalizzato. Se hai bisogno di un dispositivo virtuale che sia rappresentativo della tua piattaforma/codice framework personalizzato o Android tip-of-tree, allora Cuttlefish è un'opzione virtuale ideale. È il dispositivo canonico per rappresentare lo stato attuale dello sviluppo di AOSP.
Seppie e dispositivo fisico
Le differenze principali tra un dispositivo virtuale Cuttlefish e il tuo dispositivo fisico sono a livello di livello di astrazione hardware (HAL), così come qualsiasi software che interagisce con qualsiasi hardware personalizzato. Fatta eccezione per le implementazioni specifiche dell'hardware, dovresti aspettarti un comportamento funzionalmente equivalente tra Cuttlefish e un dispositivo fisico.
Come può aiutare la seppia?
Puoi interagire con Cuttlefish proprio 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 un dispositivo fisico tramite desktop remoto. I casi d'uso sono ampi e possono comprendere test di applicazioni, test di build di sistemi personalizzati e altro ancora.
Poiché Cuttlefish si impegna per la piena fedeltà del framework, può essere utilizzato per test funzionali del framework e/o delle applicazioni in cui non ci sono dipendenze hardware fisiche impossibili da emulare.
Come viene comunemente usata la seppia per i test oggi?
Alcune applicazioni comuni di seppia per i test includono:
- CTS
- Conformità quadro
- Test di integrazione continua
- Suite di test personalizzate
Posso ospitare le seppie nel cloud?
Sì, Cuttlefish supporta nativamente Google Cloud ed è previsto il supporto per altre piattaforme cloud.
Iniziare
Per indicazioni sulla creazione di un'istanza Cuttlefish basata su AOSP, consulta Use Cuttlefish .