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)?

  • Superposition de contenu au-dessus d'AppBarLayout en utilisant la nouvelle conception de matériaux
  • Pouvez-vous développer des programmes Android sur un appareil Android de la tablette Android
  • Android Studio ne voit pas le périphérique
  • Android 6.0 gère incorrectement la méthode drawCircle
  • L'application Android ne reçoit pas la notification de la FCM lorsqu'elle est fermée
  • Android: le premier plan ne s'affichera pas correctement
  • Comment améliorer les performances de la base de données SQLite pour Android
  • Comment exécuter "android.bat sdk" dans Window 7
  • Est-ce que l'utilisation de Scala sur Android en vaut la peine? Y a-t-il beaucoup de frais généraux? Problèmes?
  • Dessine le texte "ellipsized" sur un canevas
  • Comment puis-je supprimer le "+" et le code de pays d'un numéro de téléphone?
  • Comment analyser avec GSON lorsque l'identifiant a de l'espace dans son nom
  • 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.