I ported my iOS AI dashcam to Android and the Neural Engine gap is brutal — here are the numbers
I'm Naoufel, a solo dev from Oujda, Morocco. I built AYNI Cam — an
iPhone app that turns the phone into an AI dashcam: real-time road
detection, incident recording, all on-device, no cloud, no account.
I'm porting it to Android now, and the platform gap is bigger than I
expected.
On iPhone, Core ML runs my YOLOX model on the Apple Neural Engine and I
get ~20 FPS at 640×640. One API, works on every device.
On Android there's no equivalent. NNAPI was deprecated in Android 15,
and vendor NPUs (Qualcomm Hexagon, MediaTek APU) are only now becoming
reachable through LiteRT's new accelerators — and not on older mid-range
silicon at all.
So I benchmarked NCNN, LiteRT and ONNX Runtime on a Galaxy A33
(Exynos 1280), which is roughly the median device in my actual market:
- Best config: NCNN fp16 — 4.8 FPS cold, 4.0 sustained
- Thermal derating after 20 min: 1.2×
- GPU (Mali-G68 via Vulkan) was only 12% faster than CPU
- Dropping to 416×416 gets ~9.7 FPS but costs 42% of small-object AP —
and motorcycles, the class I most need, lose the most
The honest conclusion: the gap isn't the runtime, it's the missing NPU
path. iOS hits 20 FPS because of the ANE, not because Core ML is faster.
Happy to go deeper on any of it — the measurement methodology, the
YOLOX→NCNN Focus-layer surgery, or how I derived a minimum viable
frame rate from tracker geometry rather than picking a round number.
Replies