Comparative evaluation between Java application using JNI and native C/C++ application running on an Android platform. - Alison de Oliveira Venâncio; Thales Ruano Barros de Souza; Bruno Raphael Cardoso Dias (ITEGAM-JETIA)
Android is a popular operating system based on the Linux kernel and has a Java-based framework. As it is built on Linux, it supports the development of applications written in C/C++, known as native applications. The Native Development Kit (NDK), along with the Java Native Interface (JNI), provides a solution for communication between Java applications and native C/C++ applications, resulting in a significant performance boost. This article evaluated the performance difference between Java applications using JNI with the NDK and native C/C++ applications, focusing on algorithms widely used in various areas such as automation, networking, telecom, cybersecurity, etc. We conducted sequence of executions initiated either through a graphical interface or via the Android Debug Bridge (ADB) command line, with timing performed by external hardware with its own firmware for this evaluation. Based on the results, we observed that in all test cases, the native application performs faster, except when there are variations related to process scheduling, which may rarely lead to a reversal of this pattern.