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.
Autres ressources
How JPG Works
Understand the internals of JPG to get the most out of this file format.
VectorDrawable for smaller APKs (Android Performance Patterns Season 6 Ep. 6)
One of the interesting parts about building an Android application is all the awesome configurations of screen sizes and form factors. And if you’re a developer who prides themselves on being available on the most devices possible, then chances are
How WebP Works (lossly mode)
Learn about WebP, which can give you even smaller image sizes than JPEG.
Reducing JPG File Sizes
Keep your JPGs lean by stripping those unnecessary bits.
Smaller PNGs, and Android's AAPT tool
Use AAPT to help optimize your PNG sizes.
Reducing PNG File Size
Keep your PNGs small and lightweight.
How PNG Works
Understanding how PNGs work can help you use them correctly.
Removing unused resources (Android Performance Patterns Season 4 ep8)
Ok ok, so you’ve watched all the Android Performance Patterns videos, and you know how important it is to be diligent when it comes to bloated APKs. In fact, as soon as a layout file, or bitmap isn’t needed any more by your app, you remove it from