ricordo di drawable, è meglio avere le risorse interne APK, fuori APK o è lo stesso per la memoria?

StackOverflow https://stackoverflow.com/questions/2005916

  •  18-09-2019
  •  | 
  •  

Domanda

Ho un'applicazione che attira un sacco di grafica e li cambia. Dal momento che ho molti elementi grafici, ho pensato di avere le immagini al di fuori del APK, scaricato da internet, se necessario, e salvato sulla cartella dell'applicazione file.

Ma ho cominciato ad avere eccezioni OutOfMemory.

La domanda è:? Fa memoria maniglia Android diverso se carico una grafica da APK che se lo carico da 'disco'

codice utilizzando APK:

  
    

topView.setBackgroundResource (R.drawable.bg);

  

codice se l'immagine è al di fuori APK:

  
    

Drawable d = Drawable.createFromPath (pathName);     topView.setBackgroundDrawable (d);

  

Grazie

Daniel

È stato utile?

Soluzione

No, internamente sono gestite allo stesso. Molto probabilmente, si sta perdendo le immagini, o non li pulire il più velocemente possibile. Prova a chiamare Bitmap.recycle(); una volta che hai finito con un'immagine, per costringere Android per ripulirlo.

Altri suggerimenti

In fase di runtime, l'occupazione di memoria che stai vedendo dovrebbe essere circa la stessa, non importa in che modo lo si carica. Android utilizzerà un programma di utilità per byte-allineare le risorse interne per l'apk che dovrebbe migliorare i tempi di caricamento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top