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

@@ -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 {

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.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<String>()
@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<String>()
@JvmField
val MLKIT_BARCODE = emptyList<String>()
@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<String> = (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<String>()
@JvmField
val OPENCV = emptyList<String>()
@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()

View File

@@ -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"),

View File

@@ -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"));
}};