Una nuova metrica per misurare le prestazioni
Da molto tempo Android offre ai suoi sviluppatori una libreria di compatibilità, la "Libreria di supporto". Dalla versione 9 di Android, questa libreria è deprecata ed è stata sostituita da una nuova versione chiamata "AndroidX". Per farla breve, questo livello di compatibilità offre agli sviluppatori un modo relativamente semplice per gestire con garbo una nuova API su dispositivi Android meno recenti che potrebbero non supportarla.
La classe Performance di Android è diversa da AndroidX. Invece di fornire direttamente un fallback per tali deprecazioni, il suo obiettivo è quello di fornire agli sviluppatori informazioni su ciò di cui è capace l'hardware del dispositivo attuale. Ciò suggerisce anche un'altra importante differenza: le classi di prestazioni di Android sono disponibili in fase di esecuzione anziché in fase di compilazione, come lo è AndroidX.
Per essere più precisi, al momento della scrittura Android offre tre classi di prestazioni: Media, Fotocamera e Generico. Queste classi saranno completamente disponibili a partire da Android 12, poiché sono state introdotte con questa versione. Per Android 11, sarà disponibile un sottoinsieme di queste classi.
// Example taken directly from
// Android's explanation, just
// to give a quick overview.
if (Build.VERSION.MEDIA_PERFORMANCE_CLASS >= Build.VERSION_CODES.S) {
// Provide the most premium experience for highest performing devices
...
}
else if (Build.VERSION.MEDIA_PERFORMANCE_CLASS == Build.VERSION_CODES.R)
// Provide a high quality experience
...
}
else {
// Remove extras to keep experience functional
...
}
Un nuovo modo di raggruppare i dispositivi
Le classi di prestazioni ti consentono di raggruppare i consumatori in un modo nuovo. Invece di fare affidamento solo sulla versione Android o, molto peggio, di verificare che le identità dei fornitori di dispositivi specifici corrispondano a un set personalizzato di regole, queste nuove classi di prestazioni possono essere utilizzate per raggruppare i consumatori direttamente (e in modo affidabile) in base alle capacità.
Ciò che è esattamente supportato da ciascuna versione può essere visto nel "Documento di definizione della compatibilità Android". Un nuovo strumento chiamato "Compatibility Test Suite", sviluppato anche dal team di Android, verifica le compatibilità proposte per un dispositivo. Ma non preoccuparti, queste cose riguardano solo i produttori di hardware e i loro ingegneri. Ciò che è importante per te come sviluppatore di app è utilizzare la nuova API nel codice dell'applicazione.
Una strategia compatibile con il futuro
Infine, è importante notare come questa nuova classe di prestazioni verrà utilizzata nelle future versioni di Android. Ad esempio, un dispositivo con Android 12 supporta anche la versione 12 della classe di prestazioni multimediali. Ora, quando verrà rilasciato Android 13, questo dispositivo può ancora eseguire l'aggiornamento ad Android 13, ma manterrà la sua versione 12 della classe di prestazioni. Potrebbe essere già stato ovvio per te , ma volevo comunque evidenziare questo comportamento. Le versioni della classe di prestazioni non impediscono ai produttori di aggiornare all'ultima versione di Android.