Préparer votre application pour des limites de mémoire plus larges
Temps de lecture : 2 min
Une excellente expérience utilisateur est au cœur de la mission d'Android. Pour tenir cette promesse, nous devons veiller à ce que les appareils soient rapides, réactifs et fiables. C'est pourquoi l'optimisation de la mémoire est plus importante que jamais. Dans l'écosystème, la capacité de mémoire physique des nouveaux appareils est maintenue, voire réduite, en réponse à l'augmentation du prix de la mémoire. Pourtant, les utilisateurs continuent de s'attendre à une expérience d'application fluide et performante.
Dans Android 17, nous avons introduit des limites de mémoire par application, en commençant par les appareils Pixel, afin de protéger l'expérience utilisateur globale contre les applications qui utilisent trop de mémoire et ralentissent l'ensemble du système. Au cours de l'année à venir, un nombre croissant de fabricants tireront parti des limites de mémoire par application d'Android sur l'ensemble de leur portefeuille de configurations de RAM d'appareils, des appareils de 4 Go à ceux de 16 Go et plus. Si votre application dépasse ces limites, elle sera ralentie et pourra être arrêtée. Il est essentiel d'optimiser l'espace mémoire utilisé par votre application pour éviter la limitation des ressources par l'OS et maintenir une expérience utilisateur fluide.
Dans cet article, nous allons explorer le fonctionnement de ces limites en coulisses, comment mesurer votre espace mémoire utilisé à l'aide de nouvelles métriques Android Vitals et les étapes à suivre pour optimiser votre application ou votre jeu.
Comprendre les limites de mémoire
Lorsque votre application dépasse son budget de mémoire, Android prend des mesures progressives pour protéger la réactivité de l'appareil :
- Échange zRAM : si votre application atteint sa limite allouée, le système force les pages de votre application dans la zRAM (RAM compressée). Bien que zRAM empêche l'éviction immédiate, la compression et la décompression des pages ajoutent une surcharge de processeur, ce qui peut entraîner des saccades notables dans l'interface utilisateur et des ralentissements de l'expérience.
- Arrêt du processus : si votre application continue d'augmenter son utilisation de la mémoire au-delà du seuil zRAM, elle sera arrêtée par le système. Pour déterminer si la session de votre application a été affectée par ces contraintes sur le terrain, vous pouvez appeler
getDescription()dansApplicationExitInfo. Si le système a appliqué une limite, le motif de sortie est indiqué commeREASON_OTHERet la chaîne de description contient "MemoryLimiter:AnonSwap". Vous pouvez également utiliser le profilage basé sur des déclencheurs à l'aide deTRIGGER_TYPE_ANOMALYpour capturer automatiquement les vidages du tas lorsque la limite de mémoire est atteinte.
Pour en savoir plus sur les limites de mémoire par application et sur l'application du système, consultez la documentation sur les limites de mémoire des applications Android 17. Pour tester votre application sur différentes configurations d'appareil, utilisez les commandes adb Memory Limiter.
Surveiller et diagnostiquer les problèmes de mémoire
Vous ne pouvez pas optimiser ce que vous ne pouvez pas mesurer. Pour identifier les fuites de mémoire, les allocations de tas excessives et les plantages liés à une mémoire insuffisante (OOM) dans l'écosystème Android, vous devez utiliser des outils de surveillance complémentaires :
- État général au niveau macro avec Android Vitals : pour une visibilité globale au niveau de la population sans surcharge supplémentaire, Android Vitals de la Google Play Console fournit des métriques essentielles telles que Utilisation de la mémoire (RSS anonyme + espace d'échange) et Utilisation de la mémoire bitmap. Vous obtenez ainsi un aperçu clair de la répartition de la mémoire entre les différents états de processus (premier plan, arrière-plan, services perçus par l'utilisateur et mis en cache) et les plages de classe de RAM, ce qui vous aide à identifier les valeurs aberrantes de mémoire.
- Suivi des sorties du limiteur de mémoire et des erreurs de mémoire insuffisante avec Firebase Crashlytics : pour rester informé de la dégradation sévère de la mémoire avant qu'elle n'ait un impact sur vos métriques clés, Crashlytics version 20.1.0 introduit des données de débogage supplémentaires pour vous aider à détecter, hiérarchiser et corriger les exceptions de mémoire insuffisante et les arrêts du limiteur de mémoire. Le suivi de ces événements, ainsi que des journaux personnalisés et des métadonnées clé-valeur, vous permet d'obtenir immédiatement le contexte de l'état du processus en cas d'échec de la mémoire.
- Traces sur le terrain avec ProfilingManager : pour les équipes capables de gérer un framework d'observabilité des performances, l'API
ProfilingManagerintroduite dans Android 15 (niveau d'API 35) permet à votre application de demander et de collecter de manière programmatique des artefacts de débogage de mémoire détaillés tels que des vidages de tas Java et des profils de tas directement à partir des appareils de production. Vous pouvez également déclencher des captures d'empreinte de la mémoire en fonction de signaux système spécifiques, tels queTRIGGER_TYPE_OOMetTRIGGER_TYPE_ANOMALY.
Consultez notre documentation pour en savoir plus sur les autres techniques de surveillance de la mémoire.
Résumé et étapes suivantes
Android élargissant les limites de mémoire par application pour toutes les classes de RAM, il est temps d'auditer votre espace mémoire utilisé :
- Priorisez les optimisations de mémoire : évitez que votre application soit affectée par les limites de mémoire en utilisant les bonnes pratiques.
- Surveillez l'utilisation de la mémoire : surveillez le comportement de votre application en ce qui concerne la mémoire pour détecter et résoudre les comportements anormaux.
- Optimisez votre jeu : suivez les dernières consignes pour les jeux et les applications multimédias complexes afin de maximiser les économies de mémoire dans les différents états de processus.
Ressources et références utiles
- Modifications du comportement sous Android 17 : Limites de mémoire des applications
- Android Vitals : Utilisation de la mémoire (métrique RSS + espace d'échange) et Utilisation de la mémoire bitmap
- Blog des développeurs Android : Étapes de priorisation de l'efficacité de la mémoire pour Android 17
- Guide du développeur : Gérer la mémoire de votre application
-
Actualités des produitsAujourd'hui, nous lançons Android 17 et le rendons disponible sur la plupart des appareils Pixel compatibles. De nouveaux appareils fonctionnant sous Android 17 seront disponibles dans les prochains mois.
Matthew McCullough • Temps de lecture : 13 min -
Actualités des produitsLors de Google I/O 2026, nous avons montré comment les dernières avancées de l'écosystème Android peuvent vous aider à améliorer la qualité de votre application tout en maximisant l'efficacité du développement.
Ataul Munim • Temps de lecture : 3 min -
Actualités des produitsL'un des piliers de l'écosystème Android est notre engagement commun à gagner la confiance des utilisateurs. Le paysage mobile a évolué, tout comme notre approche de la protection des informations sensibles.
Robert Clifford • Temps de lecture : 3 min
Recevez chaque semaine les dernières informations sur le développement Android directement dans votre boîte de réception.