我的 RELEASE 框架文件比 DEBUG 框架大
My RELEASE framework file is bigger than DEBUG framework
我有一个 kotlin 多平台项目,我正在为其创建一个发布框架。我的发布框架比调试框架大。
以下是创建框架的 gradle 任务:
task packForXcode(type: Sync) {
final File frameworkDir = new File(buildDir, "xcode-frameworks")
final String mode = 'RELEASE'
final def framework = kotlin.targets.iosArm64.binaries.getFramework(frameworkName, mode)
inputs.property "mode", mode
dependsOn framework.linkTask
from { framework.outputFile.parentFile }
into frameworkDir
doLast {
new File(frameworkDir, 'gradlew').with {
text = "#!/bin/bash\nexport 'JAVA_HOME=${System.getProperty("java.home")}'\ncd '${rootProject.rootDir}'\n./gradlew $@\n"
setExecutable(true)
}
}
}
mode = 'RELEASE'
时生成的框架文件为5.3kb,mode = 'DEBUG'
时生成的框架文件为3.8Kb。
我有 2 个问题:
- 这是预期的吗?
- 如何在 android 中创建像 R8/pro-guard 这样的框架时减少或删除未使用的代码?
这个结果是可以预料的,因为只有发布框架嵌入了位码,调试框架只有位码标记(查看一些细节here)。
编译器应该已经删除了未使用的代码,所以这里不需要应用其他工具。
我有一个 kotlin 多平台项目,我正在为其创建一个发布框架。我的发布框架比调试框架大。
以下是创建框架的 gradle 任务:
task packForXcode(type: Sync) {
final File frameworkDir = new File(buildDir, "xcode-frameworks")
final String mode = 'RELEASE'
final def framework = kotlin.targets.iosArm64.binaries.getFramework(frameworkName, mode)
inputs.property "mode", mode
dependsOn framework.linkTask
from { framework.outputFile.parentFile }
into frameworkDir
doLast {
new File(frameworkDir, 'gradlew').with {
text = "#!/bin/bash\nexport 'JAVA_HOME=${System.getProperty("java.home")}'\ncd '${rootProject.rootDir}'\n./gradlew $@\n"
setExecutable(true)
}
}
}
mode = 'RELEASE'
时生成的框架文件为5.3kb,mode = 'DEBUG'
时生成的框架文件为3.8Kb。
我有 2 个问题:
- 这是预期的吗?
- 如何在 android 中创建像 R8/pro-guard 这样的框架时减少或删除未使用的代码?
这个结果是可以预料的,因为只有发布框架嵌入了位码,调试框架只有位码标记(查看一些细节here)。
编译器应该已经删除了未使用的代码,所以这里不需要应用其他工具。