Le chargement de bitmaps dans votre application Android peut s'avérer délicat pour plusieurs raisons:
- Les bitmaps peuvent très facilement épuiser le budget de mémoire d'une application. Par exemple, l'appareil photo du téléphone Pixel prend des photos dont la résolution maximale est de 4 048 x 3 036 pixels (12 mégapixels).
Si la configuration bitmap utilisée est
ARGB_8888
, la valeur par défaut pour Android 2.3 (niveau d'API 9) ou version ultérieure, le chargement d'une seule photo en mémoire prend environ 48 Mo de mémoire (4 048 x 3 036 x 4 octets). Une telle quantité de mémoire requise peut immédiatement utiliser toute la mémoire disponible pour l'application. - Le chargement de bitmaps sur le thread UI peut dégrader les performances de votre application, ce qui peut ralentir la réactivité, voire entraîner des messages ANR. Il est donc important de gérer les threads de manière appropriée lorsque vous utilisez des bitmaps.
- Si votre application charge plusieurs bitmaps en mémoire, vous devez gérer habilement la mise en cache de la mémoire et du disque. Sinon, la réactivité et la fluidité de l'interface utilisateur de votre application peuvent en pâtir.
Dans la plupart des cas, nous vous recommandons d'utiliser la bibliothèque Glide pour récupérer, décoder et afficher les bitmaps dans votre application. Glide enlève la majeure partie de la complexité liée à la gestion de ces tâches et d'autres tâches liées à l'utilisation de bitmaps et d'autres images sur Android. Pour en savoir plus sur l'utilisation et le téléchargement de Glide, consultez le dépôt Glide sur GitHub.
Vous pouvez également choisir de travailler directement avec les API de niveau inférieur intégrées au framework Android. Pour en savoir plus sur cette procédure, consultez Charger efficacement des bitmaps volumineux, Mettre en cache des bitmaps et Gérer la mémoire bitmap.