Kotlin/Native 二进制文件选项
本章列出了实用的 Kotlin/Native 二进制文件选项, 可以用来配置 Kotlin/Native 最终二进制文件, 以及在项目中设置二进制文件选项的方法.
如何启用
你可以在 gradle.properties 文件或构建文件中, 启用二进制文件选项, 也可以将这些选项传递为编译器参数.
在 Gradle 属性文件中
你可以在项目的 gradle.properties 文件中, 使用 kotlin.native.binary 属性设置二进制文件选项. 例如:
在构建文件中
你可以在 build.gradle.kts 文件中, 为项目设置二进制文件选项:
使用
binaryOption属性, 针对特定二进制文件进行设置. 例如:kotlin { iosArm64 { binaries { framework { binaryOption("smallBinary", "true") } } } }在
freeCompilerArgs属性中, 通过-Xbinary=$option=$value编译器选项设置. 例如:kotlin { iosArm64 { compilations.configureEach { compilerOptions.configure { freeCompilerArgs.add("-Xbinary=smallBinary=true") } } } }
在命令行编译器中
你可以在执行 Kotlin/Native 编译器 时, 在命令行中, 以 -Xbinary=$option=$value 的形式, 直接传递二进制文件选项. 例如:
二进制文件选项
选项 | 值 | 说明 | 状态 |
|---|---|---|---|
| 为导出的 Objective-C 头文件中的函数类型, 添加明确的参数名称. | 从 2.2.20 开始, 为实验性功能 | |
| 减小发布版本二进制文件的大小. | 从 2.2.20 开始, 为实验性功能 | |
| 启用栈金丝雀(Stack Canary): 对易受攻击的函数使用 | 从 2.2.20 开始可用 | |
| 控制分配(缓冲)的分页. 当值为 | 从 2.2.0 开始, 为实验性功能 | |
| 控制对 Latin-1 编码字符串的支持, 以减小应用程序二进制文件大小, 并调整内存消耗. | 从 2.2.0 开始, 为实验性功能 | |
| 控制内存标记, 在 Apple 平台上跟踪内存消耗需要这个功能. 可用值为 | 从 2.2.0 开始可用 | |
|
| 控制默认的内存分配器. 当值为 | 从 2.2.0 开始可用 |
| 控制垃圾收集行为:
| 从 2.4.0 开始, 默认值为 | |
| 禁用垃圾收集中标记阶段的并行化. 在大尺寸的堆上, 可能会增加 GC 暂停时间. | 从 1.7.20 开始可用 | |
| 启用对项目中 GC 相关暂停的跟踪, 用于在 Xcode Instruments 中调试. | 从 2.0.20 开始可用 | |
|
| 在 Kotlin IR 编译器中配置内联优化过程, 这个过程在实际代码生成阶段之前执行(默认为禁用). 推荐的 token 数量(编译器解析的代码单元)为 40. | 从 2.1.20 开始, 为实验性功能 |
| 控制 Swift/Objective-C 对象的反初始化. 当值为 | 从 1.9.0 开始可用 | |
| 控制应用程序在后台运行时, 基于定时器的垃圾收集器调用. 当值为 | 从 1.7.20 开始, 为实验性功能 | |
|
| 在 | 从 1.7.20 开始可用 |
|
| 在 | 从 1.7.20 开始可用 |
|
| 在 | 从 1.7.20 开始可用 |
|
| 向异常的堆栈跟踪(Stack Trace)添加文件位置和行号信息.
| 从 1.6.20 开始, 为实验性功能 |
下一步做什么?
了解如何 构建最终的原生二进制文件.