简评: 这里介绍的仅仅是 Anko 中很小的一部分,Kotlin + Anko 真的让 Android 开发简化了很多,用了 Anko 基本就能够告别那些什么 Android 不得不知的代码收集贴了。java
Anko 是 JetBrains 针对 Kotlin 推出的 Android 开发库,其目的是经过 Kotlin 让 Android 开发更加简单。浏览器
Anko 主要有四个模块:多线程
在这篇文章中,咱们先主要介绍其 Commons 模块中的一些内容:app
首先,View.setOnClickListener 方法能够说是广大 Android 开发者写得最多的方法之一了,若是你是用 Kotlin,那么代码看起来应该是相似这样的:async
button.setOnClickListener(object : View.OnClickListener{ override fun onClick(v: View) { } })
经过使用 Anko 能够把代码缩减为:ide
button.onClick { }
Intent学习
当咱们但愿跳转到新的 Activity 时,代码相似这样:ui
val intent = Intent(this, MainActivity::class.java) intent.putExtra("id", 5) intent.putExtra("name", "John") startActivity(intent)
而经过 Anko:this
startActivity<mainactivity>("id" to 5, "name" to "John")
Anko 还封装了一些经常使用的功能,让咱们无需定义 Intent:idea
browse("https://makery.co") share("share", "subject") email("hello@makery.co", "Great app idea", "potato")
尺寸的单位问题
经过 Anko,Android 中的尺寸单位换算也变得无比简单:
val dpAsPx = dip(10f) sp(15f)
API level 的问题
碎片化是 Android 开发者必需要面对的问题,咱们不但愿无论那些还在用旧版本的用户,但也但愿能使用新 Android 版本中酷炫的功能。最多见的作法是像这样:
if (Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP){ } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP){ }
如今让咱们看看 Anko 是怎么作的:
doIfSdk(Build.VERSION_CODES.LOLLIPOP){ } doFromSdk(Build.VERSION_CODES.LOLLIPOP){ }
真是简单又易懂。
处理线程
处理多线程一直都不太容易,但在 Android 开发中咱们常常须要面对。在 Anko 中的作法会至关的简洁:
doAsync { //IO task or other computation with high cpu load uiThread { toast("async computation finished") } }
集成 Anko
若是你也心动了,想尝试一下,能够经过下面的方式来集成 Anko:
ankoVersion = "0.10.1" dependencies { compile "org.jetbrains.anko:anko-appcompat-v7-listeners:$ankoVersion" compile "org.jetbrains.anko:anko-design-listeners:$ankoVersion" compile "org.jetbrains.anko:anko-design:$ankoVersion" compile "org.jetbrains.anko:anko-sdk15-listeners:$ankoVersion" compile "org.jetbrains.anko:anko-sdk15:$ankoVersion" }
不夸张的说,Anko 能够算是我学习 Kotlin Android 开发的一个重要缘由了。
原文连接: Why every Android developer should use Anko - Kotlin Development 推荐阅读: 跨浏览器问题的五种解决方案