diff --git a/.changelog/lang_zh-Hans.json b/.changelog/lang_zh-Hans.json index 1a5eda9f..e848dc7c 100644 --- a/.changelog/lang_zh-Hans.json +++ b/.changelog/lang_zh-Hans.json @@ -1,5 +1,11 @@ { "$data": { + "v6.6.2": { + "released_date": "2025/01/02", + "improvement": [ + "精简打包应用模板 APK 文件大小" + ] + }, "v6.6.1": { "released_date": "2025/01/01", "feature": [ diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4b5a3ea1..f109d197 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -433,8 +433,10 @@ android { compileSdk = versions.sdkVersionCompile versionCode = versions.appVersionCode versionName = versions.appVersionName + buildConfigField("String", "CHANNEL", "\"$flavorNameInrt\"") buildConfigField("boolean", "is${flavorNameInrt.uppercaseFirstChar()}", "true") + manifestPlaceholders.putAll( mapOf( "CHANNEL" to flavorNameInrt, @@ -445,20 +447,7 @@ android { "icon" to "@mipmap/ic_launcher", ) ) - packagingOptions.apply { - // @Reference to kkevsekk1/AutoX (https://github.com/kkevsekk1/AutoX) by SuperMonster003 on Nov 16, 2023. - // ! https://github.com/kkevsekk1/AutoX/blob/a6d482189291b460c3be60970b74c5321d26e457/inrt/build.gradle.kts#L91 - jniLibs.excludes += "*" - resources.excludes.addAll( - listOf( - "com/**/*", - "frameworks/**/*", - "junit/**/*", - "LICENSE-junit.txt", - "spec.txt", - ) - ) - } + // @Reference to kkevsekk1/AutoX (https://github.com/kkevsekk1/AutoX) by SuperMonster003 on Nov 16, 2023. // ! https://github.com/kkevsekk1/AutoX/blob/a6d482189291b460c3be60970b74c5321d26e457/inrt/build.gradle.kts#L93 // noinspection ChromeOsAbiSupport @@ -566,7 +555,7 @@ android { // # packaging { ... } @Suppress("DEPRECATION") packagingOptions { - arrayOf( + listOf( "META-INF/DEPENDENCIES", "META-INF/LICENSE", "META-INF/LICENSE.*", @@ -584,7 +573,25 @@ android { "lib/armeabi/libc++_shared.so", ).let { resources.pickFirsts.addAll(it) } + listOf( + "com/**/*", + "frameworks/**/*", + "junit/**/*", + "LICENSE-junit.txt", + "spec.txt", + ).let { resources.excludes.addAll(it) } + + if (gradle.startParameter.taskNames.any { it.contains(flavorNameInrt, true) }) { + listOf( + "**/prob_emit.txt", // Jieba Analysis (zh-CN: 结巴分词) + "**/dict-chinese-*.db.gzip", // Jieba Analysis (zh-CN: 结巴分词) + ).let { resources.excludes.addAll(it) } + } + jniLibs { + // @Reference to kkevsekk1/AutoX (https://github.com/kkevsekk1/AutoX) by SuperMonster003 on Nov 16, 2023. + // ! https://github.com/kkevsekk1/AutoX/blob/a6d482189291b460c3be60970b74c5321d26e457/inrt/build.gradle.kts#L91 + excludes += "*" useLegacyPackaging = true } } @@ -661,32 +668,36 @@ android { } applicationVariants.all { - mergeAssetsProvider - .configure { - doLast { - mapOf( - "dir" to outputDir, - "includes" to when (variantName.startsWith(flavorNameInrt)) { - true -> listOf( - "mlkit-google-ocr-models/**/*", - "mlkit_barcode_models/**/*", - "models/**/*", - "openccdata/**/*", - "project/**/*", - "android-devices.db", - "autojs.keystore", - ) - else -> listOf( - "declarations/**/*", - "sample/declarations/**/*", - ) - }, - ).let { delete(fileTree(it)) } - } + mergeAssetsProvider.configure { + doLast { + mapOf( + "dir" to outputDir, + "includes" to when (variantName.startsWith(flavorNameInrt)) { + true -> listOf( + "mlkit-google-ocr-models/**/*", + "mlkit_barcode_models/**/*", + "models/**/*", + "modules/obsolete/**/*", + "openccdata/**/*", + "project/**/*", + "android-devices.db", + "autojs.keystore", + "**/prob_emit.txt", // Jieba Analysis (zh-CN: 结巴分词) + "**/dict-chinese-*.db.gzip", // Jieba Analysis (zh-CN: 结巴分词) + ) + else -> listOf( + "declarations/**/*", + "sample/declarations/**/*", + "modules/obsolete/**/*", + ) + }, + ).let { delete(fileTree(it)) } } - outputs - .map { it as BaseVariantOutputImpl } - .forEach { it.outputFileName = Utils.getOutputFileName(this@all as ApplicationVariantImpl, it) } + } + + outputs.map { it as BaseVariantOutputImpl }.forEach { + it.outputFileName = Utils.getOutputFileName(this@all as ApplicationVariantImpl, it) + } } splits { diff --git a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt index a6455631..a971b51c 100644 --- a/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt +++ b/app/src/main/java/org/autojs/autojs/apkbuilder/ApkBuilder.kt @@ -13,6 +13,7 @@ import com.reandroid.arsc.chunk.TableBlock import org.apache.commons.io.FileUtils.copyFile import org.apache.commons.io.FileUtils.copyInputStreamToFile import org.autojs.autojs.apkbuilder.keystore.AESUtils +import org.autojs.autojs.apkbuilder.keystore.KeyStore import org.autojs.autojs.app.GlobalAppContext import org.autojs.autojs.engine.encryption.AdvancedEncryptionStandard import org.autojs.autojs.pio.PFiles @@ -20,7 +21,6 @@ import org.autojs.autojs.project.BuildInfo import org.autojs.autojs.project.ProjectConfig import org.autojs.autojs.script.EncryptedScriptFileHeader.writeHeader import org.autojs.autojs.script.JavaScriptFileSource -import org.autojs.autojs.apkbuilder.keystore.KeyStore import org.autojs.autojs.util.FileUtils.TYPE.JAVASCRIPT import org.autojs.autojs.util.MD5Utils import org.autojs.autojs6.BuildConfig @@ -482,48 +482,48 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File object Libs { private val BASIC = listOf( - "libjackpal-androidterm5.so", /* Terminal Emulator. */ - "libjackpal-termexec2.so", /* Terminal Emulator. */ - ) + "libjackpal-androidterm5.so", /* Terminal Emulator. */ + "libjackpal-termexec2.so", /* Terminal Emulator. */ + ) private val MISCELLANEOUS = emptyList() - @JvmField - val OPENCV = listOf( - "libc++_shared.so", - "libopencv_java4.so", - ) + @JvmField + val OPENCV = listOf( + "libc++_shared.so", + "libopencv_java4.so", + ) - @JvmField - val MLKIT_GOOGLE_OCR = listOf( - "libmlkit_google_ocr_pipeline.so", - ) + @JvmField + val MLKIT_GOOGLE_OCR = listOf( + "libmlkit_google_ocr_pipeline.so", + ) - @JvmField - val PADDLE_LITE = listOf( - "libc++_shared.so", - "libpaddle_light_api_shared.so", - "libNative.so", - ) + @JvmField + val PADDLE_LITE = listOf( + "libc++_shared.so", + "libpaddle_light_api_shared.so", + "libNative.so", + ) - val PADDLE_LITE_EXT = listOf( - "libhiai.so", - "libhiai_ir.so", - "libhiai_ir_build.so", - ) + val PADDLE_LITE_EXT = listOf( + "libhiai.so", + "libhiai_ir.so", + "libhiai_ir_build.so", + ) - @JvmField - val MLKIT_BARCODE = emptyList() + @JvmField + val MLKIT_BARCODE = emptyList() - @JvmField - val RAPID_OCR = listOf( - "libRapidOcr.so", - ) + @JvmField + val RAPID_OCR = listOf( + "libRapidOcr.so", + ) - @JvmField - val OPENCC = listOf( - "libChineseConverter.so", - ) + @JvmField + val OPENCC = listOf( + "libChineseConverter.so", + ) val DEFALUT_INCLUDES: List = (BASIC + MISCELLANEOUS).distinct() @@ -560,23 +560,23 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File private val MISCELLANEOUS = listOf("stored-locales") - @JvmField - val OPENCV = emptyList() + @JvmField + val OPENCV = emptyList() - @JvmField - val MLKIT_GOOGLE_OCR = listOf("mlkit-google-ocr-models") + @JvmField + val MLKIT_GOOGLE_OCR = listOf("mlkit-google-ocr-models") - @JvmField - val MLKIT_BARCODE = listOf("mlkit_barcode_models") + @JvmField + val MLKIT_BARCODE = listOf("mlkit_barcode_models") - @JvmField - val PADDLE_LITE = listOf("models") + @JvmField + val PADDLE_LITE = listOf("models") - @JvmField - val RAPID_OCR = listOf("labels") + @JvmField + val RAPID_OCR = listOf("labels") - @JvmField - val OPENCC = listOf("openccdata") + @JvmField + val OPENCC = listOf("openccdata") val DEFAULT_EXCLUDES = (BASIC + MLKIT_GOOGLE_OCR + MLKIT_BARCODE + PADDLE_LITE + RAPID_OCR + OPENCC + MISCELLANEOUS).distinct() diff --git a/app/src/main/java/org/autojs/autojs/runtime/api/augment/util/VersionCodesList.kt b/app/src/main/java/org/autojs/autojs/runtime/api/augment/util/VersionCodesList.kt index 559c1cb8..9f4661f8 100644 --- a/app/src/main/java/org/autojs/autojs/runtime/api/augment/util/VersionCodesList.kt +++ b/app/src/main/java/org/autojs/autojs/runtime/api/augment/util/VersionCodesList.kt @@ -1,13 +1,13 @@ package org.autojs.autojs.runtime.api.augment.util import org.autojs.autojs.util.RhinoUtils.newNativeObject -import org.mozilla.javascript.NativeObject object VersionCodesInfo { - // @UpTo Jun 3, 2024. + // @UpTo Jan 2, 2025. private val raw = mutableMapOf( - "VANILLA_ICE_CREAM" to listOf("Android 15", "Vanilla Ice Cream", "15", "35", "Q4, 2024"), + "BAKLAVA" to listOf("Android 16", "Baklava", "16", "36", "Q2, 2025"), + "VANILLA_ICE_CREAM" to listOf("Android 15", "Vanilla Ice Cream", "15", "35", "September 3, 2024"), "UPSIDE_DOWN_CAKE" to listOf("Android 14", "Upside Down Cake", "14", "34", "October 4, 2023"), "TIRAMISU" to listOf("Android 13", "Tiramisu", "13", "33", "August 15, 2022"), "S_V2" to listOf("Android 12L", "Snow Cone v2", "12.1", "32", "March 7, 2022"), diff --git a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java index e31466f2..e02a43ca 100644 --- a/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java +++ b/app/src/main/java/org/autojs/autojs/ui/project/BuildActivity.java @@ -108,6 +108,7 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa add(ApkBuilder.Constants.PADDLE_OCR); add(ApkBuilder.Constants.RAPID_OCR); add(ApkBuilder.Constants.OPENCC); + // add(ApkBuilder.Constants.PINYIN); add(ApkBuilder.Constants.MLKIT_BARCODE); }}; @@ -117,6 +118,7 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa put(ApkBuilder.Constants.PADDLE_OCR, List.of("paddle", "paddleocr", "paddle-ocr", "paddle_ocr")); put(ApkBuilder.Constants.RAPID_OCR, List.of("rapid", "rapidocr", "rapid-ocr", "rapid_ocr")); put(ApkBuilder.Constants.OPENCC, List.of("cc")); + // put(ApkBuilder.Constants.PINYIN, List.of("pin")); put(ApkBuilder.Constants.MLKIT_BARCODE, List.of("barcode", "mlkit-barcode", "mlkit_barcode")); }}; diff --git a/jieba-analysis/src/main/java/com/huaban/analysis/jieba/JiebaSegmenter.kt b/jieba-analysis/src/main/java/com/huaban/analysis/jieba/JiebaSegmenter.kt index 7407d2d9..f2001b4d 100644 --- a/jieba-analysis/src/main/java/com/huaban/analysis/jieba/JiebaSegmenter.kt +++ b/jieba-analysis/src/main/java/com/huaban/analysis/jieba/JiebaSegmenter.kt @@ -9,7 +9,7 @@ class JiebaSegmenter(context: Context) { val dictionary by lazy { WordDictionary.getInstance(context) } - private val finalSeg = FinalSeg.instance + private val finalSeg by lazy { FinalSeg.instance } enum class SegMode { INDEX, SEARCH } diff --git a/jieba-analysis/src/main/java/com/huaban/analysis/jieba/WordDictionaryDatabase.kt b/jieba-analysis/src/main/java/com/huaban/analysis/jieba/WordDictionaryDatabase.kt index 76426496..78a0d456 100644 --- a/jieba-analysis/src/main/java/com/huaban/analysis/jieba/WordDictionaryDatabase.kt +++ b/jieba-analysis/src/main/java/com/huaban/analysis/jieba/WordDictionaryDatabase.kt @@ -4,7 +4,7 @@ import android.content.Context open class WordDictionaryDatabase private constructor(context: Context): DictionaryDatabase(context) { - override val databaseName = "dict.db" + override val databaseName = "dict-chinese-words.db" companion object { diff --git a/jieba-analysis/src/main/resources/dict.db.gzip b/jieba-analysis/src/main/resources/dict-chinese-words.db.gzip similarity index 99% rename from jieba-analysis/src/main/resources/dict.db.gzip rename to jieba-analysis/src/main/resources/dict-chinese-words.db.gzip index dee0be45..e7cf9080 100644 Binary files a/jieba-analysis/src/main/resources/dict.db.gzip and b/jieba-analysis/src/main/resources/dict-chinese-words.db.gzip differ diff --git a/version.properties b/version.properties index 23735b88..67b79127 100644 --- a/version.properties +++ b/version.properties @@ -1,5 +1,5 @@ -#Wed Jan 01 17:14:34 CST 2025 -BUILD_TIME=1735722874442 +#Thu Jan 02 18:05:40 CST 2025 +BUILD_TIME=1735812340458 COMPILE_SDK_VERSION=34 JAVA_VERSION=23 JAVA_VERSION_MIN_RADICAL=0 @@ -17,6 +17,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13 RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3 TARGET_SDK_VERSION=34 TARGET_SDK_VERSION_INRT=29 -VERSION_BUILD=2940 -VERSION_NAME=6.6.1 +VERSION_BUILD=2944 +VERSION_NAME=6.6.2 Alpha VSCODE_EXT_REQUIRED_VERSION=1.0.8