Graphical Display
DroidVM provides three ways to access a virtual machine's graphical interface: VNC Display, Native Display, and External Display Casting. Configure them in Create/Edit VM → Display tab.
Display Method Comparison
| Method | Performance | Use Case | Prerequisites |
|---|---|---|---|
| VNC Display | Medium | General purpose, best compatibility | VNC enabled |
| Native Display | High | Maximum smoothness | GPU enabled + Virtio-GPU (GfxStream) |
| External Display Casting | Medium | Large screen / desktop usage | VNC enabled + external monitor |
VNC Display
Once VNC is enabled, tap "Display" on the VM detail page to connect using the built-in VNC client. It automatically reconnects after a disconnect (up to 5 times).

📷 Screenshot placeholder: VNC display interface with floating menu
Top Bar Menu
- Keyboard: Show the soft keyboard
- Rotate Screen: Switch between landscape and portrait
- Reconnect: Manually reconnect
- Open with External VNC App: Launch a third-party VNC client
- View URL: Show the local + remote
vnc://addresses and password, which can be copied (convenient for connecting from VNC software on a computer)
Input Modes
The floating button toggles between Touch Mode and Mouse Mode:
Touch Mode
- Tap = left mouse button
- Tap the screen to bring up the soft keyboard
Mouse Mode (trackpad-style)
| Gesture | Action |
|---|---|
| One-finger move | Move the cursor |
| One-finger tap | Left button |
| Two-finger tap | Right button |
| Three-finger tap | Middle button |
| Double tap | Double click |
| Two-finger pinch | Zoom / rotate / pan the view |
| Three-finger swipe up/down | Scroll wheel |
Extra Keys Panel
Provides sticky modifier keys such as Ctrl / Alt / Shift / Win: a single tap takes effect once, a long press locks it. Combined with the soft keyboard, you can send key combinations (e.g. Ctrl+C).
Native Display
Native Display hands the Android Surface directly to crosvm for rendering, skipping the VNC encoding stage, so its performance and latency are significantly better than VNC.
Requirements: In the Display tab, enable GPU, set the renderer to GfxStream, set the display backend to Virtio-GPU, then check Enable Native Display.

📷 Screenshot placeholder: Native display interface
- When you open the display, the app requests a display handle from the daemon, then automatically starts the virtual machine
- Touch and keyboard are forwarded directly via evdev, with extremely low latency
- The floating menu provides: keyboard, extra keys, fullscreen; the window scales to the guest's aspect ratio
Soft Keyboard
If the soft keyboard does not appear under Native Display, you can tap the "Keyboard" button in the floating menu to bring it up manually.
External Display Casting
Using the Android Presentation API, the virtual machine's VNC output is cast to an external monitor (USB Type-C / HDMI / wireless casting), while the phone itself acts as a trackpad controller.

📷 Screenshot placeholder: External display casting + phone trackpad
- A "Select Display" dialog pops up when entering
- The phone screen becomes a trackpad: supports cursor movement, left / middle / right buttons, and scroll wheel
- Supports USB HID input capture: after connecting a physical keyboard and mouse, their input can be captured directly and forwarded to the virtual machine
- When the external display is unplugged, it shows "Display disconnected" and closes
This method is especially suited to using your phone as a portable host: an external screen + a Bluetooth/USB keyboard and mouse give you an experience close to a desktop computer.
