We should create a native vncviewer for android, based on the TigerVNC Java applet. We should also investigate if we can have libjpeg-turbo as a JNI for performance. It was discussed to create a client using TigerVNC's C++ code and then have a Java frontend, but we rejected that idea as we believe a pure Java one will get better community uptake. The downside now is of course that we have multiple implementations of the RFB code.
Time est. should be done now.
Current tigervnc packages: com.jcraft.jzlib -------------------------------------------------------- this is a zlib implementation and quick search among android opensource project shows that it is used here and there... imports java.io com.tigervnc.rdr -------------------------------------------------------- implements general I/O streams for communication, this imports and uses jcraft jzlib com.tigervnc.rfb -------------------------------------------------------- implements the core of tigervnc, some parts needs vncviewer such as the upper-password-getter callback, this should be refactored so its set into tigervnc core from the vncviewer then the way around. this packages depends on awt which doesn't exists in the android java framework, so alot of time will be refactoring to remove awt dependencies from this package, this should also be done in a favor to work with both the standard java vncviewer and the android version. the aim is to get rfb package to share as much code as possible between the orginal java client and android client. com.tigervnc.vncviewer -------------------------------------------------------- Imlpements the tigervnc viewer, depends on awt and swing which is not available on Android so the shortest approach taken here which also affect time est. is to rewrite a new vncviewer for the android application, built out of 2 views. Some parts of vncviewer holds configuration parts which is accessible from com.tigervnc.rfb, this should be refactored into tiger vnc core to make vncviewer as clean as possible. First view is the connection dialog which which allows input of servername, user and password. Second view is the surface view which will act as consumer of pixelbuffer for rendering and event producer for user inputs such as keyboard and touchscreen.