fastdroid-vnc - a fast Android VNC server based on libvncserver.
Started with original fbvncserver for the iPAQ and Zaurus. http://fbvncserver.sourceforge.net/
Modified by Jim Huang jserv.tw@gmail.com
Modified by Steve Guo (letsgoustc)
Modified by Danke Xie (danke.xie@gmail.com)
Copy the directory fastdroid-vnc to any Android build directory, run a build command from Android root $ make -j4 fastdroid-vnc
Push the binary to the device $ adb push system/bin/fastdroid-vnc /data/
Modify file permission and run $ adb shell
To make a linux build, one can use the linux Makefile instead of the above Android steps, and the Android makefile Android.mk.
Run make under the fastdroid-vnc directory $ make
The executable file fastdroid-vnc will be in the same directory.
This version of the VNC server can forward input events from the remote VNC viewer
to Android framework (based on Steve Guo's work). The way it works is converting
remote VNC inputs to Linux input events and send to the input devices /dev/input/event
The input devices used are the keyboard and the touchscreen. Each input device has
a specific
static const char KBD_PATTERNS[] = {"VNC", "key", "qwerty", NULL}; static const char TOUCH_PATTERNS[] = {"touch", "qwerty", NULL};
If an input device contains the strings in KBD_PATTERNS, it will be used to support keyboard events. The same is true for the touchscreen device with the keyword strings in TOUCH_PATTERNS. If more than one devices match, then the one matching the left-most pattern is used.
If a matching device is not found, then some default input devices will be used. The user can also specify the keyboard and touchpad devices by the command line:
-k <keyboard-device-path>
-t <touchscreen-device-path>
To determine which input device is the keyboard/touchscreen, one may make use of the information in /proc/bus/input/devices.
This VNC server is based on libvncserver 0.9.7, but several optimizations are made in the server to improve the response time to VNC clients, and reduced background activity when there is no active clients.
It also supports the double buffering mechanism used by Android. This can avoid frame misses found in previous Android framebuffer VNC servers.