Bridging C++ and Java with Qt JNI: An Android Application for On-Device Landmine Detection

Recognizing objects in real-world situations, especially on mobile devices with limited resources or in areas with poor internet connectivity, can be a significant challenge. This talk presents a C++ application for real-time landmine detection, focusing on the Android deployment and its ability to perform on-device detection.

The application, built with the Qt framework written in C++, is designed for both offline (on-device) and online (cloud-connected) operation, balancing performance, accuracy, and connectivity constraints. The Android deployment utilizes the Qt JNI (Java Native Interface) to interact with an ONNX Runtime-based inference engine running in a Java environment, as well as accessing native Android APIs for tasks requiring on-device processing, such as file I/O, thumbnail generation, and network connectivity checks. We will discuss the challenges and solutions involved, including data marshalling between C++ and Java (image format conversion and bounding box result processing), and accessing native Android functionalities from C++. The presentation will include simplified code examples that illustrate these critical integration points.

By the end of the talk, attendees will gain a practical understanding of how to communicate between C++ and Java using JNI, integrate pre-trained deep learning models into their C++ applications, evaluate the trade-offs between on-device and cloud-based processing, and address performance considerations for real-time object detection on Android.

Image

Oleksandr Kunichik

I am Oleksandr Kunichik, a Senior C++ Developer at Pokerstars in Toronto and a Ph.D. student in Software Engineering at the Taras Shevchenko National University of Kyiv. I have over 10 years of experience developing C++ applications, and my current research combines this expertise with deep learning for real-time landmine detection. This involves creating a cross-platform application using C++ and Qt (QML for the UI, Qt Concurrent for multithreading), with a particular focus on Android deployment. My previous roles include C++ developer positions at FUIB, a major Ukrainian bank, and Mercedes-Benz

Where

Toronto

When

July 20-23, 2025

LinkedIn

CppNorth Group