摘要:是针对推出的开发库,其目的是通过让开发更加简单。处理线程处理多线程一直都不太容易,但在开发中我们经常需要面对。
简评: 这里介绍的仅仅是 Anko 中很小的一部分,Kotlin + Anko 真的让 Android 开发简化了不少,用了 Anko 基本就可以告别那些什么 Android 不得不知的代码收集贴了。
Anko 是 JetBrains 针对 Kotlin 推出的 Android 开发库,其目的是通过 Kotlin 让 Android 开发更加简单。
Anko 主要有四个模块:
Commons
Layouts
SQLite
Coroutines
在这篇文章中,我们先主要介绍其 Commons 模块中的一些内容:
首先,View.setOnClickListener 方法可以说是广大 Android 开发者写得最多的方法之一了,如果你是用 Kotlin,那么代码看起来应该是类似这样的:
button.setOnClickListener(object : View.OnClickListener{ override fun onClick(v: View) { } })
通过使用 Anko 可以把代码缩减为:
button.onClick { }
Intent
当我们希望跳转到新的 Activity 时,代码类似这样:
val intent = Intent(this, MainActivity::class.java) intent.putExtra("id", 5) intent.putExtra("name", "John") startActivity(intent)
而通过 Anko:
startActivity("id" to 5, "name" to "John")
Anko 还封装了一些常用的功能,让我们无需定义 Intent:
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
推荐阅读: 跨浏览器问题的五种解决方案
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/15007.html
摘要:的空安全设计,主要是在类型后面加表示可空,否则就不能为。换句话说,这里的提供了初始化的方法,不过真正初始化这个动作发生的时机却是在第一次被使用时了。至于技术,实际上是的一个应用,也就是属性代理了。 1、Hello, Kotlin Bugly 技术干货系列内容主要涉及移动开发方向,是由 Bugly 邀请腾讯内部各位技术大咖,通过日常工作经验的总结以及感悟撰写而成,内容均属原创,转载请标明...
摘要:当然,为了正常地使用这么好的扩展函数,不要忘了在代码文件头部加上下面一行导入语句这么精简的代码,功能上可是一点都没偷工减料的,它的提醒对话框效果与编码一模一样,都如下图所示。提醒对话框手机上的App极大地方便了人们的生活,很多业务只需用户拇指一点即可轻松办理,然而这也带来了一定的风险,因为有时候用户并非真的想这么做,只是不小心点了一下而已,如果App不做任何提示的话,继续吭哧吭哧兀自办完业务...
摘要:表示水平布局,表示垂直布局。表示靠左对齐表示靠右对齐表示靠上对齐表示靠下对齐表示居中对齐。相对布局内部的视图位置不依赖于排列规则,而依赖于指定的参照物,这个参照物可以是与该视图平级的视图,也可以是该视图的上级视图上级视图即相对布局自身。线性布局线性布局LinearLayout是最常用的布局,顾名思义,它下面的子视图像是用一根线串了起来,所以其内部视图的排列是有顺序的,要么从上到下垂直排列,要...
摘要:共享参数毕竟只能存储简单的键值对数据,如果需要存取更复杂的关系型数据,就要用到数据库了。但是,系统自带的有个先天缺陷,就是它并未封装数据库管理类,这造成一个后果开发者需要在操作表之前中手工打开数据库连接,然后在操作结束后手工关闭数据库连接。共享参数毕竟只能存储简单的键值对数据,如果需要存取更复杂的关系型数据,就要用到数据库SQLite了。尽管SQLite只是手机上的轻量级数据库,但它麻雀虽小...
摘要:我一直坚信,快速学习与掌握一门语言的最好方式就是实践,边开发项目边学习。实现它们间的联动。方便以后本地数据请求的加入目前还没有引入本地数据库,后续有时间将引入。分别为与接口,对应的实现就是与。 前一段时间开发比较轻松,所以就研究了一下google主推的kotlin语言。我一直坚信,快速学习与掌握一门语言的最好方式就是实践,边开发项目边学习。这样才能快速的将学习的知识运用到实践中,从而发...
阅读 3504·2023-04-25 18:41
阅读 949·2021-11-11 16:55
阅读 1533·2021-09-22 15:54
阅读 2815·2021-09-22 15:51
阅读 3375·2019-08-30 15:55
阅读 1795·2019-08-30 14:19
阅读 1158·2019-08-29 10:57
阅读 1579·2019-08-29 10:56