6.6.2 - Alpha - 精简打包应用模板 APK 文件大小

This commit is contained in:
SuperMonster003
2025-01-02 18:09:17 +08:00
parent effd48ed5c
commit 3a3e01264a
9 changed files with 114 additions and 95 deletions

View File

@@ -1,5 +1,11 @@
{ {
"$data": { "$data": {
"v6.6.2": {
"released_date": "2025/01/02",
"improvement": [
"精简打包应用模板 APK 文件大小"
]
},
"v6.6.1": { "v6.6.1": {
"released_date": "2025/01/01", "released_date": "2025/01/01",
"feature": [ "feature": [

View File

@@ -433,8 +433,10 @@ android {
compileSdk = versions.sdkVersionCompile compileSdk = versions.sdkVersionCompile
versionCode = versions.appVersionCode versionCode = versions.appVersionCode
versionName = versions.appVersionName versionName = versions.appVersionName
buildConfigField("String", "CHANNEL", "\"$flavorNameInrt\"") buildConfigField("String", "CHANNEL", "\"$flavorNameInrt\"")
buildConfigField("boolean", "is${flavorNameInrt.uppercaseFirstChar()}", "true") buildConfigField("boolean", "is${flavorNameInrt.uppercaseFirstChar()}", "true")
manifestPlaceholders.putAll( manifestPlaceholders.putAll(
mapOf( mapOf(
"CHANNEL" to flavorNameInrt, "CHANNEL" to flavorNameInrt,
@@ -445,20 +447,7 @@ android {
"icon" to "@mipmap/ic_launcher", "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. // @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 // ! https://github.com/kkevsekk1/AutoX/blob/a6d482189291b460c3be60970b74c5321d26e457/inrt/build.gradle.kts#L93
// noinspection ChromeOsAbiSupport // noinspection ChromeOsAbiSupport
@@ -566,7 +555,7 @@ android {
// # packaging { ... } // # packaging { ... }
@Suppress("DEPRECATION") @Suppress("DEPRECATION")
packagingOptions { packagingOptions {
arrayOf( listOf(
"META-INF/DEPENDENCIES", "META-INF/DEPENDENCIES",
"META-INF/LICENSE", "META-INF/LICENSE",
"META-INF/LICENSE.*", "META-INF/LICENSE.*",
@@ -584,7 +573,25 @@ android {
"lib/armeabi/libc++_shared.so", "lib/armeabi/libc++_shared.so",
).let { resources.pickFirsts.addAll(it) } ).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 { 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 useLegacyPackaging = true
} }
} }
@@ -661,32 +668,36 @@ android {
} }
applicationVariants.all { applicationVariants.all {
mergeAssetsProvider mergeAssetsProvider.configure {
.configure { doLast {
doLast { mapOf(
mapOf( "dir" to outputDir,
"dir" to outputDir, "includes" to when (variantName.startsWith(flavorNameInrt)) {
"includes" to when (variantName.startsWith(flavorNameInrt)) { true -> listOf(
true -> listOf( "mlkit-google-ocr-models/**/*",
"mlkit-google-ocr-models/**/*", "mlkit_barcode_models/**/*",
"mlkit_barcode_models/**/*", "models/**/*",
"models/**/*", "modules/obsolete/**/*",
"openccdata/**/*", "openccdata/**/*",
"project/**/*", "project/**/*",
"android-devices.db", "android-devices.db",
"autojs.keystore", "autojs.keystore",
) "**/prob_emit.txt", // Jieba Analysis (zh-CN: 结巴分词)
else -> listOf( "**/dict-chinese-*.db.gzip", // Jieba Analysis (zh-CN: 结巴分词)
"declarations/**/*", )
"sample/declarations/**/*", else -> listOf(
) "declarations/**/*",
}, "sample/declarations/**/*",
).let { delete(fileTree(it)) } "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 { splits {

View File

@@ -13,6 +13,7 @@ import com.reandroid.arsc.chunk.TableBlock
import org.apache.commons.io.FileUtils.copyFile import org.apache.commons.io.FileUtils.copyFile
import org.apache.commons.io.FileUtils.copyInputStreamToFile import org.apache.commons.io.FileUtils.copyInputStreamToFile
import org.autojs.autojs.apkbuilder.keystore.AESUtils import org.autojs.autojs.apkbuilder.keystore.AESUtils
import org.autojs.autojs.apkbuilder.keystore.KeyStore
import org.autojs.autojs.app.GlobalAppContext import org.autojs.autojs.app.GlobalAppContext
import org.autojs.autojs.engine.encryption.AdvancedEncryptionStandard import org.autojs.autojs.engine.encryption.AdvancedEncryptionStandard
import org.autojs.autojs.pio.PFiles 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.project.ProjectConfig
import org.autojs.autojs.script.EncryptedScriptFileHeader.writeHeader import org.autojs.autojs.script.EncryptedScriptFileHeader.writeHeader
import org.autojs.autojs.script.JavaScriptFileSource 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.FileUtils.TYPE.JAVASCRIPT
import org.autojs.autojs.util.MD5Utils import org.autojs.autojs.util.MD5Utils
import org.autojs.autojs6.BuildConfig import org.autojs.autojs6.BuildConfig
@@ -482,48 +482,48 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File
object Libs { object Libs {
private val BASIC = listOf( private val BASIC = listOf(
"libjackpal-androidterm5.so", /* Terminal Emulator. */ "libjackpal-androidterm5.so", /* Terminal Emulator. */
"libjackpal-termexec2.so", /* Terminal Emulator. */ "libjackpal-termexec2.so", /* Terminal Emulator. */
) )
private val MISCELLANEOUS = emptyList<String>() private val MISCELLANEOUS = emptyList<String>()
@JvmField @JvmField
val OPENCV = listOf( val OPENCV = listOf(
"libc++_shared.so", "libc++_shared.so",
"libopencv_java4.so", "libopencv_java4.so",
) )
@JvmField @JvmField
val MLKIT_GOOGLE_OCR = listOf( val MLKIT_GOOGLE_OCR = listOf(
"libmlkit_google_ocr_pipeline.so", "libmlkit_google_ocr_pipeline.so",
) )
@JvmField @JvmField
val PADDLE_LITE = listOf( val PADDLE_LITE = listOf(
"libc++_shared.so", "libc++_shared.so",
"libpaddle_light_api_shared.so", "libpaddle_light_api_shared.so",
"libNative.so", "libNative.so",
) )
val PADDLE_LITE_EXT = listOf( val PADDLE_LITE_EXT = listOf(
"libhiai.so", "libhiai.so",
"libhiai_ir.so", "libhiai_ir.so",
"libhiai_ir_build.so", "libhiai_ir_build.so",
) )
@JvmField @JvmField
val MLKIT_BARCODE = emptyList<String>() val MLKIT_BARCODE = emptyList<String>()
@JvmField @JvmField
val RAPID_OCR = listOf( val RAPID_OCR = listOf(
"libRapidOcr.so", "libRapidOcr.so",
) )
@JvmField @JvmField
val OPENCC = listOf( val OPENCC = listOf(
"libChineseConverter.so", "libChineseConverter.so",
) )
val DEFALUT_INCLUDES: List<String> = (BASIC + MISCELLANEOUS).distinct() val DEFALUT_INCLUDES: List<String> = (BASIC + MISCELLANEOUS).distinct()
@@ -560,23 +560,23 @@ open class ApkBuilder(apkInputStream: InputStream?, private val outApkFile: File
private val MISCELLANEOUS = listOf("stored-locales") private val MISCELLANEOUS = listOf("stored-locales")
@JvmField @JvmField
val OPENCV = emptyList<String>() val OPENCV = emptyList<String>()
@JvmField @JvmField
val MLKIT_GOOGLE_OCR = listOf("mlkit-google-ocr-models") val MLKIT_GOOGLE_OCR = listOf("mlkit-google-ocr-models")
@JvmField @JvmField
val MLKIT_BARCODE = listOf("mlkit_barcode_models") val MLKIT_BARCODE = listOf("mlkit_barcode_models")
@JvmField @JvmField
val PADDLE_LITE = listOf("models") val PADDLE_LITE = listOf("models")
@JvmField @JvmField
val RAPID_OCR = listOf("labels") val RAPID_OCR = listOf("labels")
@JvmField @JvmField
val OPENCC = listOf("openccdata") val OPENCC = listOf("openccdata")
val DEFAULT_EXCLUDES = (BASIC + MLKIT_GOOGLE_OCR + MLKIT_BARCODE + PADDLE_LITE + RAPID_OCR + OPENCC + MISCELLANEOUS).distinct() val DEFAULT_EXCLUDES = (BASIC + MLKIT_GOOGLE_OCR + MLKIT_BARCODE + PADDLE_LITE + RAPID_OCR + OPENCC + MISCELLANEOUS).distinct()

View File

@@ -1,13 +1,13 @@
package org.autojs.autojs.runtime.api.augment.util package org.autojs.autojs.runtime.api.augment.util
import org.autojs.autojs.util.RhinoUtils.newNativeObject import org.autojs.autojs.util.RhinoUtils.newNativeObject
import org.mozilla.javascript.NativeObject
object VersionCodesInfo { object VersionCodesInfo {
// @UpTo Jun 3, 2024. // @UpTo Jan 2, 2025.
private val raw = mutableMapOf( 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"), "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"), "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"), "S_V2" to listOf("Android 12L", "Snow Cone v2", "12.1", "32", "March 7, 2022"),

View File

@@ -108,6 +108,7 @@ public class BuildActivity extends BaseActivity implements ApkBuilder.ProgressCa
add(ApkBuilder.Constants.PADDLE_OCR); add(ApkBuilder.Constants.PADDLE_OCR);
add(ApkBuilder.Constants.RAPID_OCR); add(ApkBuilder.Constants.RAPID_OCR);
add(ApkBuilder.Constants.OPENCC); add(ApkBuilder.Constants.OPENCC);
// add(ApkBuilder.Constants.PINYIN);
add(ApkBuilder.Constants.MLKIT_BARCODE); 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.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.RAPID_OCR, List.of("rapid", "rapidocr", "rapid-ocr", "rapid_ocr"));
put(ApkBuilder.Constants.OPENCC, List.of("cc")); 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")); put(ApkBuilder.Constants.MLKIT_BARCODE, List.of("barcode", "mlkit-barcode", "mlkit_barcode"));
}}; }};

View File

@@ -9,7 +9,7 @@ class JiebaSegmenter(context: Context) {
val dictionary by lazy { WordDictionary.getInstance(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 } enum class SegMode { INDEX, SEARCH }

View File

@@ -4,7 +4,7 @@ import android.content.Context
open class WordDictionaryDatabase private constructor(context: Context): DictionaryDatabase(context) { open class WordDictionaryDatabase private constructor(context: Context): DictionaryDatabase(context) {
override val databaseName = "dict.db" override val databaseName = "dict-chinese-words.db"
companion object { companion object {

View File

@@ -1,5 +1,5 @@
#Wed Jan 01 17:14:34 CST 2025 #Thu Jan 02 18:05:40 CST 2025
BUILD_TIME=1735722874442 BUILD_TIME=1735812340458
COMPILE_SDK_VERSION=34 COMPILE_SDK_VERSION=34
JAVA_VERSION=23 JAVA_VERSION=23
JAVA_VERSION_MIN_RADICAL=0 JAVA_VERSION_MIN_RADICAL=0
@@ -17,6 +17,6 @@ RAPID_OCR_OPENCV_MOBILE_LABEL_VERSION=13
RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3 RAPID_OCR_OPENCV_MOBILE_VERSION=4.5.3
TARGET_SDK_VERSION=34 TARGET_SDK_VERSION=34
TARGET_SDK_VERSION_INRT=29 TARGET_SDK_VERSION_INRT=29
VERSION_BUILD=2940 VERSION_BUILD=2944
VERSION_NAME=6.6.1 VERSION_NAME=6.6.2 Alpha
VSCODE_EXT_REQUIRED_VERSION=1.0.8 VSCODE_EXT_REQUIRED_VERSION=1.0.8