Insights sur les jeux à mémoire faible

Android arrête (ou met fin) parfois les meilleurs jeux haute fidélité lorsque l'appareil manque de mémoire. Android tente d'utiliser toute la mémoire disponible pour mettre en cache les applications et les jeux afin de s'assurer qu'ils se chargent rapidement (ce qui améliore l'expérience utilisateur). Toutefois, lorsque la mémoire devient limitée, le système ferme les applications et les jeux les plus gourmands en mémoire pour libérer de la mémoire pour le fonctionnement normal de l'appareil.

Voici des informations, des insights et des bonnes pratiques pour vous aider à mieux utiliser la mémoire de votre jeu :

  • Utilisez ApplicationExitInfo : cette API Java/Kotlin renvoie la raison pour laquelle l'exécution du jeu précédent a été arrêtée par le système Android. Utilisez ApplicationExitInfo pour vérifier si une faible mémoire est à l'origine de l'arrêt d'un processus précédent. Vérifier si le jeu a été arrêté en raison d'une mémoire insuffisante, afin qu'il puisse être optimisé pour utiliser moins de mémoire sur cet appareil.
  • Examinez la RAM physique totale. Pour éviter que des jeux ne soient arrêtés au premier plan et pour correspondre aux fonctionnalités de l'appareil, examinez la RAM physique totale et ajustez l'utilisation de la mémoire des jeux en fonction de celle-ci. Si l'objectif est d'éviter la fermeture des applications peu de temps après le passage en arrière-plan (pour permettre au joueur d'effectuer plusieurs tâches en même temps), utilisez les rappels trim (TRIM_MEMORY_UI_HIDDEN spécifiquement) pour réduire l'utilisation de la mémoire de votre jeu.
  • N'enregistrez pas de rappels trim obsolètes. Android ne dispose d'aucune API permettant de détecter les événements de pression de mémoire native lorsqu'ils rencontrent des limites de mémoire (voir la remarque sur le daemon de suppression de mémoire insuffisante). Les rappels de taille n'ont pas été utiles pour empêcher les arrêts en cas de faible mémoire. Android a donc tous les abandonnés, à l'exception de TRIM_MEMORY_UI_HIDDEN et TRIM_MEMORY_BACKGROUND.

Damon du tueur de mémoire faible

Le daemon de tueur de mémoire faible Android (lmkd) est un processus qui surveille l'état de la mémoire d'un système Android en cours d'exécution et réagit à la pression élevée de la mémoire en supprimant les processus les moins essentiels pour que le système fonctionne à des niveaux acceptables.

Le daemon peut choisir les processus à tuer sans attendre que le processus confirme tout type de rappel. Par conséquent, les applications et les jeux ne recevront pas de notification pour avoir une dernière chance de libérer de la mémoire avant d'être arrêtés.

En savoir plus sur le daemon de suppression de mémoire insuffisante