Sono abbastanza nuovo per Android e ho sviluppato un gioco. Ogni tanto ho utenti che segnalano da memory exceptions
, che trovo sorprendente dal momento che i bitmap che creo sono al massimo di 200 kb. Chiamo BitmapFactory.decodeResource()
ogni volta che creo un nuovo sprite
. Dato che la mia applicazione è un gioco di difesa degli zombi, potresti aspettarti di creare degli sprite abbastanza spesso.Android: Eccezione memoria esaurita/In che modo decodeResource viene aggiunto al budget della macchina virtuale?
Ogni volta che creo uno sprite, chiamo la risorsa di decodifica per generare una bitmap. La mia domanda è se dovessi chiamare la risorsa di decodifica solo all'inizio di ogni attività e fare riferimento alla bitmap a livello di pacchetto, questo ridurrebbe la quantità di memoria inserita nel budget della VM?
Da documenti di 'inPurgeable': Nota: Questo flag viene ignorato quando viene utilizzato con' decodeResource (Risorse, int, android.graphics.BitmapFactory.Options) 'o' decodeFile (String, android.graphics.BitmapFactory. opzioni) '. –