summaryrefslogtreecommitdiff
path: root/library/src/main/cpp/akono-jni.c
diff options
context:
space:
mode:
Diffstat (limited to 'library/src/main/cpp/akono-jni.c')
-rw-r--r--library/src/main/cpp/akono-jni.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/library/src/main/cpp/akono-jni.c b/library/src/main/cpp/akono-jni.c
new file mode 100644
index 00000000..49777431
--- /dev/null
+++ b/library/src/main/cpp/akono-jni.c
@@ -0,0 +1,47 @@
+#include <string.h>
+#include <jni.h>
+
+/* This is a trivial JNI example where we use a native method
+ * to return a new VM String. See the corresponding Java source
+ * file located at:
+ *
+ * hello-jni/app/src/main/java/com/example/hellojni/HelloJni.java
+ */
+JNIEXPORT jstring JNICALL
+Java_akono_AkonoJni_stringFromJNI( JNIEnv* env,
+ jobject thiz )
+{
+#if defined(__arm__)
+ #if defined(__ARM_ARCH_7A__)
+ #if defined(__ARM_NEON__)
+ #if defined(__ARM_PCS_VFP)
+ #define ABI "armeabi-v7a/NEON (hard-float)"
+ #else
+ #define ABI "armeabi-v7a/NEON"
+ #endif
+ #else
+ #if defined(__ARM_PCS_VFP)
+ #define ABI "armeabi-v7a (hard-float)"
+ #else
+ #define ABI "armeabi-v7a"
+ #endif
+ #endif
+ #else
+ #define ABI "armeabi"
+ #endif
+#elif defined(__i386__)
+#define ABI "x86"
+#elif defined(__x86_64__)
+#define ABI "x86_64"
+#elif defined(__mips64) /* mips64el-* toolchain defines __mips__ too */
+#define ABI "mips64"
+#elif defined(__mips__)
+#define ABI "mips"
+#elif defined(__aarch64__)
+#define ABI "arm64-v8a"
+#else
+#define ABI "unknown"
+#endif
+
+ return (*env)->NewStringUTF(env, "Hello from JNI ! Compiled with ABI " ABI ".");
+}