summaryrefslogtreecommitdiffhomepage
path: root/android
diff options
context:
space:
mode:
authorJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-20 19:29:38 +0000
committerJanito Vaqueiro Ferreira Filho <janito@mullvad.net>2019-05-22 12:28:25 +0000
commitd2699931a9d1b10d830968a1c9862bd0769666da (patch)
tree4ae4792d3d7d11c2fc308fdd12fdcf9d6d9e44a3 /android
parent4625ca12f83eb32d198c5a7ac691c0039889fe51 (diff)
downloadmullvadvpn-d2699931a9d1b10d830968a1c9862bd0769666da.tar.xz
mullvadvpn-d2699931a9d1b10d830968a1c9862bd0769666da.zip
Create JNI interface for Android app
Diffstat (limited to 'android')
-rw-r--r--android/build.gradle23
-rw-r--r--android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt10
2 files changed, 33 insertions, 0 deletions
diff --git a/android/build.gradle b/android/build.gradle
index 5be82b79d7..8daad909e0 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -4,6 +4,9 @@ import org.jmailen.gradle.kotlinter.tasks.LintTask
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
+def repoRootPath = projectDir.absoluteFile.parentFile.absolutePath
+def extraJniDirectory = "$project.buildDir/extraJni"
+
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
@@ -22,6 +25,20 @@ android {
proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
}
}
+
+ sourceSets {
+ main {
+ jniLibs {
+ srcDirs = files(extraJniDirectory)
+ }
+ }
+ }
+
+ applicationVariants.all { variant ->
+ variant.ndkCompileProvider.configure {
+ dependsOn copyMullvadJni
+ }
+ }
}
repositories {
@@ -65,3 +82,9 @@ task format(type: FormatTask, group: 'formatting') {
}
lint.dependsOn lintKotlin
+
+task copyMullvadJni(type: Copy) {
+ from "$repoRootPath/target/aarch64-linux-android/debug"
+ include 'libmullvad_jni.so'
+ into "$extraJniDirectory/arm64-v8a"
+}
diff --git a/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
new file mode 100644
index 0000000000..d5ab845f89
--- /dev/null
+++ b/android/src/main/kotlin/net/mullvad/mullvadvpn/MullvadDaemon.kt
@@ -0,0 +1,10 @@
+package net.mullvad.mullvadvpn
+
+class MullvadDaemon {
+ init {
+ System.loadLibrary("mullvad_jni")
+ initialize()
+ }
+
+ private external fun initialize()
+}