Per implementare un'esperienza utente coerente e di alta qualità e per evitare problemi che portano a errori del Compatibility Test Suite (CTS), implementa i principi di base di WindowManager (WM) descritti qui. Questi principi si applicano a:
Versioni di Android che utilizzano un'architettura multi-finestra, introdotta in Android 14 e proseguita in Android 15 con l'interfaccia utente scalabile.
UI scalabile di Android e implementazioni personalizzate
Se applichi i principi, eviterai in modo proattivo la maggior parte dei problemi di conformità CTS e dei test funzionali.
Terminologia
- invariante
- Una condizione logica che rimane vera durante l'esecuzione di un'app che porta all'integrità strutturale. Un invariante funge da regola di limite.
- attività speciale
- Nota anche come attività dell'interfaccia utente automatica o attività dell'interfaccia utente di sistema, questa attività critica dell'app ha un'area dedicata sullo schermo che è sempre visibile o è visibile la maggior parte del tempo, anche quando l'utente preme Home,ad esempio una navigazione principale o un'app cluster.
- attività standard
- Qualsiasi attività standard dell'app che non sia fondamentale per l'interfaccia utente principale del sistema, ad esempio un'app multimediale di terze parti avviata dalla griglia delle app.
Principi di WM
Per massimizzare la conformità al CTS, applica questi principi nelle implementazioni di WM.
Utilizzare una configurazione stabile all'avvio dell'attività
Avvia ogni nuova attività standard con una singola transizione WM che ne imposta la posizione, le dimensioni e la densità finali. Non devi attivare una seconda transizione che modifica la configurazione della finestra dell'attività sottostante (ad esempio dimensioni o densità) immediatamente dopo la prima, in quanto ciò causa una modifica della configurazione immediatamente dopo la creazione dell'attività.
Spostare le attività standard nello stato Interrotto
Quando l'utente passa all'attività o alla scena iniziale, devi spostare tutte le attività standard in esecuzione allo stato interrotto per mantenere il ciclo di vita prevedibile dell'app per Android richiesto dai test CTS.
Impedire l'oscuramento dei contenuti delle attività standard
Non disegnare decorazioni o elementi dell'interfaccia utente personalizzati che ostruiscano i contenuti di
un'attività standard. Se disegni overlay personalizzati (ad esempio una barra di controllo
personalizzata del clima), devi comunicare le dimensioni al sistema con i margini interni
SystemOverlay. Per Android 15 e versioni successive, utilizza DecorPanel nell'interfaccia utente scalabile.
Nascondi le sovrapposizioni nella richiesta della modalità immersiva
Quando un'app richiede la modalità immersiva, devi nascondere tutti gli elementi dell'interfaccia utente personalizzata temporanea e rimuovere i relativi SystemOverlayinsets. Ostruzioni persistenti
interferiscono con le aspettative dei pixel di un'app.
Applica gli angoli arrotondati solo a livello di visualizzazione
Applica gli angoli arrotondati solo a livello di visualizzazione utilizzando le configurazioni delle risorse appropriate in frameworks/base. Non applicare angoli arrotondati arbitrari alla
superficie di un'attività standard.
In questo modo, si interferisce con i test degli elementi UI. Come misura temporanea, puoi specificare lo stesso raggio dell'angolo arrotondato per la visualizzazione che applichi alla superficie dell'attività standard.
Mantenere le dimensioni dell'app nella richiesta della modalità immersiva
Quando un'app richiede di entrare in modalità immersiva, non ridimensionare la finestra dell'app. In questo modo viene attivata una modifica alla configurazione distruttiva. Per massimizzare l'app, offri invece un pulsante a schermo intero controllato dall'utente.