Pubblicato da Leo Sei, Product Manager di Android Studio e R8
Gli sviluppatori Android sanno che le dimensioni dell'APK sono un fattore importante nel coinvolgimento degli utenti. Il code shrinking (compattazione del codice) consente di ridurre le dimensioni dell'APK eliminando il codice e le risorse inutilizzati, e di occupare meno spazio per il codice vero e proprio (noto anche come minification o obfuscation).
Ecco perché ci stiamo impegnando per migliorare il code shrinking e renderlo più veloce ed efficiente. Siamo felici di annunciare che il code shrinker di nuova generazione, R8, è disponibile in anteprima nella versione Android Studio 3.3 beta.
R8 esegue lo shrinking, il desugaring e il dexing, tutto in un solo passaggio. Se confrontato con l'attuale soluzione di shrinking Proguard, R8 compatta il codice più velocemente e migliora le dimensioni dell'output al tempo stesso.
I seguenti dati provengono dal benchmark dell'app Santa Tracker e i dettagli del benchmark relativi a questo progetto sono disponibili nel repository GitHub.
R8 è disponibile nella versione Android Studio 3.3 beta e segue le stesse regole di Proguard. Per provarlo, utilizza le seguenti impostazioni nel file gradle.properties del tuo progetto:
android.enableR8=true
Per i più audaci, R8 offre anche una modalità completa, che non è direttamente compatibile con Proguard. Per provarla utilizza le seguenti impostazioni nel file gradle.properties:
android.enableR8.fullMode=true
Questa modalità attiva altre ottimizzazioni, che possono ridurre ulteriormente le dimensioni dell'app. Tuttavia, potresti aver bisogno di alcune regole di mantenimento supplementari perché funzioni.
Abbiamo testato la correttezza e le prestazioni di R8 su un certo numero di app e i risultati sono stati promettenti, quindi prevediamo di adottare R8 al più presto come shrinker predefinito in Android Studio.
Ti invitiamo a provare R8 e a mandarci il tuo feedback. Puoi inviare un report sui bug utilizzando questo link.