在 Kotlin 上,我们首选的开源协议是 “Apache Software License, Version 2.0” (http://www.apache.org/licenses/LICENSE-2.0) 'Apache 2.0'。
并且主要的 Kotlin 软件都使用了 Apache 2.0。虽然 Kotlin 项目都会遵循这个协议,但可能有例外的情况会有特殊的处理。比如,Kolint 使用的某些第三方库可能使用与 Apache 2.0 兼容的其他开源协议。
在 Kotlin 和 Java 之间我应该如何选择?
您不必担心这个问题,您可以两个一起使用,如果您想知道 Kotlin 是否适用您,您可以在 Android 上试一试或者学习更多有关于 Kotlin 语言资料。
文档:
“Kotlinlang.org” (https://kotlinlang.org/) Kotlin 的官方网站,包含了所有的 “基本语法” (https://kotlinlang.org/docs/reference/basic-syntax.html) 和 “标准库参考” (https://kotlinlang.org/api/latest/jvm/stdlib/index.html)
“Kotlin Koans Online” (https://try.kotlinlang.org/) 在线 IDE 中的一系列练习,可帮助您学习 Kotlin 语法
视频:
“Kotlin in Action” (https://www.manning.com/books/kotlin-in-action) : 由 JetBrains 公司 Kotlin 的开发者 Dmitry Jemerov 和 Svetlana Isakova 编写
“Kotlin for Android Developers” (https://leanpub.com/kotlin-for-android-developers) 最早的 Kotlin 书籍之一,由 Antonio Leiva 编写
社交渠道:
“Kotlin Community” (https://kotlinlang.org/community/) kotlinlang.org 的线下社区项目与小组
“Kotlin Slack” (http://slack.kotlinlang.org/) Kotlin 使用者讨论社区
“Talking Kotlin” (http://talkingkotlin.com/) Kotlin 的半月刊博客
我可以在 Kotlin 中调用 Android 或者其他 Java 语言的库吗?
Kotlin 提供了Java 语言的互通性,这表示 Kotlin 文件中您可以不用 annotation 或 Kotlin 指定语意义,就可以在直接在 Kotlin 里面调用 Java 的方法,这意味着您的项目中可以并存 Java 和 Kotlin 的代码。
我可以在用 Kotlin 中使用 C++ 吗?
当然可以,JNI 是完全支持 Kotlin 的。
要调用 native 的 C 或 C ++代码,只需提前使用 external modifier 来标记一下即可:
external fun foo(x: Int): Double
我怎么在现有的项目中增加 Kotlin 文件?
如果想将 Kotlin 增加到已经存在的项目中,点击 “File > New” 选择一个模版。如果您没有看到这个菜单,需要首先打开 Project 窗口并选择您的 app 组件。
当配置向导出现,选择 “Source Language” 选择 “Kotlin”
至于其他的方式,您可以通过 “File > New > Kotlin File/Class” 去创建一个基本的文件,“New Kotlin File/Class” 窗口提供了一些文件的选择,因为在您更改了类型之后,Kotlin 会自动转换文件类型,所以您选择什么都不重要。
Kotlin 文件保存在 “src/main/java/”, 您会发现 Kotlin 文件和 Java 文件在一个文件夹里面,但是如果您想让您的 Kotlin 文件和 Java 文件分开,您可以用 “src/main/kotlin/” 代替,如果您需要这样做,只需要在您的配置中添加下面的语句就可以了。
Android {
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
}
我怎么将 Java 代码转换成 Kotlin 代码?
在 Android Studio 3.0, 打开一个 Java 文件然后选择 “Code > Convert Java File to Kotlin File”.
或者创建一个 Kotlin 文件 “(File > New > Kotlin File/Class)”, 然后复制您的 Java 代码到 Kotlin 文件中。当有提示出现的时候,点击 “Yes” 将 Java 代码转换为 Kotlin 代码,并且可以勾选 “Don't show this dialog next time” 来方便您下一次转换。
针对 Kotlin 也会提供(与 Java 相同)完整的对应文档、代码和模版吗?
我们正在努力的将我们的文档、代码、模版尽可能的同时覆盖于 Java 和 Kotlin。与此同时,开发者可以依赖 Java 和 Kotlin 的互操作性,将 Java 代码转换为 Android Studio 中的 Kotlin 代码。
Kotlin 在 Android 上的协程使用怎么样?异步、等待等操作如何?
Kotlin 的协程目前应该是可以使用,但由于 Kotlin 的这套机制尚在实验设计阶段,因此 Kotlin 对未来的状态不会有任何的保证,同样的 Android 也不会。
Kotlin 会影响 APK 大小吗?会影响方法数吗?
Kotlin 在运行时可能会在您的 debug APK 中增加 7000 个方法和 1M 的大小,如果您使用 Kotlin 替换如 Guava、RxJava 等其他的库,影响可能会小一些。但是您可以在后期通过 ProGuard 来优化减小包的大小。
使用 Kotlin 会不会有什么性能影响?
Kotlin 没有直接的性能影响。但是它和 Java 一样,性能方面的表现和您的使用息息相关。
比如说:在多个 collection 实例中,重复的复制操作会影响 GC 性能,调用一个接受非空类型的方法,会增加一个空检查的方法调用(但是您可以通过设置 -Xno-param-assertions 来禁用编译时运行空指针检查)
哪一个版本支持 Kotlin?
Kotlin 是兼容 Java 6.0 的,所以您可以在所有的 Android 版本上安全的使用 Kotlin。
来源: http://www.92to.com/bangong/2017/07-21/25496247.html