La section "Avoid Enums Where You Only Need Ints" a été supprimée de la version officielle de l'article. documentation pour les développeurs . (Voir Pourquoi Android n'utilise-t-il pas plus d'enums ? pour le contenu de l'ancienne section)
Pourquoi ? Y a-t-il eu un changement dans la VM Android qui a rendu l'astuce obsolète ?
0 votes
Excellente question, bien repérée. J'ai évité d'utiliser les enums dans mon code spécifiquement à cause de la recommandation de performance qui figurait dans les documents.
2 votes
Pour référence, voici le décompilé pour l'exemple Shrubbery : https://gist.github.com/847418
15 votes
En mars 2014, la page suivante contient toujours des conseils contre l'utilisation des enums : developer.Android.com/training/articles/memory.html#Overhead
2 votes
Un an plus tard, comme l'a dit @TahirAkhtar, la formation officielle d'Android dit toujours "You should strictly avoid using enums on Android".
1 votes
Il est intéressant de noter que la recommandation d'éviter les énumérations se trouve dans cet article de 2015 d'un développeur Android de premier plan : medium.com/google-developers/ En outre : "Notez que l'utilisation de l'annotation @IntDef, qui est prise en charge par Android Studio et Gradle 1.3+, donnera à votre code une sécurité de type à la construction (lorsque les erreurs lint sont activées), tout en conservant les avantages en termes de taille et de performance de l'utilisation de variables int."
4 votes
Depuis avril 2018, la page suivante ne contient plus de conseils contre l'utilisation des enums. developer.Android.com/topic/performance/memory#Overhead