diff --git a/.gitmodules b/.gitmodules index 05a8cc264..5a24ee672 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,9 @@ -[submodule "native/src/main/jni/libarchive"] - path = native/src/main/jni/libarchive +[submodule "app/src/main/cpp/libarchive"] + path = app/src/main/cpp/libarchive url = https://github.com/Ehviewer-Overhauled/libarchive -[submodule "native/src/main/jni/liblzma"] - path = native/src/main/jni/liblzma +[submodule "app/src/main/cpp/liblzma"] + path = app/src/main/cpp/liblzma url = https://github.com/Ehviewer-Overhauled/xz -[submodule "native/src/main/jni/nettle/nettle"] - path = native/src/main/jni/nettle/nettle +[submodule "app/src/main/cpp/nettle/nettle"] + path = app/src/main/cpp/nettle/nettle url = https://github.com/Ehviewer-Overhauled/nettle diff --git a/app/.gitignore b/app/.gitignore index 495de1072..9f3b1a4f4 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -4,4 +4,5 @@ manifest-merger-release-report.txt /src/main/libs /src/main/obj # Intellij -*.iml \ No newline at end of file +*.iml +/.cxx diff --git a/app/build.gradle b/app/build.gradle index 6ab81c172..f2919e7ec 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -7,6 +7,7 @@ plugins { android { compileSdkVersion 33 buildToolsVersion "33.0.0" + ndkVersion "25.0.8775105" Properties localProperties = new Properties() if (project.rootProject.file('local.properties').exists()) { @@ -37,6 +38,22 @@ android { versionCode 180004 versionName "1.8.0.4" resConfigs 'zh', 'zh-rCN', 'zh-rHK', 'zh-rTW', 'es', 'ja', 'ko', 'fr', 'de', 'th' + + externalNativeBuild { + cmake { + arguments '-DANDROID_STL=none' + } + } + + ndk { + abiFilters 'arm64-v8a', 'x86_64', 'armeabi-v7a', 'x86' + } + } + + externalNativeBuild { + cmake { + path 'src/main/cpp/CMakeLists.txt' + } } compileOptions { @@ -164,7 +181,6 @@ dependencies { implementation 'dev.rikka.rikkax.material:material-preference:2.0.0' implementation 'org.greenrobot:greendao:3.3.0' implementation 'org.jsoup:jsoup:1.15.2' - implementation projects.native } configurations.all { diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 6d5715269..7c19ecae2 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -32,3 +32,6 @@ -dontwarn org.conscrypt.Conscrypt -dontwarn org.openjsse.javax.net.ssl.SSLSocket -dontwarn org.openjsse.net.ssl.OpenJSSE + +-keepclasseswithmembernames class * { native ;} +-keepclassmembers class com.hippo.image.Image {private (long, int, int, int);} diff --git a/native/src/main/jni/CMakeLists.txt b/app/src/main/cpp/CMakeLists.txt similarity index 100% rename from native/src/main/jni/CMakeLists.txt rename to app/src/main/cpp/CMakeLists.txt diff --git a/native/src/main/jni/archive.c b/app/src/main/cpp/archive.c similarity index 100% rename from native/src/main/jni/archive.c rename to app/src/main/cpp/archive.c diff --git a/native/src/main/jni/image/CMakeLists.txt b/app/src/main/cpp/image/CMakeLists.txt similarity index 100% rename from native/src/main/jni/image/CMakeLists.txt rename to app/src/main/cpp/image/CMakeLists.txt diff --git a/native/src/main/jni/image/image.c b/app/src/main/cpp/image/image.c similarity index 100% rename from native/src/main/jni/image/image.c rename to app/src/main/cpp/image/image.c diff --git a/native/src/main/jni/image/image.h b/app/src/main/cpp/image/image.h similarity index 100% rename from native/src/main/jni/image/image.h rename to app/src/main/cpp/image/image.h diff --git a/native/src/main/jni/image/image_utils.c b/app/src/main/cpp/image/image_utils.c similarity index 100% rename from native/src/main/jni/image/image_utils.c rename to app/src/main/cpp/image/image_utils.c diff --git a/native/src/main/jni/image/image_utils.h b/app/src/main/cpp/image/image_utils.h similarity index 100% rename from native/src/main/jni/image/image_utils.h rename to app/src/main/cpp/image/image_utils.h diff --git a/native/src/main/jni/image/java_wrapper.c b/app/src/main/cpp/image/java_wrapper.c similarity index 100% rename from native/src/main/jni/image/java_wrapper.c rename to app/src/main/cpp/image/java_wrapper.c diff --git a/native/src/main/jni/image/java_wrapper.h b/app/src/main/cpp/image/java_wrapper.h similarity index 100% rename from native/src/main/jni/image/java_wrapper.h rename to app/src/main/cpp/image/java_wrapper.h diff --git a/native/src/main/jni/image/log.h b/app/src/main/cpp/image/log.h similarity index 100% rename from native/src/main/jni/image/log.h rename to app/src/main/cpp/image/log.h diff --git a/native/src/main/jni/main.c b/app/src/main/cpp/main.c similarity index 100% rename from native/src/main/jni/main.c rename to app/src/main/cpp/main.c diff --git a/native/src/main/jni/nettle/CMakeLists.txt b/app/src/main/cpp/nettle/CMakeLists.txt similarity index 100% rename from native/src/main/jni/nettle/CMakeLists.txt rename to app/src/main/cpp/nettle/CMakeLists.txt diff --git a/native/src/main/jni/nettle/config.h b/app/src/main/cpp/nettle/config.h similarity index 100% rename from native/src/main/jni/nettle/config.h rename to app/src/main/cpp/nettle/config.h diff --git a/native/src/main/jni/nettle/keymap.h b/app/src/main/cpp/nettle/keymap.h similarity index 100% rename from native/src/main/jni/nettle/keymap.h rename to app/src/main/cpp/nettle/keymap.h diff --git a/native/src/main/jni/nettle/rotors.h b/app/src/main/cpp/nettle/rotors.h similarity index 100% rename from native/src/main/jni/nettle/rotors.h rename to app/src/main/cpp/nettle/rotors.h diff --git a/native/src/main/jni/nettle/version.h b/app/src/main/cpp/nettle/version.h similarity index 100% rename from native/src/main/jni/nettle/version.h rename to app/src/main/cpp/nettle/version.h diff --git a/native/src/main/java/com/hippo/Native.java b/app/src/main/java/com/hippo/Native.java similarity index 100% rename from native/src/main/java/com/hippo/Native.java rename to app/src/main/java/com/hippo/Native.java diff --git a/native/src/main/java/com/hippo/UriArchiveAccessor.java b/app/src/main/java/com/hippo/UriArchiveAccessor.java similarity index 100% rename from native/src/main/java/com/hippo/UriArchiveAccessor.java rename to app/src/main/java/com/hippo/UriArchiveAccessor.java diff --git a/native/src/main/java/com/hippo/image/Image.java b/app/src/main/java/com/hippo/image/Image.java similarity index 100% rename from native/src/main/java/com/hippo/image/Image.java rename to app/src/main/java/com/hippo/image/Image.java diff --git a/native/src/main/java/com/hippo/image/ImageBitmap.java b/app/src/main/java/com/hippo/image/ImageBitmap.java similarity index 100% rename from native/src/main/java/com/hippo/image/ImageBitmap.java rename to app/src/main/java/com/hippo/image/ImageBitmap.java diff --git a/native/src/main/java/com/hippo/image/ImageDrawable.java b/app/src/main/java/com/hippo/image/ImageDrawable.java similarity index 100% rename from native/src/main/java/com/hippo/image/ImageDrawable.java rename to app/src/main/java/com/hippo/image/ImageDrawable.java diff --git a/native/.gitignore b/native/.gitignore deleted file mode 100644 index 9f3b1a4f4..000000000 --- a/native/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -/build -/src/main/java-gen -manifest-merger-release-report.txt -/src/main/libs -/src/main/obj -# Intellij -*.iml -/.cxx diff --git a/native/build.gradle b/native/build.gradle deleted file mode 100644 index 15b23e301..000000000 --- a/native/build.gradle +++ /dev/null @@ -1,41 +0,0 @@ -plugins { - id 'com.android.library' - id 'org.jetbrains.kotlin.android' -} - -android { - compileSdkVersion 33 - buildToolsVersion "33.0.0" - ndkVersion "25.0.8775105" - - defaultConfig { - minSdkVersion 31 - targetSdkVersion 33 - consumerProguardFiles 'proguard-rules.pro' - - externalNativeBuild { - cmake { - arguments '-DANDROID_STL=none' - } - } - - ndk { - abiFilters 'arm64-v8a', 'x86_64', 'armeabi-v7a', 'x86' - } - } - - externalNativeBuild { - cmake { - path 'src/main/jni/CMakeLists.txt' - } - } - - buildFeatures { - buildConfig false - } - namespace 'com.hippo' -} - -dependencies { - compileOnly 'androidx.annotation:annotation:1.4.0' -} diff --git a/native/proguard-rules.pro b/native/proguard-rules.pro deleted file mode 100644 index 827e268b4..000000000 --- a/native/proguard-rules.pro +++ /dev/null @@ -1,2 +0,0 @@ --keepclasseswithmembernames class * { native ;} --keepclassmembers class com.hippo.image.Image {private (long, int, int, int);} diff --git a/native/src/main/jni/libarchive b/native/src/main/jni/libarchive deleted file mode 160000 index 37d2cf606..000000000 --- a/native/src/main/jni/libarchive +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 37d2cf6063f652fbe0fe9479f4951b77e8553691 diff --git a/native/src/main/jni/liblzma b/native/src/main/jni/liblzma deleted file mode 160000 index 2327a461e..000000000 --- a/native/src/main/jni/liblzma +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2327a461e1afce862c22269b80d3517801103c1b diff --git a/native/src/main/jni/nettle/nettle b/native/src/main/jni/nettle/nettle deleted file mode 160000 index ea4ea5e69..000000000 --- a/native/src/main/jni/nettle/nettle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ea4ea5e6904124b297ade0d1b182c5e530909765