Per creare esperienze utente AR coinvolgenti, è importante che il tuo account le prestazioni dell'app.
Assicurati che la tua app:
- Si adatta all'input dell'utente, inclusi gesti tattili e dispositivo movimento.
- Esegue il rendering a una frequenza fotogrammi ragionevole e coerente. Utenti in genere preferiscono frequenze fotogrammi coerenti e inferiori rispetto a frequenze fotogrammi e superiori.
- Riduce al minimo il consumo della batteria, permettendo all'utente di utilizzare il proprio dispositivo per altre attività durante la giornata o interagire più a lungo con la tua esperienza AR.
- Consente di creare un'esperienza AR coinvolgente in cui appaiono contenuti generati con AR stabile rispetto all'ambiente e si integra realisticamente con completamente gestito di Google Cloud.
Best practice per le prestazioni
Per creare esperienze AR più avvincenti, progetta con le seguenti best practice sempre più pratiche.
Utilizzare gli ancoraggi per migliorare le prestazioni del monitoraggio
Sebbene sia possibile posizionare i contenuti 3D utilizzando le coordinate dello spazio del mondo, utilizza sempre un ancoraggio quando possibile. ARCore garantisce che gli ancoraggi appaiano stabili rispetto al mondo, anche se le coordinate spaziali sottostanti cambiano e possono saltare nel tempo ogni volta che ARCore aggiorna la sua comprensione del mondo.
Gli oggetti virtuali che non sono attaccati a un ancoraggio a volte appariranno non saranno stabili rispetto all'ambiente. Questo può rendere Esperienza AR meno accattivante per gli utenti.
Considerare le caratteristiche di prestazioni specifiche del dispositivo
I dispositivi supportati da ARCore coprono un'ampia gamma di delle caratteristiche hardware e delle prestazioni. Le prestazioni del dispositivo possono variare per i seguenti motivi:
- CPU/GPU dispositivo, velocità di clock
- Memoria e larghezza di banda disponibili
- Qualità del sensore fotocamera/IMU
- Altre differenze hardware
- Sistema operativo e driver dei dispositivi
Ti consigliamo di testare l'app su diverse classi di dispositivi che rappresentativi dei dispositivi utilizzati dagli utenti.
Disattiva le funzionalità che consumano molta CPU quando non sono in uso
Alcune funzionalità di ARCore aumentano l'utilizzo della CPU quando sono abilitate. Prendi in considerazione disattivare queste funzionalità negli orari in cui la tua esperienza AR non richiede che li rappresentano. Questa operazione renderà disponibili cicli della CPU aggiuntivi per la tua app e migliorerà prestazioni termiche e durata della batteria.
Attualmente, l'utilizzo della CPU ARCore aumenta quando Instant Placement e/o Augmented Images è abilitato per la sessione corrente. Segui questi linee guida per aumentare l'efficienza di utilizzo della CPU:
Instant Placement dovrebbe essere disattivato una volta che il monitoraggio completo è stato la creazione di un progetto. La funzionalità può essere disabilitata nella configurazione della sessione.
Augmented Images deve essere disattivata ogni volta che la funzionalità non è richiesta per la tua esperienza AR. Per disattivare le immagini aumentate, configura un
null
o vuoto del database delle immagini aumentate nella configurazione della sessione.
Monitora la temperatura del dispositivo
Durante lo sviluppo e i test di QA, puoi utilizzare le API termiche di Android per monitorare e monitorare le prestazioni dell'app sul dispositivo.
Assicurati di utilizzare una build di produzione della tua app (e non uno sviluppo o qa della tua app che potrebbe avere prestazioni di runtime diverse caratteristiche.
PowerManager#getCurrentThermalStatus()
(livello API 29)PowerManager#getThermalHeadroom(int)
(Livello API 30)
Identificazione dell'inattività della CPU ARCore
Quando una sessione ARCore è attiva, l'app deve condividere CPU e GPU mobile limitate con ARCore. Le app associate alla CPU possono competere con le risorse della CPU richiesta per il monitoraggio del movimento.
Per verificare che ARCore localizzazione e mappatura simultanee (SLAM) sia in grado di funzionare normalmente, verifica che la "frequenza VIO bassa" messaggio non viene visualizzato nei log del dispositivo Android:
adb logcat | grep 'VIO frequency low'
Evitare l'inattività della CPU da parte di ARCore
Quando una sessione ARCore è attiva, l'app deve condividere CPU e GPU mobile limitate con ARCore. Le app associate alla CPU possono competere con le risorse della CPU richiesta per il monitoraggio del movimento.
Creare in anticipo i database delle immagini aumentate
Se possibile, crea in anticipo i database di immagini aumentate in fase di sviluppo. Se è necessario creare database di immagini aumentate in fase di runtime o in modo dinamico aggiungi immagini a un database esistente, assicurati di aggiungere immagini su uno sfondo per evitare di bloccare il thread dell'interfaccia utente principale.
Limita il numero di stream della videocamera richiesti
Quando utilizzi la Fotocamera condivisa Java, le app possono: richiedono flussi di immagini CPU o GPU aggiuntivi.