Reference: Learn about Android Graphics & Animations from Google’s Android UI Toolkit team
Subject
Learning Android GUI Architecture
Intro
I have an experience on a windowing system running on TV which uses DirectFB for surface managerment & Sawman for window management. And suddenly I wanted to know about Android GUI which can say the most recent GUI system on mobile.
Content
Android has currently three tools to draw an application UI, Canvas which uses Skia(SGL), RenderScript and OpenGL. And those tools create a surface for an application so that Surface Flinger can compose them to one screen for a graphic device. The most interesting for me was that it is not done by WindowManager but SurfaceFlinger does. Perhaps I need to look into the code more but currently with my glance PhoneWindowManger doesn’t care about composing windows. And not sure whether PhoneWindow(which is real window) has a surface or not. (But Activity has a window and ViewRoot and at least one needs to have it). According to Google tutorial, overall GUI architecture is below.
And this picture clearly says that the window manager doesn’t manage actual memory space but the surface flinger does and the window manager might provide only information that surface flinger needs to be used.
Conclusion
Directfb is a graphic library which is the standard for linux. And as you can see in the picture above, the position for graphic lib could be Skia(might be SGL) and openGL library.
Sawman that manages windows in our TV is called as window manager. For Android, it can be the surface manager which composites surfaces and shows off on the screen. But since android has window manager and surface manager respectively, the role of sawman might be devided into two manager, one managing only windows and the other managing only surfaces.
To be continue..





