An X Server written against the X11 protocol in Java has been made available for Google's Android platform.
Announced last week
on the blog of Matt Kwan, an Australian PhD student, was an X Server for Android. "For the past few months I’ve been implementing an X11 server to run natively under Android. In the near future I may have need for a serializable user interface, so to get a better understanding of how they work I decided to implement the de facto standard, X11. Well, it turns out the X protocol is bigger than I thought, but through sheer bloody-mindedness I got it finished. And it might actually be useful."
This X11 Server for Android is meant to run natively on Google's mobile platform, so it's been written in Java. The X Server does support launching Linux X11 applications remotely and to then be displayed on the Android phone. Virtual and physical keyboards are supported along with trackpads and touch-screen movements.
While this is a near-complete implementation of X11, there's a few missing protocol items such as for dynamic color maps, most drawing operations, queueing keyboard and pointer events during grabs, and X extensions (i.e. there's no X RENDER or RandR, etc).
This Android X Server ships without a window manager, but one can be run remotely such as fvwm. Applications that just use Xlib exclusively should work fine within this X Server.
The X Server for Android is now available from the Android application marketplace. The code is made available under the Apache license and can be found on the android-xserver Google Code page
. This X11 Server is written in about 14,100 lines of Java code.