Kotlin教程和Android开发环境搭建
传送门:http://www.runoob.com/kotlin/otlin-android-setup.html
这篇博文主要是介绍如何通过使用Kotlin,来提高我们开发安卓的效率,比如简化代码,提高运行效率等等。当然,事物总会有两面性,使用Kotlin也有一些劣势,比如编译时间“略长”于使用java。官方说是as faster as than java。但是keepsafe有一篇对二者进行编译时速度的测试文章,如其文所示,确实也是相差”无几”,但这个无几的意思是说速度慢了一点点。
好了,牛皮不多吹,官方性质的话也不多说,咱们还是说点有用的。接下来,我们就分几个步骤,来详细的讲解,如何在安卓开中,应用Kotlin来提高开发效率。
一、小试牛刀,优化findViewById。
作为安卓开发者,我们对findViewById()这个方法都很熟悉。我想大部分人,都会对大量的findview感到恶心。于是,有不少人,有如博主,就用了annotation(注解)来简化findView的步骤。但用注解findView有明显的缺陷:
1、注解本身的缺陷。对注解有所了解的朋友,都知道。注解采用反射机制,是在运行时,才对view进行findview。那么,就会导致运行时性能的开销,特别是影响到打开activity或其它view的速度,虽然可能感觉不出来,可能是理论上和数据上的性能优化。但只要是优势,我们就得说出来。
2、代码的行数增多(影响美观和可阅读性、想阅读性)。如果activity的view比较多,activity声明这些view的行数也会相应增加,导致打开activity,首先看到的是一整排长长的都是声明,多的可能达几十行。
既然我列出了这两个缺陷,那么Kotlin肯定是能解决这两个问题。如果解决不了,我也不会故意就讲这两个缺陷,我可能会讲更多的,比如方法名真JB长,比如findview后还得cast。至于怎么解决:
1、第一个问题,Kotlin官网只说了有这个优化,至于为什么和数据型证据是没给出来了,自己去做测试,也是有些难度和繁琐,我们只能相信店大不欺客了。
2、第二个问题,我就用代码+注释方式来解答。
// 这是xml文件里的TextView,注意一下id是helloTv
<TextView
android:id="@+id/helloTv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
// 这是xxx.java里面的代码
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// 直接用view的id,当成员变量使用,这里要注意import导入的是xml。
helloTv.text = getString(R.string.app_name)
}
}
通过对上文的了解,是不是开始对kotlin有一定的兴趣了?不,没兴趣,那么,Alt+F4。有,有兴趣。那么,咱们接着继续看。