Evidence · Native Android and physical-device engineering
ScopeCam
Private Android UVC microscope application
Summary
ScopeCam is a private proprietary Android application and multi-module camera runtime for UVC USB microscope cameras. It combines a Jetpack Compose interface, Kotlin orchestration, and a C++/JNI camera engine.
Strongest proof
A signed 0.1-alpha client build was delivered on 2026-06-09. Physical-device testing also verified recovery from a camera-replug deadlock without a new application-not-responding failure.
Technical decision
The application separates Android UI and Kotlin orchestration from a C++/JNI camera engine. Debug and QA builds include local diagnostics, while release builds bind a no-op implementation instead of starting that service.
Current limit
The source is private and the application is not broadly released. Hardware coverage remains limited, and a timed-out camera recovery can still require a process restart.
Technical shape
Android and native camera stack
- Android, Kotlin, Jetpack Compose, and a foreground camera service.
- C++20 JNI/NDK engine built with CMake for ARM64 and ARMv7.
- Vendored
libusb,libuvc, andlibjpeg-turbolinked into the native engine. - Room and MediaStore persistence with descriptor-first UVC handling.
Scoped render-path optimization
An AHardwareBuffer-backed triple-buffer path uses EGLImage texture binding and fence synchronization to avoid an additional CPU copy between the native frame buffer and GPU texture. This is a boundary-specific optimization, not an end-to-end zero-copy claim.
Evidence-oriented diagnostics
Debug and QA builds expose local telemetry, snapshots, and protected diagnostic actions. Release builds use a no-op implementation, so this is not a production REST-service claim.
Specification and handback discipline
A repository operating contract separates source validation from physical-device evidence. Specialized workflows return explicit PASS or FAIL handbacks with the observation method, unresolved risks, and the next responsible actor, so a static check cannot silently stand in for USB negotiation or camera behavior.
What the work demonstrates
- Native Android, Kotlin, C++, JNI, and NDK systems engineering.
- USB lifecycle and physical-device integration.
- Cross-boundary concurrency and teardown debugging.
- Specification-driven, cross-tool agent workflows with evidence-preserving handbacks.
- Evidence-oriented diagnostics and device verification.
- Client delivery with explicit compatibility and maturity boundaries.