Je connais bien le monde de bureau de l'Android et je suis en train de creuser pour, comment ça marche.
Je pense que, parce que de multiples processus (applications) peuvent interagir simultanément avec le bureau, un service central (processus) devrait exister pour collecter leurs demandes de changement et les unir dans une forme toujours cohérente (par exemple, si le contenu d'une fenêtre change alors qu'elle n'est pas visible, alors le changement devrait être invisible à l'écran - jusqu'à ce que cette fenêtre ne passe pas à l'avant). Seul ce processus a un accès direct à la mémoire tampon de l'écran (c'est-à-dire qu'il est le seul à pouvoir modifier directement les pixels).
Dans le monde Linux/Unix, c'est le serveur X qui s'en charge. Les processus (apps) interagissent avec le serveur X sur des sockets Unix.
Sous Windows, pour autant que je sache, il s'agit d'une fonctionnalité du noyau (il n'y a donc pas de processus spécifique pour cela), et les processus interagissent avec elle sur LPC (local procedure calls, mécanisme de communication espace utilisateur - espace noyau spécifique à Windows).
Sur le net, il existe une énorme masse de documentation détaillée sur l'interface au niveau de l'application, mais rien sur les éléments internes plus profonds.
Comment cela fonctionne-t-il sur Android ?