分类: Android平台
2014-05-04 15:25:52
最近看到了很多传闻,譬如说Chrome要被移植到Android,Wayland要被Ubuntu和Meego使用。作者自了解Linux以来一直痛恨Linux桌面的分裂局面。现在,这些传闻让我看到了一些曙光。不吐不快。
如果Ubuntu从传统的X Window演进到Wayland是一种进步,那么,直接渲染(Direct Render)是传统的X Window渲染模式的改进。
下图是的架构图:
Wayland区别于X Window的特征之一是直接渲染。也就是说,客户端和服务器共享渲染内存,客户端要显示自己,就自己画在渲染内存上。绘图结束后,请求服务器将渲染内存上的数据合成到FrameBuffer。
而这些特性,和Android的SurfaceFlinger也是实现了的:
我不想计较Wayland和SurfaceFlinger谁出现在前谁出现在后。对我而言,他们的出现证明了直接渲染是一个很重要的趋势。
网站有关于Wayland带来的性能改进。
其实,Wayland做的事情比SurfaceFlinger要多一点,那就是他还做了输入事件的处理。SurfaceFlinger则很纯粹,完全只是负责输出。不过这不是两者的本质区别。
还有一点,Wayland是C写的。我看了几行代码,实在不愿意看C写的东西。Gtk已经够恶心人了。
我在想既然有了SurfaceFlinger,为什么还有人会去使用Wayland这样的东西?难道Linux Desktops的分裂带来的灾难还不够深重吗?什么平台不重要,重要的是有没有创造价值的应用。
同学们可以列举出Gtk/Qt的很多优秀的特点。譬如说跨平台、历史悠久(如果历史悠久也算有点的话)等等。但是我非常不喜欢Gtk。Gtk是我见过的最糟糕最难用的东西。Qt应该会好很多,而且现在有Nokia在使劲推Qt。我一度认为Meego的X+Qt+WebKit是一种不错的选择。但是现在这一点有可能被Nokia修改为Wayland+Qt+WebKit。那么,未来呢?SurfaceFlinger+Qt+WebKit?谷歌估计不会做这件事情。Nokia一向自高自大,也不会这么去做。
所以我觉得未来只有一种可能:
SurfaceFlinger+Android View+Chrome。
简单说,就是Android+Chrome。
现在有一种直觉,Chrome OS里面的X可能要被谷歌摘除。对于谷歌来说,直接将Chrome移植到Android是更加有价值的做法,谷歌实在是没有必要去维护一个性能低下的X Window。也没有必要去引进一个不成熟的而且是用C写的Wayland,因为Wayland要做的最重要的事情,SurfaceFlinger已经做到了。
所以谷歌有可能会直接把Chrome移植到Android中。这样Android就脱胎换骨,具备了Web OS的功能。那时候大家想为Android开发应用,想用Java,没问题;想用JavaScript+Html,那也没问题。
在Android+Chrome这样一个“异形”的平台中,可以无缝的整合云和手持终端。那才是Linux的美好时代。
到那一天,Linux分裂的局面终将结束,一直被Windows打压的时代也终将结束。