A volte Android uccide (o termina) i giochi di alta qualità più importanti quando il dispositivo ha poca memoria. Android tenta di utilizzare tutta la memoria disponibile per memorizzare nella cache app e giochi in modo che vengano caricati rapidamente (migliorando l'esperienza utente), ma quando la memoria diventa limitata, il sistema chiude le app e i giochi che richiedono più memoria per liberare memoria per il normale funzionamento del dispositivo.
Di seguito sono riportate informazioni, approfondimenti e best practice per aiutarti a migliorare l'utilizzo della memoria del gioco.
- Utilizza
ApplicationExitInfo
: questa API Java/Kotlin restituisce il motivo per cui l'esecuzione precedente della partita è stata interrotta dal sistema Android. UtilizzaApplicationExitInfo
per verificare la presenza di memoria insufficiente come motivo della morte di un'esecuzione precedente di un processo. Controlla se il gioco è stato interrotto a causa di una scarsa memoria, in modo che possa essere ottimizzato per utilizzare meno memoria sul dispositivo. - Osserva la RAM fisica totale: per evitare che i giochi vengano terminati in primo piano e per soddisfare le capacità del dispositivo, osserva la RAM fisica totale e regola l'utilizzo della memoria di gioco in base a questa metrica. Se
l'obiettivo è impedire l'interruzione delle app poco dopo il passaggio in background (per consentire al giocatore di eseguire il multitasking), utilizza i callback trim
(in particolare
TRIM_MEMORY_UI_HIDDEN
) per ridurre l'utilizzo della memoria del gioco. - Non registrarti per i callback trim deprecati: Android non dispone di
API per rilevare gli eventi di pressione della memoria nativa quando raggiungono
i limiti di memoria (vedi il callout daemon killer di memoria ridotto). I richiami di taglio
non sono stati utili per evitare l'interruzione in caso di scarsa memoria, pertanto Android li ha ritirati
tutti, ad eccezione di
TRIM_MEMORY_UI_HIDDEN
eTRIM_MEMORY_BACKGROUND
.
Daemon killer per memoria insufficiente Il demone Android low memory killer (lmkd) è un processo che monitora lo stato della memoria di un sistema Android in esecuzione e reagisce a un'elevata pressione sulla memoria uccidendo i processi meno essenziali per mantenere le prestazioni del sistema a livelli accettabili. Il daemon può scegliere i processi da terminare senza attendere che il processo accetti qualsiasi tipo di callback. Di conseguenza, le app e i giochi non riceveranno una notifica come ultima possibilità di rilasciare memoria prima di essere uccisi. Scopri di più sul demone di eliminazione a bassa memoria. |