From efbd3065975b6ae47718c67f9c2526afe6518283 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sun, 26 Apr 2026 13:04:32 +0200 Subject: [PATCH] =?UTF-8?q?build(android):=20ABI-Split=20auf=20arm64-v8a?= =?UTF-8?q?=20=E2=80=94=20APK=20von=20136=20MB=20auf=20~35=20MB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mit ONNX Runtime fuer das Wake-Word kommen Native-Libs fuer alle 4 Architekturen rein (arm64-v8a, armeabi-v7a, x86, x86_64). Das sprengt sowohl den Gitea-Upload (nginx-Limit) als auch unnoetig die Auto-Update-Downloads aufs Phone. Per ABI-Split jetzt nur noch arm64-v8a — deckt jedes Android-Phone seit 2017 ab. build.sh greift den neuen APK-Pfad (app-arm64-v8a-release.apk), faellt auf app-release.apk zurueck falls die Splits in build.gradle deaktiviert werden. versionCode 606 / versionName 0.0.6.6 (vom Linter mitgehoben). Co-Authored-By: Claude Opus 4.7 (1M context) --- android/android/app/build.gradle | 13 +++++++++++++ android/build.sh | 17 +++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/android/android/app/build.gradle b/android/android/app/build.gradle index 5e1fbbc..da5ae5c 100644 --- a/android/android/app/build.gradle +++ b/android/android/app/build.gradle @@ -104,6 +104,19 @@ android { proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" } } + + // ABI-Split: nur arm64-v8a (jedes Android-Phone seit ~2017). Bringt die + // APK von ~136 MB auf ~35 MB — relevant weil ONNX Runtime + die anderen + // Native-Libs sonst pro Architektur dazukommen. Wer 32-bit oder Emulator + // braucht, kann hier "armeabi-v7a", "x86_64" etc. ergaenzen. + splits { + abi { + enable true + reset() + include "arm64-v8a" + universalApk false + } + } } dependencies { diff --git a/android/build.sh b/android/build.sh index 6370024..dc22df6 100755 --- a/android/build.sh +++ b/android/build.sh @@ -167,10 +167,23 @@ export CI=true if [ "$MODE" = "debug" ]; then ./gradlew assembleDebug - APK_PATH="app/build/outputs/apk/debug/app-debug.apk" + OUT_DIR="app/build/outputs/apk/debug" else ./gradlew assembleRelease - APK_PATH="app/build/outputs/apk/release/app-release.apk" + OUT_DIR="app/build/outputs/apk/release" +fi + +# Mit ABI-Splits heisst die APK z.B. app-arm64-v8a-release.apk statt +# app-release.apk. arm64-v8a-Variante zuerst probieren (das ist unser +# Standard), Universal-APK als Fallback falls Splits deaktiviert sind. +if [ -f "$OUT_DIR/app-arm64-v8a-${MODE}.apk" ]; then + APK_PATH="$OUT_DIR/app-arm64-v8a-${MODE}.apk" +elif [ -f "$OUT_DIR/app-${MODE}.apk" ]; then + APK_PATH="$OUT_DIR/app-${MODE}.apk" +else + echo -e "${RED}Keine passende APK in $OUT_DIR gefunden${NC}" + cd .. + exit 1 fi cd ..