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.
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.
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.
Recently, I have been working on windowing system in C on TV. That is the reason why I have wonder how those works in the android. (Pls don’t expect much since i am not that expert on android and have not good English at this time)
The first target is Window object which can be explained by its reference page in the android website. As you can see in that page, there are lots of flags and objects which works for the window object. And just by reading those names, you may come to know why those are required. But if you more try to analyze it you will meet a problem that it is a ABSTRACT CLASS as in android.view.Window. And I could not find any class that inherit it…. The end….just kidding.
Here is the story(that i guess). The Google wanted android to have generic UI style. If Window class was open, everybody can touch and modify it so the android would never have consistent UI style!. Thus, Google made several policies in android.policy and defined many objects that is hidden from developer.
Let’s check the folder out.
As you can see, there are many classes you have never seen while developing apps. And there is PhoneWindow class which is really used to create a window.
This is only the object that extends Window. In addition, you can find a lot more functions and object to make the window working for andorid.
The interesting thing is that to hide those objects(in the policy folder), they create a policy object called Policy.java and then create them only from it.
Now PhoneWindow/PhoneLayoutInflater/PhoneManager are perfectly hidden.
Suddenly I had a curious about what my facebook url is then found it’s http://www.facebook.com/profile.php?id=100001845975260. And realized I have an ID, 100001845975260, for my facebook account. it is 100,001,845,975,260 and as per my poor english it’s one hundred trillion one billion eight forty five million nine seventy five thousand two sixty. Really huge even though population over the world is just around 6,600,000,000(6.6 billion). why?
I think the CEO, Mark zuckerberg, in the facebook had ideas that many user would create their own facebook more than one and even company might open their facebook for advertisement as it is. And I think it could be an unique id number which can be used for their identification all over the world like personal identification number in one’s native(not sure if all people in all countries has this).
Let’s check it out.
Then, who would be the just minus one of my id?
There you go, Gabi Lazarus.(sorry for referring your facebook) Unfortunately, his/her facebook is allowed to share with only friends. it’s kinda fun to navigate facebook by id. =)
I’m gonna introduce our new live wallpaper named aButterfly FantasiaLive wallpaperv1.0. It’s very beautiful live wallpaper since I’ve ever created applications. Many of butterflies are freely flying here and there. and you can change the color whatever you want.
There ‘re two options that one is Double TAP and Icon Drop. Double tapping shows kind of slow motion in all the butterflies(it’s really good) and Dropping icon shows a flower and a big butterfly(more than double tap).