From af564002651853feb41faa24efd29982e71d6dbf Mon Sep 17 00:00:00 2001 From: avesta Date: Mon, 12 Jan 2026 13:21:50 -0800 Subject: [PATCH 1/2] build: prevent TFLite model compression in release builds Ensure .tflite files are stored raw to allow memory mapping by the interpreter. --- app/build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ddf534f721..edfbd9671a 100755 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -133,6 +133,7 @@ android { } androidResources { + noCompress.add("tflite") generateLocaleConfig = true } @@ -699,7 +700,7 @@ tasks.register("recompressApk") { val isCiCd = System.getenv("GITHUB_ACTIONS") == "true" -val noCompress = setOf("so", "ogg", "mp3", "mp4", "zip", "jar", "ttf", "otf", "br") +val noCompress = setOf("so", "ogg", "mp3", "mp4", "zip", "jar", "ttf", "otf", "br", "tflite") afterEvaluate { tasks.matching { it.name.contains("V8") && it.name.lowercase().contains("lint") }.configureEach { From 903b166f1b040b4d6c9f8e14ff724ae7ff607d6d Mon Sep 17 00:00:00 2001 From: avesta Date: Mon, 12 Jan 2026 19:18:47 -0800 Subject: [PATCH 2/2] Addressed an issue where MLKit and TFLite model files were either missing from the release APK or failing to initialize due to compression. --- app/build.gradle.kts | 4 +++- app/v8/debug/output-metadata.json | 21 +++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 app/v8/debug/output-metadata.json diff --git a/app/build.gradle.kts b/app/build.gradle.kts index edfbd9671a..19cd6e694b 100755 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -700,7 +700,7 @@ tasks.register("recompressApk") { val isCiCd = System.getenv("GITHUB_ACTIONS") == "true" -val noCompress = setOf("so", "ogg", "mp3", "mp4", "zip", "jar", "ttf", "otf", "br", "tflite") +val noCompress = setOf("so", "ogg", "mp3", "mp4", "zip", "jar", "ttf", "otf", "br", "tflite", "binarypb", "bincfg", "conv_model", "lstm_model") afterEvaluate { tasks.matching { it.name.contains("V8") && it.name.lowercase().contains("lint") }.configureEach { @@ -712,6 +712,8 @@ afterEvaluate { tasks.named("assembleV8Release").configure { finalizedBy("recompressApk") + // Force the CV module assets to merge before this task runs + dependsOn(":cv-image-to-xml:mergeReleaseAssets") doLast { tasks.named("recompressApk").configure { diff --git a/app/v8/debug/output-metadata.json b/app/v8/debug/output-metadata.json new file mode 100644 index 0000000000..107851d3cf --- /dev/null +++ b/app/v8/debug/output-metadata.json @@ -0,0 +1,21 @@ +{ + "version": 3, + "artifactType": { + "type": "APK", + "kind": "Directory" + }, + "applicationId": "com.itsaky.androidide", + "variantName": "v8Debug", + "elements": [ + { + "type": "SINGLE", + "filters": [], + "attributes": [], + "versionCode": 260112232, + "versionName": "CodeOnTheGo-debug-0112-2356", + "outputFile": "CodeOnTheGo-v8-debug-0112-2356.apk" + } + ], + "elementType": "File", + "minSdkVersionForDexing": 28 +} \ No newline at end of file