Panoramica dell'API Memory Advice

L'API Memory Advice è un'API nativa sperimentale che aiuta le app per Android a rimanere entro i limiti di sicurezza per l'utilizzo della memoria. L'API lo fa stimando la quantità di risorse di memoria in uso e poi notificando all'app quando vengono superate determinate soglie. L'API può anche segnalare la percentuale stimata di utilizzo della memoria direttamente alla tua app.

Le stime fornite dall'API aiutano a determinare quando l'app deve regolare l'utilizzo della memoria o a trovare aree da migliorare nelle versioni future dell'app. Le modifiche potrebbero includere qualsiasi cosa che cambi il consumo di memoria, ad esempio la riduzione dei dettagli e della qualità delle risorse visive e audio.

Le risorse di memoria stimate includono la memoria heap nativa allocata da malloc e la memoria grafica allocata dalle API grafiche OpenGL ES e Vulkan, il che rende l'API Memory Advice ideale per giochi e app con un utilizzo elevato di grafica.

Le stime vengono effettuate in base a quanto segue:

  • Metriche del dispositivo raccolte dall'API
  • Dati di machine learning dai dispositivi
  • Test del dispositivo

A livello di API, l'API Memory Advice definisce un insieme di stati di consigli sulla memoria e li comunica alle app con un insieme di funzioni.

Inizia Inizia per i giochi Unity

Distribuzioni

L'API Memory Advice fa parte dell'Android Games Development Kit (AGDK) e viene distribuita tramite i seguenti canali:

I giochi devono utilizzare la versione dell'API Memory Advice consigliata per il loro ambiente di build. Per Android Studio, ti consigliamo la versione Jetpack. Per l'Android Game Development Extension (AGDE), consigliamo la release nella pagina di download dell'AGDK.

Funzionalità

Questa sezione descrive le funzionalità dell'API Memory Advice.

Stato della memoria

L'API segnala i seguenti stati della memoria alle app:

  • MEMORYADVICE_STATE_OK
  • MEMORYADVICE_STATE_APPROACHING_LIMIT
  • MEMORYADVICE_STATE_CRITICAL

Per maggiori dettagli, consulta le pagine di riferimento memoryadvice_memorystate.

Segnalazione dello stato della memoria

L'API supporta la segnalazione dello stato della memoria tramite un meccanismo di polling o di callback:

  • Polling:
    un'app può chiamare l'API in qualsiasi momento per recuperare lo stato della memoria.

  • Callback:
    Un'app può registrare una funzione di callback con l'API Memory Advice. L'app specifica la frequenza di chiamata per il callback. L'API utilizza la frequenza per determinare quando eseguire il callback quando la condizione di memoria dell'applicazione si sta avvicinando al limite di sicurezza o è in esaurimento critico. Il callback non viene richiamato se la condizione di memoria è sicura. Il callback viene eseguito dal proprio thread, non da un thread appartenente all'app.

Considerazioni sui costi e sulla frequenza delle chiamate

L'API Memory Advice utilizza il tempo di calcolo per generare lo stato della memoria. Il costo varia a seconda del dispositivo, ma di solito è compreso tra 1 e 3 ms per chiamata. Devi tenere conto di questo overhead quando determini la frequenza con cui eseguire il polling dello stato della memoria o la frequenza da specificare per il callback dello stato della memoria.

Requisiti

Requisiti del dispositivo

  • Android 4.4 (livello API 19) o versioni successive.

Requisiti delle app

  • L'API supporta solo le app native (app scritte principalmente in C/C++).

  • L'API supporta solo i dispositivi fisici; gli emulatori non sono supportati.

Requisiti per la versione dell'NDK

La release dell'API Memory Advice supporta le versioni NDK più popolari. Consulta le note di rilascio per l'elenco degli NDK supportati.

Risorse aggiuntive

Problemi e feedback

L'API Memory Advice è in versione beta e accoglie con favore i feedback. Se hai suggerimenti o riscontri problemi durante l'utilizzo dell'API, crea un problema in IssueTracker.