Un petit retour pour que ça tourne sur un Magic :
- J'ai utilisé C++ plutôt que Java. Le Magic n'a pas de JIT (trop peu de mémoire) et Java est donc super lent sur ce téléphone qui n'est déjà pas rapide…
- Quitte à rester en Java, il vaut mieux éviter Canvas et Drawable et travailler directement en OpenGL. Ca permet d'être plus fin dans ce qu'on veut et on gagne des perfs.
- Y'a tout un tas de petit "tips" pour écrire du code Java performant sur Android. Ca passe par l'utilisation de static final lorsque c'est possible, éviter les getter, etc : http://developer.android.com/guide/practices/design/performance.html
- Mais si tu veux vraiment des bonnes perfs sur des téléphones bas de gamme, je crois que passer par C++ est nécessaire. C'est assez facile de faire du JNI sous Android. Pour mon jeu de tank, j'avais fais l'interface en Java et tout ce qui est jeu en C++.
# HTC Magic et performance
Posté par Jux . En réponse au journal Newton Adventure évolue sur PC et débute sur Android. Évalué à 10. Dernière modification le 25 mai 2012 à 19:40.
J'avais à l'époque développé un jeu de tank en 2D qui tourne bien sur un HTC Magic :
https://play.google.com/store/apps/details?id=net.fhtagn.zoob_demo
Les sources sont dispo sur github :
https://github.com/julienr/zoob
Un petit retour pour que ça tourne sur un Magic :
- J'ai utilisé C++ plutôt que Java. Le Magic n'a pas de JIT (trop peu de mémoire) et Java est donc super lent sur ce téléphone qui n'est déjà pas rapide…
- Quitte à rester en Java, il vaut mieux éviter Canvas et Drawable et travailler directement en OpenGL. Ca permet d'être plus fin dans ce qu'on veut et on gagne des perfs.
- Y'a tout un tas de petit "tips" pour écrire du code Java performant sur Android. Ca passe par l'utilisation de static final lorsque c'est possible, éviter les getter, etc :
http://developer.android.com/guide/practices/design/performance.html
- Mais si tu veux vraiment des bonnes perfs sur des téléphones bas de gamme, je crois que passer par C++ est nécessaire. C'est assez facile de faire du JNI sous Android. Pour mon jeu de tank, j'avais fais l'interface en Java et tout ce qui est jeu en C++.
Bonne chance !