在Kotlin for Android中编写库的开销是多少?

问题描述:

我正在考虑将Java(Android)库移植到Kotlin。我非常喜欢Kotlin,对Java的好处应该可以减少库中的错误数量。在Kotlin for Android中编写库的开销是多少?

由于图书馆的目标是资源受限的环境,我担心通过将图书馆移植到Kotlin会有额外的开销。

Kotlin库(以.class文件形式发布)是否引入了与Java库相比的任何运行时间或额外开销?

由于Kotlin,生成的Android应用会变得更大还是更慢?

+2

存在Kotlin标准库,其具有约[5747](http://www.methodscount.com/?lib=org.jetbrains.kotlin%3Akotlin-stdlib%3A%2B)的方法计数,但是如果客户端无论如何都使用stdlib,这可能无关紧要。 – nhaarman

+0

你说的没错,stdlib的kotlin对小型图书馆来说可能是一种过度消耗,但对于大型图书馆来说,kotlin stdlib有很多有用的API。你可以用java编写你的库,并通过单独的lib(例如RxJava和RxKotlin)提供方便的Kotlin API /扩展。 – Stepango

+0

感谢您的建议,但重点是我想在Kotlin中编写库 - 我想要不可变的数据类和null-safety。 –

Kotlin有许多专门用于帮助Android的优化。如果你阅读博客文章,你可以看到它如何不断减少stdlib的大小,以及每个版本的课程数量。

由于Kotlin,生成的Android应用会变得更大还是更慢?

没有

做了科特林库(分布为.class文件)介绍与一个Java库中的任何运行时或额外的开销?

标准库是非常小的,它的许多函数都是内联函数,这意味着它们不存在过去的编译,只是成为内联代码。 Proguard也可以照顾很多。

由于图书馆的目标是资源受限的环境,我担心通过将图书馆移植到Kotlin会有额外的开销。

您没有定义哪些资源受到限制。 Kotlin不会使用更多的内存,不会使用更多的磁盘,而stdlib很小。

我真的很喜欢Kotlin,并且它对Java的好处应该可以减少库中的错误数量。

Kotlin在Android上很受欢迎,你应该把它当作一个标志,表示有很多好处而不是消极。真的,你可以通过在Java中使用一个小例子并且在Kotlin中使用小例子来比较它们之间的差异。两个Proguard,都有相同类型的构建管道。

+0

很好的答案。谢谢。当我说资源受到限制时,我的意思是一般的Android设备 - APK越小越好(下载速度更快,存储空间更小,内存占用空间更小)。我想尽可能地减少我的图书馆的内存使用量,成为一个好公民。 –

+1

你唯一需要面对的是Stdlib的总体课程/方法,Kotlin会继续努力减少它们。但是,通过减少自己的代码,使用更少的其他库来弥补这些问题,并且其中一些内联代码可能无法计数。所以NET的改变将取决于你的用途。关于Kotlin和Android有许多关于Kotlin和Android的发布记录,而对Kotlin懒散的影响和懈怠的频道有一个#android频道,人们可以回答关于它的主观内容。 –