为什么 Android 开发者都应该尝试一下 Anko?
简评: 这里介绍的仅仅是 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<mainactivity>("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
推荐阅读: 跨浏览器问题的五种解决方案

为什么 Android 开发者都应该尝试一下 Anko?的更多相关文章
- 每个Android开发者都应该了解的资源列表
前言 这是一篇译文,原文地址Resources every Android developer must know,在译文开头,推荐两篇同样适合于Android开发者阅读的资源列表Android开 ...
- 对Android开发者有益的40条优化建议
下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题 对每个你像添加的特征重复上述过程.这种方法能够激 ...
- 给 Android 开发者的 RxJava 详解
我从去年开始使用 RxJava ,到现在一年多了.今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 .而最近这几个 ...
- 对 Android 开发者有益的 40 条优化建议
本文转载于:http://www.oschina.net/translate/40-developer-tips-for-android-optimization?cmp 下面是开始Android编程 ...
- 【转】对Android开发者有益的40条优化建议
下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题 对每个你像添加的特征重复上述过程.这种方法能够激 ...
- [转]对Android开发者有益的40条优化建议
下面是开始Android编程的好方法: 找一些与你想做事情类似的代码 调整它,尝试让它做你像做的事情 经历问题 使用StackOverflow解决问题 对每个你像添加的特征重复上述过程.这种方法能够激 ...
- 30多个Android 开发者工具 带你开发带你飞
文中部分工具是收费的,但是绝大多数都是免费的. FlowUp 这是一个帮助你跟踪app整体性能的工具,深入分析关键的性能数据如FPS, 内存, CPU, 磁盘, 等等.FlowUp根据用户数量收费. ...
- Android 开发者,如何提升自己的职场竞争力?
前言 该文章是笔者参加 Android 巴士线下交流会成都站 的手写讲稿虚拟场景,所以大家将就看一下. 开始 大家好,我是刘世麟,首先感谢安卓巴士为我们创造了这次奇妙的相遇.现场的氛围也让我十分激动. ...
- 写给Android开发者的Kotlin入门
写给Android开发者的Kotlin入门 转 https://www.jianshu.com/p/bb53cba6c8f4 Google在今年的IO大会上宣布,将Android开发的官方语言更换为K ...
随机推荐
- 下载的管理类MyDownloadManager
import android.content.Intent; import android.net.Uri; import java.io.File; import java.io.FileOutpu ...
- 基于form表单的极验滑动验证小案例
01.目录展示 02.url.py urlpatterns = [ path('admin/', admin.site.urls), path('login/',views.login), path( ...
- WPF界面设计—撸大师
WPF界面设计,模仿了金山卫士,360,鲁大师的界面! <!--无边框窗体--> <Style x:Key="NoResize_window" TargetTyp ...
- 重复执行用例(pytest-repeat)
前言 平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来.自动化运行用例时候,也会出现偶然的bug,可以针对单个用例,或 ...
- Linux(Debian)发行版中文输入法
Linux发行版下有两大输入法框架:ibus 和fcitx,其中fcitx 的体验要比ibus 好,因此选择 fcitx 框架,并安装中文输入法. 中文输入法中你可以选择fcitx-pinyin or ...
- python__007内置函数
本文摘自:https://docs.python.org/3/library/functions.html?highlight=built#ascii 内置功能 abs() delat ...
- LeetCode.1051-身高检查器(Height Checker)
这是小川的第390次更新,第420篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第252题(顺位题号是1051).要求学生按身高递增的顺序站列来拍年度照片. 返回没有站在 ...
- ubuntu16.04离线安装nvidia-docker2
目前需要离线对ubuntu 进行封装docker环境 在熟悉docker环境过程中,有网络条件下,还处于懵逼状态 离线安装…… 大佬救救我 来了: 首先下载安装docker最新版 我的OS是Ubunt ...
- 1.2.2 OSI参考模型 下
[今天打酱油了,纯抄书.OSI太重要,不敢随便乱写.] 一.开放系统互联参考模型 答:20世纪80年代初,ISO提出来著名的开放系统互联参考模型[Open Systems Interconnectio ...
- 线程间通信共享变量和queue
在多线程中,数据是共享,如何在多线程安全的通信,是首先要可虑的问题的 #线程间的通信 import timeimport threadingfrom threading import RLock de ...