Android Live Wallpapers - OpenGL vs Canvas
Je suis une personne assez "newb" développeur Android, et j'aimerais que l'un de mes premiers projets à être un live wallpaper, cependant, je suis en conflit si je devrais être en se concentrant sur la Toile ou OpenGL. Étant nouveau, je sais que je devrais le maître de la Toile en premier car il est plus facile à utiliser, mais je préfère apprendre à partir de projets concrets que j'ai un intérêt, même si c'est un peu en arrière de temps en temps.
J'ai utilisé les deux avant de de très de base façons, et je comprends les concepts généraux pour eux, mais je ne suis pas sûr de savoir comment ils transfèrent sur le domaine des fonds d'écran animés. Je figure que la pleine soufflé à la vitesse de l'OpenGL n'est pas nécessaire sur un live wallpaper, depuis l'exécution à max FPS serait juste l'autonomie de la batterie plus que nécessaire, mais en même temps, je suis inquiète de voir que l'utilisation de la Toile serait la cause de lag et bégaie quand on fait de l'évolution des choses comme les écrans d'accueil.
J'ai été penchant vers l'utilisation de OpenGL ES 2.0, à la fois pour garder des performances optimales et parce que mes premières idées pour le fond d'écran impliquent un grand nombre de superposition que je ne suis pas sûr que la Toile est capable de faire, mais je voudrais plus de développeurs expérimentés avis sur l'existence ou pas du tout de travail supplémentaire en utilisant OpenGL (notamment en relation avec des fonds d'écran animés, d'après ce que j'ai lu) est-il la peine.
source d'informationauteur Shamrock
Vous devez vous connecter pour publier un commentaire.
Si vous pouvez vous en sortir avec juste dessiner une toile (par exemple cube exemple dans le SDK), c'est beaucoup moins de travail. En raison de la simplicité de l'animation (pas d'images), le cube est en mesure d'atteindre une fréquence d'images élevée sans difficulté.
Si vous voulez utiliser OpenGL, vous aurez besoin d'utiliser un paquetage supplémentaire, comme GLWallpaperService, AndEngine, ou RenderScript.
http://www.rbgrn.net/content/354-glsurfaceview-adapted-3d-live-wallpapers
http://www.andengine.org/forums/tutorials/live-wallpaper-template-t258.html
Parcourir le code source Android pour voir comment les actions fonds d'écran (par exemple l'Herbe, Galaxie) sont mis en œuvre à l'aide de RenderScript. Ce lien peut de travail, mais aucune garantie: http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android-apps/4.1.1_r1/com/android/wallpaper/ (puis faites défiler vers le bas pour le fond d'écran)
Moonblink a abandonné son projet, mais si vous êtes vraiment désireux, vous pouvez essayer la recherche de son travail (Substrat) à partir de la ici: http://code.google.com/p/moonblink/source/browse/wiki/Setup.wiki
J'ai fini par utiliser OpenGL comme à mi-chemin par le biais du projet, de la toile de dessin s'est avéré trop lent pour ce que je cherche à réaliser. En utilisant OpenGL causé un énorme gain de performance. Malheureusement, j'ai eu de revoir mon code, donc je vous recommande l'utilisation de OpenGL depuis le début. Sale le rendu est pris en charge par OpenGL ainsi que la wallpaperservice de la structure ne repose pas sur la façon de vous rendre les choses de sorte que vous serait toujours en mesure de créer un fond d'écran qui ne veut pas vider la batterie. Effectivement une bien programmé fond d'écran ne rend pas quand il est caché. Comme les fonds d'écran livré avec android ne suivent pas ce modèle, fonds d'écran animés maintenant ont la mauvaise réputation d'être la batterie de gourmands. Vraiment une honte..