Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Test della piattaforma Android

Questo contenuto è rivolto agli sviluppatori di piattaforme Android. Prima di capire come vengono eseguiti i test sulla piattaforma Android, fare riferimento all'architettura della piattaforma Android per una panoramica.

Quindi approfondisci le tecnologie precise disponibili in questa sezione, come Vendor Test Suite (VTS) e la sua miriade di tutorial video e codelab .

Nota anche i meccanismi di test specifici per la sicurezza disponibili per rilevare e rafforzare i tuoi dispositivi contro le vulnerabilità.

Per il test delle app, inizia con i fondamenti del test e conduci il codelab di test Android utilizzando gli esempi forniti.

Infine, nota che i test di pre-invio di base sono disponibili tramite Repo Hooks che possono eseguire linter, controllare la formattazione e attivare unit test prima di procedere, come il caricamento di un commit. Nota che questi hook sono disabilitati per impostazione predefinita. Vedere l'introduzione di Repo Hooks per maggiori dettagli.

Cosa e come testare

Un test della piattaforma interagisce in genere con uno o più servizi di sistema Android, o livelli HAL (Hardware Abstraction Layer), esercita le funzionalità del soggetto sottoposto a test e afferma la correttezza del risultato del test.

Pertanto, un test della piattaforma può:

  1. esercitare le API del framework tramite il framework dell'applicazione; API specifiche che vengono esercitate possono includere:
    • API pubbliche destinate ad applicazioni di terze parti
    • API nascoste destinate ad applicazioni privilegiate, ovvero API di sistema
    • API private (@hide o protected, pacchetto privato)
  2. invoca direttamente i servizi di sistema Android tramite raw binder / proxy IPC
  3. interagire direttamente con gli HAL tramite API di basso livello o interfacce IPC

I tipi 1 e 2 sono tipicamente scritti come test di strumentazione , mentre i tipi 3 sono solitamente scritti come test nativi utilizzando il framework gtest .

Per saperne di più, guarda i nostri esempi end-to-end:

Acquisisci familiarità con questi strumenti, poiché sono intrinseci ai test in Android.

Suite di test di compatibilità (CTS)

Android Compatibility Test Suite è una suite di vari tipi di test, utilizzata per garantire la compatibilità delle implementazioni del framework Android tra i partner OEM e tra le versioni della piattaforma. La suite include anche test di strumentazione e test nativi (utilizzando anche il framework gtest).

CTS e i test della piattaforma non si escludono a vicenda e qui ci sono alcune linee guida generali:

  • se un test afferma la correttezza delle funzioni / comportamenti dell'API del framework e dovrebbe essere applicato ai partner OEM, dovrebbe essere in CTS
  • se un test ha lo scopo di catturare regressioni durante il ciclo di sviluppo della piattaforma e può richiedere un'autorizzazione privilegiata per essere eseguito e può dipendere dai dettagli di implementazione (come rilasciato in AOSP), dovrebbero essere solo test della piattaforma

Vendor Test Suite (VTS)

Vendor Test Suite (VTS) automatizza i test del kernel di HAL e OS. Per utilizzare VTS per testare un'implementazione del sistema nativo Android, configurare un ambiente di test, quindi testare una patch utilizzando un piano VTS.

Infrastruttura di prova della Federazione dei Mercanti

Trade Federation (tradefed o TF in breve) è un framework di test continuo progettato per l'esecuzione di test su dispositivi Android. TF può eseguire test funzionali localmente, alla tua scrivania, all'interno della tua piattaforma di pagamento. Ci sono due file richiesti per eseguire un test in TF, una sorgente di test java e una configurazione XML. Vedi RebootTest.java e reboot.xml per esempi.

Debug

La sezione Debug riassume strumenti utili e comandi correlati per il debug, la traccia e la profilazione del codice della piattaforma Android nativa durante lo sviluppo di funzionalità a livello di piattaforma.