How gsjsjzhznsz/xiaomivelasimulator works
Xiaomi VELA Simulator is an Android app for running openvela/QEMU device images and inspecting simulated wearable software. The main workflow is selecting or editing a device template, obtaining a firmware image and QEMU runtime, starting a session, then viewing serial output or the guest display. Separate Workshop flows inspect .rpk quick-app packages and .bin watchface resources for device-shaped previews; they do not execute quick-app JavaScript. The graph reflects README-documented capabilities where implementation excerpts were unavailable, so some UI-to-manager wiring is intentionally left out.
Main entry points: QemuSession.kt QEMU session · MainViewModel.kt App state · WorkshopScreen.kt Workshop screens · MainActivity.kt App navigation
Components 23
App UI
- App navigation
app/src/main/java/com/vela/simulator/MainActivity.kt - App state
app/src/main/java/com/vela/simulator/ui/MainViewModel.kt - Device and run screens
app/src/main/java/com/vela/simulator/ui/screens - App configuration
app/src/main/java/com/vela/simulator/config/VelaConfig.kt - Application and session logs
app/src/main/java/com/vela/simulator/util/FileLogger.kt
Devices and Images
- Device templates
app/src/main/java/com/vela/simulator/device/TemplateRepository.kt - Template model
app/src/main/java/com/vela/simulator/device/DeviceTemplate.kt - Image download and import
app/src/main/java/com/vela/simulator/engine/ImageManager.kt
Simulation I/O
- QEMU runtime setup
app/src/main/java/com/vela/simulator/engine/QemuRuntime.kt - QEMU arguments
app/src/main/java/com/vela/simulator/engine/QemuArgsBuilder.kt - QEMU session
app/src/main/java/com/vela/simulator/engine/QemuSession.kt - Serial console
app/src/main/java/com/vela/simulator/terminal/SerialConsole.kt - RFB display client
app/src/main/java/com/vela/simulator/vnc/RfbClient.kt - Display geometry
app/src/main/java/com/vela/simulator/vnc/DisplayGeometry.kt
Workshop
- Workshop screens
app/src/main/java/com/vela/simulator/ui/screens/WorkshopScreen.kt - Quick-app package parser
app/src/main/java/com/vela/simulator/quickapp/RpkManager.kt - Watchface parser
app/src/main/java/com/vela/simulator/watchface/WatchfaceManager.kt - Device-shape preview
app/src/main/java/com/vela/simulator/ui/components/WatchPreview.kt - Quick-app preview
app/src/main/java/com/vela/simulator/ui/screens/WorkshopScreen.kt - Watchface preview
app/src/main/java/com/vela/simulator/ui/screens/WatchfaceScreen.kt
Other components
- Android user
- QEMU process
- Download sources
Connections 31
- Android user → App navigation: opens and navigates
- App navigation → App state: uses app state
- App navigation → Device and run screens: displays
- Device and run screens → App state: requests app actions
- Device and run screens → App configuration: reads and updates preferences
- App state → Device templates: loads and saves templates
- Device templates → Template model: parses and serializes
- App state → Image download and import: requests image operations
- Image download and import → Download sources: downloads firmware
- App state → QEMU runtime setup: sets up runtime
- App state → QEMU session: starts and controls
- QEMU session → Image download and import: validates kernel
- QEMU session → QEMU runtime setup: uses runtime paths
- QEMU session → QEMU arguments: builds launch plan
- QEMU arguments → Template model: reads device settings
- QEMU session → QEMU process: launches and stops
- QEMU session → Serial console: connects and sends commands
- QEMU session → RFB display client: connects to display
- Serial console → QEMU process: exchanges serial data
- RFB display client → QEMU process: exchanges RFB events and frames
- Device and run screens → QEMU session: presents session controls
- QEMU session → Application and session logs: records session output
- App navigation → Application and session logs: records app events
- Workshop screens → Quick-app package parser: imports and parses packages
- Workshop screens → Watchface parser: imports and parses watchfaces
- Workshop screens → Quick-app preview: opens quick-app preview
- Workshop screens → Watchface preview: opens watchface preview
- Watchface preview → Device-shape preview: renders device shape
- Quick-app preview → Device-shape preview: renders device shape
- Watchface preview → Watchface parser: shows parsed resources
- Quick-app preview → Quick-app package parser: shows package details