Sto lavorando a un videogioco per Android utilizzando OpenGL 1.0.Prestazioni errate OpenGL in Android Gingerbread
Ho seguito questo tutorial: http://www.javacodegeeks.com/2011/06/android-game-development-tutorials.html
ho creato un po 'di demo che funziona molto bene e fluida (limitato a 30 fps) nel mio cellulare attuale: HTC Sensation (Android 4.0.3 Ice Cream Sandwich).
Inoltre, ho provato il mio gioco in cellulari del mio amico con i prossimi risultati:
- Galaxy S2 = perfetto! (30 FPS)
- Galaxy Note = perfetto! (30 FPS)
- HTC One S = perfetto! (30 FPS)
- Sony Xperia Tipo = perfetto! (30FPS)
- Samsung Galaxy Ace GT-S5830 = pessimo prestazioni> _ < '(< 10FPS e testato in due cellulari)
Se si confrontano le specifiche tra Xperia Tipo e Samsung Ace si può vedere che sono quasi lo stesso cellulare.
XPERIA TIPO:
- 320 x 480 risoluzione
- 512 MB di RAM
- Qualcomm MSM7227A a 800 MHz, GPU Adreno 200
Samsung Galaxy Ace:
- 320 x 480 risoluzione
- 278MB RAM
- Qualcomm MSM7227 da 800 MHz, GPU Adreno 200
OK, la RAM è diverso, ma il mio gioco è molto semplice, non consuma più di 200 MB! Ma la performance è completamente diversa. Senza senso!
Tuttavia ... solo una cosa è diversa! Samsung Galaxy Ace utilizza Android 2.3.X (Gingerbread) e Xperia Tipo utilizza Android 4.0.3 (ICS).
Quindi, la mia punta di diamante è che il problema è con Android 2.3.X - Gingerbread o Galaxy Ace è un cestino della spazzatura.
Ma ... Ho forzato i miei amici a installare gli esempi AndEngine e testarlo, con il risultato che il test Nexus ParticleSystem funziona molto bene e fluido.
Sono completamente perso! Perché questo diverso nelle prestazioni? Cosa sto facendo di sbagliato?
qualche informazione in più:
- Seguo tutti i passi da quel tutorial.
- Uso GL10 (OpenGL 1.0).
- Nessun shader.
- Nessun tempo di delta per FPS persi (non penso che questa cosa risolverà il mio problema).
- Nessun codice nativo, solo Java.
- SystemClock.uptimemillis() e sleep() per controllare FPS.
- MediaPlayer per riprodurre una song MIDI (non più suoni).
- Textures con molto alfa (gioco 2D, è necessario per gli sprite).
- minSDKversion = 8
Se avete bisogno di ulteriori informazioni, la prego di dirmi.
Alcuni suggerimenti: Forse GC sta diventando selvaggio? Prova a rimuovere la tua app finché il problema non scompare. Prova a profilare la tua app. –
Beh, penso che 200 MB non siano così piccoli. Si può provare a rilevare la capacità del ram all'inizio, quindi ridurre le dimensioni della bitmap a metà se necessario. Comunque anche questo non ha risolto il mio problema su Ace. Sembra che gli assi abbiano un problema speciale a riguardo. –