Différences et avantages de SurfaceView vs GLSurfaceView sur Android?

Je joue actuellement avec des graphiques 2D dans Android et j'ai utilisé une simple surfaceView pour dessiner Drawables et Bitmaps sur l'écran. Cela a bien fonctionné, mais il y a un petit bégaiement dans le mouvement des sprite, et je me demande la faisabilité de faire un jeu en temps réel (mais pas terriblement rapide) avec cela.

Je sais que GLSurfaceView existe qui utilise OpenGL, mais je suis curieux de savoir dans quelle mesure cela fait une différence. Est-ce qu'un hardware SurfaceView simple est accéléré ou dois-je utiliser OpenGL? Quel type de différence de vitesse j'attendrais de passer à OpenGL et quelle modification du code aurait-il besoin de changer (la logique du jeu est tout dans un objet séparé qui fournit un tableau ordonné de drawables à SurfaceView)?

  • Comment puis-je écrire une ressource Drawable dans un fichier?
  • Créer une vue personnalisée en gonflant une mise en page?
  • Comment stocker et récupérer des images dans la base de données SQLite android et les afficher sur un gridview
  • Dagger 2 et android Studio: fonctionne mais ne peut pas voir les classes générées
  • Pouvez-vous créer des applications React Native (application Android) sur Ubuntu?
  • Gestion de session Android
  • Android: comment obtenir l'ID d'une vue parental?
  • Les commandes de Gradle échouent sur l'API de l'API 23 Google Emulator (armeabi-v7a)
  • Manipuler les octets alpha de Java / Android couleur int
  • Android Roboguice Exception
  • Effectuez ImageView avec Round Corner à l'aide de Picasso
  • Flux de mémoire avec une police personnalisée pour définir une police personnalisée
  • 3 Solutions collect form web for “Différences et avantages de SurfaceView vs GLSurfaceView sur Android?”

    Pour autant que je puisse le dire, vous devez utiliser OpenGL pour obtenir une accélération HW. Mais ne prenez pas pour acquis et attendez d'autres réponses ^^

    Si c'est vraiment le cas, l'accélération devrait être très importante. Toute application 2D devrait fonctionner à au moins 20 images par seconde (généralement moins de polygones que les applications 3D)

    Il faudrait une quantité importante de code, mais 1) en tant que première tentative, vous pouvez essayer avec seulement 1 VBO carré et changer la matrice à chaque fois et 2) votre rendu semble déjà assez encapsulé, donc il devrait simplifier beaucoup les choses.

    SurfaceView n'est pas accéléré par le matériel par défaut. Si vous souhaitez obtenir une accélération HW, utilisez GLSurfaceView, qui utilise Opengl et accélère le matériel.

    L'accélération matérielle est possible pour une SurfaceView régulière depuis 3,0.

    http://developer.android.com/guide/topics/graphics/hardware-accel.html

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.