web-dev-qa-db-fra.com

Android Graphics internes

Je n'ai pas trouvé d'explication claire sur le fonctionnement du système graphique Android. En particulier, utilise-t-il un serveur d'affichage, est-il basé sur DirectFB ou X11, etc.?.

De ce que j'ai réussi à reconstituer, Android dépend du frame frame Linux . Je n’ai pas trouvé grand chose sur le type de serveur d’affichage ou de gestionnaire de fenêtres Android utilise pour multiplexer l’accès au framebuffer, donc tout pointeur serait très apprécié!

Enfin, d'après ce que je comprends, le jeu d'instructions ARM fournit des instructions pour accélérer OpenGL, mais la manière dont cela s'intègre au serveur d'affichage n'est pas claire, c'est-à-dire. les applications clientes négocient-elles un tampon de mémoire partagée dans lequel le client écrit directement?

Les bibliothèques OpenGL pour l'accélérateur de plate-forme sont-elles ouvertes? J'ai trouvé des références suggérant qu'ils sont des fichiers binaires fermés. Encore une fois, tout pointeur serait apprécié.

37
naasking

Il existe deux éléments principaux dans les graphiques Android: SurfaceFlinger et Skia. SurfaceFlinger est le compositeur d'Android, utilisé par le gestionnaire de fenêtres pour créer et afficher des fenêtres (appelées en réalité surfaces). SurfaceFlinger est actuellement implémenté au-dessus d'OpenGL ES 1.x et peut également utiliser d'autres techniques d'accélération matérielle lorsqu'elles sont disponibles T-Mobile G1 ou des superpositions matérielles sur le Xoom.)

Chaque application effectue le rendu dans ses fenêtres (ou ses surfaces) en utilisant principalement Skia. Skia est la bibliothèque graphique 2D d'Android. Vous pouvez également utiliser OpenGL ES 1.x et 2.0 pour effectuer un rendu sur une surface.

Android n'utilise pas DirectFB ou X11 ni aucune autre solution Linux existante.

38
Romain Guy

Il y a une brève présentation d'introduction sur Android Graphics: http://www.slideshare.net/jserv/design-and-concepts-of-Android-graphics

8
jserv

Romain Guy avait définitivement raison. Mais la chose a changé depuis Android 3.0. Skia n’est plus aussi important, la plupart des dessins 2D sont accélérés à l’aide de openGL, composant a.k.a HWUI. 

4
pierrotlefou

Toutes les informations sur les graphiques Android peuvent être trouvées ici:

https://source.Android.com/devices/graphics/

1
Juan Moreno