Android Camera Image Test Suite (ITS) fa parte di Android Compatibility Test Suite (CTS) Verifier e include test che verificano il contenuto delle immagini. CTS Verifier supporta l'automazione dei test ITS con Camera ITS-in-a-box; il supporto per i test manuali copre tutti i fattori di forma dei dispositivi Android.
ITS-in-a-box include i seguenti vantaggi:
- Automazione. Durante il test non è necessario alcun intervento umano.
- Facile risoluzione dei problemi. La coerenza dell'ambiente di test porta a un minor numero di errori di configurazione e aumenta la riproducibilità.
- Efficienza. La possibilità di riprovare per singola telecamera/scena migliora l'efficienza dell'esecuzione del test.
Iniziare
ITS-in-a-box consiste in una scatola di plastica tagliata al laser da disegni CAD (computer-aided design), una tavoletta grafica e un dispositivo in prova (DUT). È possibile utilizzare l'ITS-in-a-box con ampio campo visivo (WFoV), che è in grado di testare sia le telecamere WFoV (FoV > 90 gradi) che RFoV (FoV < 90 gradi), oppure il normale campo visivo -view (RFoV) ITS-in-a-box.
Per iniziare con la fotocamera ITS-in-a-box:
- Acquista o crea un WFoV o RFoV ITS-in-a-box.
- Configura un tablet con il software Camera ITS.
- Eseguire test .
- Ottieni risultati dal DUT.
Configurazione del tablet
Questa sezione fornisce istruzioni dettagliate per la configurazione di un tablet da utilizzare con i test Camera ITS che si trovano nella directory CameraITS
. Queste istruzioni utilizzano un Pixel C come tablet di esempio. Per informazioni sui requisiti e sui consigli del tablet, vedere Requisiti del tablet .
Nota: gli script Camera ITS Python impostano automaticamente le seguenti opzioni sul tablet:
Impostazioni > Display > Sospensione > Dopo 30 minuti di inattività
Luminosità adattiva > OFF
- Carica il tablet e accendilo. Se ti viene richiesto di configurare un account, saltalo (Camera ITS non richiede alcun account associato al tablet).
- Aggiorna il tablet ad Android 7.0 o versioni successive. Android 6.x e versioni precedenti non supportano Camera ITS.
- Abilita la modalità sviluppatore .
- Torna a Impostazioni e seleziona Opzioni sviluppatore.
Abilita opzioni - SU
- Stai sveglio
- Debug USB (questo consente all'host di eseguire il tablet in modalità di debug. Quando si collega il tablet all'host per la prima volta, il tablet richiede Consenti debug USB? Se il tablet non visualizza il prompt di debug, scollegare e ricollegare il tavoletta.)
Disabilita le opzioni - Aggiornamenti automatici del sistema
- Verifica le app tramite USB
- Determina DUT e gli ID del grafico eseguendo
$ adb devices
per elencare i dispositivi disponibili. Per determinaredevice_id
echart_id
, collegare e scollegare i dispositivi e osservare i dispositivi che si connettono e si disconnettono. - Eseguire tre esecuzioni di test per sopprimere i suggerimenti e le richieste dell'utente che possono oscurare i grafici sullo schermo del tablet.
- Posizionare il tablet rivolto verso l'alto su un tavolo (non fissare il tablet al pannello posteriore della scatola).
- Eseguire il comando seguente:
python tools/run_all_tests.py device=$device_id camera=0 chart=$chart_id scenes=2,3
Le scene 2 e 3 richiedono che il tablet visualizzi un'immagine, quindi il tablet richiede Consenti a Drive di accedere a foto, contenuti multimediali e file sul dispositivo? . Cancella questo messaggio (ed evita messaggi futuri) premendo Consenti. - Eseguire di nuovo il comando. Il tablet chiede Conservare una copia di questo file? e suggerisce Google Drive. Cancella questo messaggio (ed evita messaggi futuri) premendo l'icona Drive e quindi Annulla per il caricamento su Drive.
- Infine, esegui
tools/run_all_tests.py
e verifica che le scene cambino automaticamente man mano che lo script scorre attraverso diverse scene. Sebbene la maggior parte dei test fallisca (poiché la fotocamera non è puntata sul grafico), puoi verificare che il tablet scorra correttamente attraverso le scene senza visualizzare alcun prompt o altri popup sullo schermo.
Prove in corso
Prima di eseguire ITS-in-a-box, assicurarsi che la configurazione del test includa il seguente hardware e software:
- Un (1) ITS-in-a-box
- Un (1) tablet da 10" ad alta risoluzione per la visualizzazione di scene, S/N: 5811000011
- Un (1) DUT con l'app CTS Verifier 7.0_8+ installata. Esempio DUT:
- Un (1) Pixel NOF26W per il test della fotocamera posteriore(0), S/N: FA6BM0305016. Per installare l'app CTS Verifier, decomprimere
android-cts-verifier.zip
quindi eseguireadb -s FA6BM0305016 install -r -g android-cts-verifier/CtsVerifier.apk
- Un (1) Pixel NOF26W per il test della fotocamera posteriore(0), S/N: FA6BM0305016. Per installare l'app CTS Verifier, decomprimere
Esecuzione di scene basate su tablet
Per eseguire le scene da 0 a 4, 6 e scene_change sulla fotocamera posteriore:
cd android-cts-verifier/CameraITS
. build/envsetup.sh
python tools/run_all_tests.py camera=0
Esempio:

Riprovare le scene
Puoi riprovare le scene per una singola telecamera:
- Per riprovare le scene su una singola telecamera:
python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=3,4
Scena di corsa 5
La scena 5 richiede una configurazione speciale con un'illuminazione specifica (per i dettagli, fare riferimento a CameraITS.pdf
in CTS Verifier, che è possibile scaricare da Compatibility Test Suite Downloads ). Devi eseguire la scena 5 separatamente (fuori dagli schemi).

Per eseguire la scena 5 per le fotocamere anteriore e posteriore su un singolo dispositivo:
python tools/run_all_tests.py device=FA6BM0305016 camera=0 scenes=5
python tools/run_all_tests.py device=FA6BM0305016 camera=1 scenes=5
Ottenere risultati
È possibile visualizzare i risultati durante il test e salvare i risultati completati come report.
- Vedi i risultati. Per salvare i risultati di Camera ITS come rapporto:
- Premi Pass e salva il rapporto.
Figura 3. Rapporto ITS della telecamera - Estrai i report dal dispositivo:
adb -s FA6BM0305016 pull /sdcard/verifierReports
- Decomprimi il file del report e visualizza
test_result.xml
.
Figura 4. Rapporti ITS della telecamera
- Premi Pass e salva il rapporto.
Requisiti del tablet
I tablet devono avere una dimensione del display di circa 10 pollici con una risoluzione dello schermo superiore a 1920 x 1200 pixel. Il valore di brightness
deve essere impostato in config.yml
in base al modello di tablet. La tabella seguente elenca i tablet consigliati per i test ITS insieme alle versioni di rilascio di Android per il DUT con cui funzionano i tablet.
Dispositivo | Dimensioni del display (pollici) | Dimensioni del display (pixel) | Dimensioni tavoletta (pollici) | Schermo luminosità | Schermo bit | Supportato Sistema operativo DUT |
---|---|---|---|---|---|---|
SAMSUNG Scheda Galaxy A8 | 10.5 | 1920x1200 | 9,72 x 6,37 x 0,27 | 192 | 8 | Androide 13+ |
Xiaomi Pad 5 | 11 | 2560 x 1600 | 10,03 x 6,55 x 0,27 | 1536 | 11 | Android 12+ |
Lenovo Scheda M10 Plus | 10.3 | 1920x1200 | 9,61 x 6,03 x 0,32 | 192 | 8 | Android 12+ |
SAMSUNG Scheda Galaxy A7 | 10.4 | 2000 x 1200 | 9,75 x 6,2 x 0,28 | 192 | 8 | Android 12+ |
Chuvi Hi9 Aria 10.1 | 10.1 | 2560 x 1600 | 9,52 x 6,77 x 0,31 | 192 | 8 | Androide 7+ |
ASUS Zen Pad 3 | 9.7 | 2048 x 1536 | 9,47 x 6,44 x 0,28 | 192 | 8 | Androide 7+ |
Huawei Media Pad m5 | 10.8 | 2560 x 1600 | 10,18 x 6,76 x 0,29 | 192 | 8 | Androide 7+ |
Google Pixel C | 10.2 | 2560 x 1800 | 9,53 x 7,05 x 0,28 | 96 | 8 | Androide 7+ |
Sony Xperia Z4 | 10.1 | 2560 x 1600 | 10 x 6,57 x 0,24 | 192 | 8 | Androide 7+ |
Domande frequenti (FAQ)
D1: Come faccio a determinare quali banchi di prova mi servono per il mio dispositivo?
La revisione 1 RFoV ITS-in-a-box verifica le telecamere RFoV per i test dalla scena 0 alla scena 4 nella directory CameraITS/tests
. RFoV è definito come 60° < FoV < 90° . Per le telecamere FoV più grandi, le luci potrebbero apparire nelle immagini o i grafici potrebbero coprire un'area troppo piccola nel FoV, influenzando i risultati del test.
La versione 2 di WFoV ITS-in-a-box testa le telecamere WFoV per i test dalla scena 0 alla scena 4 nella directory CameraITS/tests
. WFoV è definito come FoV >= 90° . È funzionalmente identico alla revisione 1, ma più grande. Il banco di prova revisione 2 può testare entrambe le telecamere RFoV e WFoV in Android 9 e versioni successive.
La scatola di fusione dei sensori testa l'offset temporale della fotocamera/giroscopio e la sincronizzazione dei fotogrammi dei sistemi multi-camera con i test in scenes=sensor_fusion
. Per il flag della funzione REALTIME
e le app VR/AR è richiesto un offset di temporizzazione della fotocamera/giroscopio inferiore a 1 ms.
I dispositivi multicamera possono essere testati con un singolo rig per i test ITS statici e un rig di fusione dei sensori se la telecamera ha il flag della funzione REALTIME
.
Nella tabella seguente viene fornita una serie di configurazioni di esempio.
Esempio | FoV della fotocamera | TEMPO REALE? | Righe consigliate | Appunti |
---|---|---|---|---|
1 | 75° | NO | Riv 1 | Android 7.0 o versioni successive |
2 | 75° | SÌ | Rev 1 + fusione sensori | Android 9 o superiore |
3 | 75° + 95° | SÌ | Rev 2 + fusione sensori | Android 9 o superiore |
Q2: Come posso designare quale banco di prova è in uso?
Per designare il banco di prova corretto, assicurarsi che il parametro della distanza del grafico sia corretto. Il banco di prova rev1 (RFoV) ha una distanza tra le carte di 31 cm e il banco di prova rev2 (WFoV) ha una distanza tra le carte di 22 cm. Per impostazione predefinita, la distanza della carta è impostata su 31 cm.
Da Android 10 ad Android 11
Per identificare il banco di prova corretto in Android da 10 a 11, aggiungi il flagdist
alla riga di comando. Il valore predefinito per dist
è 31
. Eseguire il seguente comando per modificare il parametro chart_distance
.python tools/run_all_tests.py ... chart=# dist=22
Androide 12
Per identificare il banco di prova corretto in Android 12 è possibile modificare il file config.yml per modificare il parametrochart_distance
.edit config.yml chart_distance: 31.0 → chart_distance: 22.0
D3: Come posso controllare la luminosità del tablet?
Per impostazione predefinita, la luminosità del tablet è impostata su 96.
Per modificare la luminosità sui tablet con Android 7.0 fino ad Android 9, eseguire:
edit tools/wake_up_screen.py DISPLAY_LEVEL=96 → DISPLAY_LEVEL=192
Per modificare la luminosità sui tablet con Android da 10 a 11, il valore può essere modificato nella riga di comando aggiungendo il flag di brightness
:
python tools/run_all_tests.py device=# camera=# chart=# brightness=192
Per modificare la luminosità sui tablet con Android 12, esegui:
edit config.yml brightness: 96 → brightness: 192
D4: Come si esegue il debug di un singolo test?
I test possono essere eseguiti singolarmente per scopi di debug, ma i risultati non vengono segnalati a CtsVerifier.apk
a meno che non venga eseguita l'intera scena.
Per eseguire una singola scena in Android 11 e versioni precedenti:
- Carica una scena aggiungendo il flag
scenes
intools/run_all_tests.py
:python tools/run_all_tests.py device=# camera=# chart=# scenes=#
Premere Control+C per interrompere i test dopo che la scena è stata registrata come caricata in
stdout
.Se la scena corretta è già sullo schermo, riattiva lo schermo:
python tools/wake_up_screen.py screen=#
Eseguire un test individuale.
python tests/scene#/test_*.py device=# camera=#
I grafici vengono quindi generati nella directory locale e
stdout
estderr
vengono stampati sullo schermo.Per ottenere maggiori informazioni per il debug, aggiungi istruzioni
print
allo script. Per aumentare l'output del test per il debug, aggiungi il flagdebug=True
.python tests/scene#/test_*.py device=# camera=# debug=True
I risultati vengono stampati sullo schermo locale e le immagini vengono salvate nella directory locale anziché nella /tmp/tmp###
generata durante l'esecuzione di tools/run_all_tests.py
.
Per eseguire una singola scena in Android 12:
Modifica il file
config.yml
.edit config.yml camera: <camera-id> → camera: 0 scene: <scene-name> → scene: scene1_1
Eseguire il test individuale.
python tools/run_all_tests.py -c config.yml --test_bed TEST_BED_TABLET_SCENES
I risultati vengono stampati nella /tmp/logs/mobly/TEST_BED_TABLET_SCENES/
ordinati per tempo di esecuzione.
D5: Perché devo eseguire i test con esito negativo come un'intera scena invece di eseguire nuovamente i test individualmente?
I test possono essere eseguiti singolarmente per scopi di debug, ma i risultati non vengono riportati in CtsVerifier.apk
a meno che non venga eseguita l'intera scena.
Camera ITS garantisce che le app di terze parti dispongano di un'interfaccia fotocamera compatibile. Simile a un test unitario , ogni test sottolinea una singola specifica nella fotocamera. Per rilevare un comportamento inaffidabile, questi test devono essere superati in gruppo per un'intera scena. Ad esempio, sebbene un singolo test inaffidabile possa superare la ripetizione di un'intera scena, è difficile che vengano superati più test inaffidabili.
Come esempio estremo, considera il caso in cui ci sono 10 test in una scena ognuno dei quali ha una probabilità del 50% di restituire PASS
. Eseguendo ciascun test individualmente, c'è un'alta probabilità che un operatore riesca a far superare alla telecamera Camera ITS. Tuttavia, se i test vengono eseguiti complessivamente come scena, c'è solo una probabilità dello 0,1% che la scena venga superata.
D6: Come eseguo una singola scena o riordino le scene di esecuzione?
Per impostazione predefinita, lo script tools/run_all_tests.py
esegue tutte le scene in ordine. Tuttavia, le scene possono essere eseguite singolarmente o in un ordine specificato ed essere segnalate a CtsVerifier.apk
.
Per eseguire una singola scena (ad esempio, la scena 2) o eseguire più di una scena in un ordine specifico in Android 11 o versioni precedenti:
python tools/run_all_tests.py device=# camera=# chart=# scenes=2
python tools/run_all_tests.py device=# camera=# chart=# scenes=3,2
Per eseguire una singola scena o eseguire più di una scena in un ordine specifico in Android 12:
python tools/run_all_tests.py scenes=2
python tools/run_all_tests.py scenes=3,2
I parametri aggiuntivi sono impostati nel file config.yml
.
D7: Numerosi test della scena 1 falliscono con la configurazione del tablet ma passano con un grafico cartaceo. Cosa c'è che non va?
Assicurarsi che il tablet e l'ambiente di test soddisfino le seguenti specifiche.
Specifiche della tavoletta
Assicurarsi che il tablet soddisfi le seguenti specifiche:
- Dimensioni del display (pollici): 10 pollici
- Dimensione del display (pixel): maggiore di 1920 x 1200 pixel
Per maggiori dettagli, vedi Requisiti del tablet .
Luminosità della tavoletta
I test potrebbero non ottenere risultati corretti se la luminosità del display del tablet è troppo bassa.
Per ulteriori dettagli, vedere Come si controlla la luminosità del tablet?
Livello di illuminazione della scatola (richiede luxmetro)
Assicurarsi che il valore di lux target all'apertura della tavoletta sia compreso tra 100 e 300.
Se il livello di lux è troppo alto, scene1/test_param_flash_mode.py
restituisce FAIL
. Se il livello di lux è troppo basso, più test falliscono.
D8: Come si esegue il debug dei test di fusione dei sensori?
Assicurati di essere in un gruppo
dialout
.groups | egrep ‘dialout'
Assicurarsi che il controller di fusione dei sensori sia collegato determinando se Microchip Technology è collegata alla porta USB.
lsusb … Bus 003 Device 004: ID 04d8:fc73 Microchip Technology, Inc. …
Eseguire il test più volte per ottenere una distribuzione dei tentativi di test con i seguenti comandi.
In Android 11 o versioni precedenti:
python tools/run_sensor_fusion_box.py device=A camera=0 num_runs=10 rotator=default
Su Android 12:
python tools/run_sensor_fusion_box.py num_runs=10
I parametri aggiuntivi sono impostati nel file
config.yml
.Gli output della corsa si trovano nella cartella
/tmp/tmp###
creata nelle cartellesensor_fusion_#
, dove#
è il numero della corsa. I motivi comuni per il fallimento sono:- Il telefono non è centrato correttamente.
- Nell'immagine non vengono trovate abbastanza caratteristiche (spesso un problema di FoV o di illuminazione).
- Il
FAIL
restituito è valido e l'offset temporale tra la telecamera e il giroscopio deve essere corretto.
D9: Quali informazioni devo includere quando segnalo un bug di test?
Quando segnali un bug di test, includi i file e le immagini generati per il test.
- Se hai eseguito il test tramite
tools/run_all_tests.py
, allega una/tmp/
compressa al bug. - Se hai eseguito il test da solo, allega tutti gli output dello schermo e le immagini generate al bug.
Includi anche una segnalazione di bug. Dopo che il test in questione fallisce, utilizzare il seguente comando per generare una segnalazione di bug e allegare il file zip generato al bug.
adb -s device_id bugreport
D10: Come rimuovo le barre di navigazione sui tablet 16:10 che oscurano la scena?
Per i tablet con proporzioni 16:10 (o superiori), la barra di navigazione può oscurare parte della scena. Per nascondere la barra di navigazione utilizzare il seguente comando adb per il tablet.
adb -s device_id shell settings put global policy_control immersive.full=*