From 2c9fc2c1a197b84ba9ef3dc4e586a77a18c3dcc5 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Tue, 2 Apr 2019 14:00:37 +0300 Subject: Say hello to Qt Android Sensors based on NDK API Until Qt 5.9, we had to use JNI way because the NDK sensors API was introduced in API-16. Starting with Qt 5.9 we can safely use the NDK API as API_16 is the minimum API supported by Qt. Using the NDK API instead of JNI boost the performance a lot! The CPU usage dropped 2 to 4 times, from over 60% using the JNI to less than 20%. [ChangeLog][Android] Rewrite Qt Android Sensors using NDK API. Change-Id: If3e3f1e56973e2a189662912b2a6ebfbd71dee14 Reviewed-by: Lorn Potter --- src/plugins/sensors/android/android.pro | 43 +++++++++++++++++++++++++++++++-- 1 file changed, 41 insertions(+), 2 deletions(-) (limited to 'src/plugins/sensors/android/android.pro') diff --git a/src/plugins/sensors/android/android.pro b/src/plugins/sensors/android/android.pro index 0dc6a3fc..15e26ee9 100644 --- a/src/plugins/sensors/android/android.pro +++ b/src/plugins/sensors/android/android.pro @@ -1,2 +1,41 @@ -TEMPLATE = subdirs -SUBDIRS += jar src +TARGET = qtsensors_android + +QT = sensors core-private + +# STATICPLUGIN needed because there's a Q_IMPORT_PLUGIN in main.cpp +# Yes, the plugin imports itself statically +DEFINES += QT_STATICPLUGIN + +HEADERS = \ + androidaccelerometer.h \ + androidcompass.h \ + androidgyroscope.h \ + androidmagnetometer.h \ + androidpressure.h \ + androidproximity.h \ + androidrotation.h \ + androidtemperature.h \ + androidlight.h \ + sensoreventqueue.h \ + sensormanager.h + +SOURCES = \ + main.cpp \ + androidaccelerometer.cpp \ + androidcompass.cpp \ + androidgyroscope.cpp \ + androidmagnetometer.cpp \ + androidpressure.cpp \ + androidproximity.cpp \ + androidrotation.cpp \ + androidtemperature.cpp \ + androidlight.cpp \ + sensormanager.cpp + +OTHER_FILES = plugin.json + +LIBS += -landroid + +PLUGIN_TYPE = sensors +PLUGIN_CLASS_NAME = QCounterGesturePlugin +load(qt_plugin) -- cgit v1.2.3