La mémoire est une ressource précieuse dans tout environnement de développement logiciel, mais elle est encore plus utile sur un système d'exploitation mobile où la mémoire physique est souvent limitée. Cela est particulièrement vrai pour les appareils à faible capacité de mémoire couramment utilisés avec Android (édition Go). Il existe plusieurs façons d'optimiser la mémoire de votre application pour qu'elle fonctionne correctement dans ces environnements.
Bonnes pratiques
Libérer la mémoire cache
La mémoire est peut-être insuffisante pour continuer à exécuter les processus en arrière-plan comme vous le feriez dans un environnement classique. Dans ce cas, vous pouvez utiliser onTrimMemory()
pour supprimer la mémoire inutile du processus de votre application. Pour mieux identifier le niveau actuel de votre application, utilisez ActivityManager.getMyMemoryState(RunningAppProcessInfo)
, et optimisez ou coupez les ressources inutiles. Par exemple, vous pouvez réduire l'utilisation inutile de la mémoire par les expressions, la recherche, le cache des vues ou les extensions pouvant être ouvertes afin de réduire le nombre de plantages ou d'erreurs ANR causés par votre application en raison d'une mémoire insuffisante.
Planification des tâches
La planification simultanée peut entraîner l'exécution en parallèle de plusieurs opérations nécessitant une grande quantité de mémoire, ce qui peut entraîner une concurrence pour les ressources dépassant le pic d'utilisation de la mémoire par une application. Essayez d'allouer les ressources de manière appropriée en séparant les processus en tâches gourmandes en CPU et de faible latence dans le pool de threads approprié, afin qu'elles s'exécutent sur des appareils susceptibles de faire l'objet de diverses contraintes de ressources.
Fuites de mémoire
Divers outils, tels que le Profileur de mémoire d'Android Studio et Perfetto, sont spécialement conçus pour vous aider à détecter et à réduire les fuites de mémoire au sein de votre application. Nous vous recommandons vivement d'utiliser ces outils pour identifier et résoudre les problèmes potentiels liés à la mémoire afin de permettre à d'autres composants de votre application de fonctionner sans exercer de pression supplémentaire sur le système.
Autres conseils
- Les images volumineuses et les drawables consomment plus de mémoire dans les applications. Identifiez et optimisez les bitmaps volumineux ou en couleur pour réduire l'utilisation de la mémoire.
- Essayez de remplacer les GIF dans votre application lorsque vous développez pour Android (édition Go), car les GIF consomment beaucoup de mémoire.
- Vous pouvez réduire la taille des fichiers PNG sans perdre en qualité d'image à l'aide d'outils tels que WebP, pngcrush et pngquant. Tous ces outils peuvent réduire la taille du fichier PNG tout en préservant la qualité de l'image perçue.
- L'outil aapt peut optimiser les ressources d'image placées dans
res/drawable/
avec une compression sans perte pendant le processus de compilation. Par exemple, il peut convertir un fichier PNG en couleurs réelles qui ne requiert pas plus de 256 couleurs en fichier PNG 8 bits avec une palette de couleurs. Cela donne une image de qualité égale, mais un espace mémoire utilisé plus petit.