## **Kotlin在Android中FAQ(常见问题解答)** **为什么Android将Kotlin作为最优先支持的语言?** Kotlin是一种和Android兼容的语言,简洁,富有表现力,并且被设计为类型和空安全。它和Java语言无缝协作,因此,它使热爱Java语言的开发人员能够轻松地继续使用它,同时也增加了Kotlin代码并利用了Kotlin库。此外,许多Android开发者已经发现,Kotlin让开发变得更快更有趣。所以我们想更好地支持这些Kotlin用户。你可以在这里阅读更多关于Kotlin和Android的文章。 **我已经使用了Kotlin语言,对我有什么改变?** 在短期内,我们认为你会注意到的最大变化是Android Studio 3.0和更高版本包含了完全测试的Kotlin支持。我们认为这将为您带来更简单、更稳定的开发体验。 **我如何使在Android Studio中使用Kotlin ?** 在Android Studio 3.0和更高版本中完全支持Kotlin。以前,使用Kotlin需要添加Kotlin插件,但是所有新版本的Android Studio都内置了这些工具。因此,您可以不需要任何额外懂得步骤,使用Kotlin文件创建新的项目,将Java语言代码转换为Kotlin,调试Kotlin代码,以及更多。查看Get Start with Kotlin。 **如何在Android Studio中调试Kotlin ?** 调试Kotlin的工作就像调试Java代码一样。你不需要做任何不同的事情。 **为Kotlin提供了什么样的其它IDE支持(如lint、autocomplete、refactorings等)?** 在Android Studio 3.0中,IDE为Kotlin提供了完整的工具支持。然而,我们正在研究一些已知的问题和限制。 **Kotlin的未来会怎么样?** JetBrains对Kotlin设计的深思熟虑是我们拥抱语言的原因之一。谷歌正在与JetBrains合作,以确保从语言、框架到工具的全面开发。而且,我们很高兴能共同努力将Kotlin语言转换到一个非盈利的基金会。 **Kotlin开源吗?** Kotlin的首选许可证是Apache Software License,Version("Apache 2.0"),而且大多数Kotlin软件都是获得Apache 2.0下许可的。虽然该项目将努力坚持使用优先许可证,可能在一些个案的处理上会有一些例外情况。例如,Kotlin使用的某些第三方依赖项可能在不同的开放源码许可下获得许可,这些许可证仍然与Apache 2许可证兼容。 **我如何在Java和Kotlin语言之间进行选择?** 你不需要选择!您可以同时使用这两种方式。如果你需要帮助来探索Kotlin是否适合你,你可以在Android上试试,或者使用these Kotlin resouces中学习更多关于语言知识。 **我可以从Kotlin调用Android或其它Java语言库的API吗?** 是的。Kotlin提供Java语言互操作。 **我可以在同一个项目中同时使用Java文件和Kotlin文件吗?** 是的。你可以使用Kotlin's interoperability with Java,根据你的喜欢或多或少的采用Kotlin,并将其与Java代码混合。 **我能在Kotlin中使用c++吗?** 是的,Kotlin完全支持JNI。只需使用the external modifier简单标记JNI方法。 **我如何将Kotlin添加到我的新项目中?** 当您在Android Studio中创建一个新项目时,只需选择Include Kotlin support复选框。更多相关信息,请查阅Get Started with Kotlin。 **我如何将Kotlin添加到现有的项目中?** 在Project窗口中选择你的模块,然后选择File>New,选择任何Android模板,然后选择Kotlin作为Source language。更多相关信息,请查阅Get Started with Kotlin。 **我如何将Java语言代码转换为Kotlin ?** 打开Java文件,并选择Code>Convert Java File to Kotlin File。或者,创建一个新的Kotlin文件(File>New> Kotlin File/Clas),然后在提示时将Java代码粘贴到该文件中,单击Yes将代码转换为Kotlin。更多相关信息,请查阅Get Started with Kotlin。 **在Kotlin中是否会有并行文档,样本,codelabs,和模板?** 我们正在努力使我们的文档和教育材料尽可能地对Java和Kotlin语言用户都有用。与此同时,开发人员可以依赖于Kotlin与Java语言的优秀互操作性,以及在Android Studio中自动将Java语言代码转换为Kotlin的能力。 **Kotlin在Android上如何协同工作?如何异步/等待?** Kotlin协同目前应该工作,但它们目前是一个实验设计。因此,Kotlin对未来的地位没有任何保证,因此,Android也没有。 **Kotlin对APK大小/方法数量有什么影响?** Kotlin运行时为你的调试APK增加了大约7000种方法和1MB。如果你使用Kotlin来代替项目中的另一个库,得到影响可能会更小,比如Guava或RxJava。当你使用Proguard优化APK时,这个大小也会减少,就像其他应用代码和库一样。 **使用Kotlin有什么性能影响吗?** Kotlin没有直接的性能影响,但是就像使用Java语言一样,您应该考虑如何使用它。例如,在新集合实例之间重复复制可能会影响GC性能,调用一个接受非空类型的方法,添加一个方法调用为空检查(虽然您可以在编译器中使用-Xno-param-assertions禁止运行时空检查)。 **Kotlin支持Android的哪些版本 ?** 所有版本!Kotlin与JDK 6兼容,所以使用Kotlin的应用可以安全地运行在较老的Android版本上。 **我在哪里可以学到更多关于使用Kotlin的知识?** 阅读Resource to Learn Kotlin。