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.