Kotlin运行时Jar和Kotlin标准库Jar的区别

8
在kotlin的1.0.0-beta-1103版本中,kotlin-runtime.jar(225.1K)和kotlin-stdlib.jar(727.3K)有何区别?我应该将哪一个与我的应用程序一起分发?目前我使用kotlin-stdlib.jar,因为这是Android Studio生成的,但我想知道是否可以使用kotlin-runtime.jar,因为它更小。
1个回答

22
运行库只包含执行编译代码所需的 Kotlin 语言基础类型。它是必需的最小类集。
标准库包含您需要进行舒适开发所需的实用函数。这些是针对集合操作、文件、流等的函数。
理论上,您可以仅使用运行时库,但通常不应该这样做,因为其中没有标准库,因此您将失去许多用于舒适开发的实用函数(例如 map、filter、toList 等),因此我认为您不应该这样做。
因此,实际上您需要两者。如果您需要使结果包更小,则可以使用 proguard 处理应用程序。
更新
从 Kotlin 1.2 开始,kotlin-runtime 和 kotlin-stdlib 合并为单个 artifact kotlin-stdlib。
我们将kotlin-runtime和kotlin-stdlib合并为一个单独的构件kotlin-stdlib。此外,我们将重命名编译器分发中的kotlin-runtime.jar为kotlin-stdlib.jar,以减少在不同构建系统中具有不同命名标准库所导致的混乱。 这个重命名将分两个阶段进行:在1.1中,编译器分发中将同时存在kotlin-runtime.jar和kotlin-stdlib.jar,它们的内容相同;在1.2中,前者将被删除。 有关详细信息,请参考Kotlin 1.1:标准库中的新变化

1
为了清晰起见,仅声明对stdlib的依赖是否足够,还是应该同时声明对两者的依赖? - Max
1
@Max,你只需要包含stdlib(因为运行时是一个传递依赖项)。 - Sergey Mashkov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接