Sto affrontando alcuni problemi con il consumo di memoria durante lo sviluppo di giochi 2D usando libGDX.Android: consumo della memoria di gioco LibGDX 2D
È un gioco 2D con un ricco contenuto grafico: ci sono molte trame, animazioni, font, ecc. Ho testato l'allocazione di memoria (nativo & heap) su dispositivi diversi ed ho ottenuto risultati diversi: (Ho diviso tutti i dispositivi per i gruppi da texture dimensioni)
Gruppo 1 (texture adottati per ~ 840 * 480 schermi)
HTC Desire (Froyo): 178Mb (nativo) - 12Mb (heap) - applicazione carica con successo
HTC One V (ICS): 30Mb (nativo) - 12Mb (heap) - applicazione carica con successo
HTC Desire S (Jelly Bean): 30Mb (nativo) - 12Mb (heap) - carichi applicazione con successo
Gruppo 2 (texture adottata per ~ 1366 * 768 schermi)
Samsung (Google) Galaxy Nexus 329Mb (nativo) - 18M b (heap) - funziona perfettamente
Galaxy TAB (Honeycomb) 164Mb (nativo) - 10Mb (heap) - applicazione va in crash (Surface.OutOfResouresException).
Penso che ci possano essere delle differenze significative nella gestione della memoria su tutte le versioni di Android, il che mi porta questi problemi.
Qualcuno può spiegare cosa succede esattamente durante il caricamento di trame su Android 3.x? O magari postare alcuni collegamenti per capire che cosa è necessario fare per risolvere questo problema.
qualche aggiornamento
Toady avevo fatto alcuni test supplementari su emulatori 3.x (so che questo non è il modo migliore, ma i registri era simile a emu e Galaxy Tab prima)
- Ho eseguito il gioco con texture adottate per 1024 * 600: l'app si blocca su risorse di caricamento dell'80% (158 allocazione memoria nativa)
- Con trame per 800 * 480 - Arresto anomalo dell'app su caricamento 100% (allocazione memoria nativa 145 Mb)
Infine, ho eseguito l'applicazione sul nuovo tablet Google Nexus (Jelly Bean) che utilizza le stesse texture di 3.x compresse (1280 * 800px) - ~ 30 Mb di memoria nativa e ~ 12 Mb di vm heap.
Ora mi perdo completamente la comprensione di quello che sta succedendo - stessa allocazione di memoria per le texture 800 * 480 e 1280 * 800 ...
FINALMENTE
io siamo stati risolvere questa situazione utilizzando le risorse di carico su domanda con qualche barra di progresso. Dopo tutti gli tentativi, non ho trovato un altro modo.
grazie per la tua risposta, mi chiedevo di vedere un bug così grave sulla piccola piattaforma di risorse. Google mi ha deluso :(Avevo provato a usare l'opzione largeHeap in manifest - aumenta l'heap fino a 280Mb, ma non ha alcun effetto – Viacheslav
Un bug serio in effetti. Tutti si stanno spostando su Android 4 quando si parla di tablet e la quota di mercato di Android 3 è piccolo, ma come ho detto prima dovrai rendere la risoluzione delle immagini più bassa quando si tratta di Android 3. – Zammbi
Lo stesso bug appare su Acer Iconia Tab con Android 4.0.3 – Viacheslav