override fun onUpgrade(database: SQLiteDatabase, oldVersion: Int, newVersion: Int) {dropTable(Book.TABLE_NAME, true)}}
访问数据库的推荐做法是通过依赖注入,或者为 Context 添加一个 extension:
val Context.database: DatabaseHelperget() = DatabaseHelper.Instance(applicationContext)
下面这是一个简单的 model 类:
data class Book(val id: Int, val title: String, val author: String) {companion object {val Book.COLUMN_ID = \\”id\\”val TABLE_NAME = \\”books\\”val COLUMN_TITLE = \\”title\\”val COLUMN_AUTHOR = \\”author\\”}}
当数据库准备好后,就可以通过 use 方法来进行操作了 。比如:
database.use {insert(Book.TABLE_NAME, Book.COLUMN_ID to 1, Book.COLUMN_TITLE to \\”2666\\”, Book.COLUMN_AUTHOR to \\”Roberto Bolano\\”)}
最后,让我们来比较一下常见库的大小:
要注意这里 Anko SQLite 的依赖大小其实是包含了 Kotlin Runtim (method count: 6298, DEX size: 1117 KB) 和 Anko Commons module (method count: 982, DEX size: 174 KB) 的 。因此如果你是通过 Kotlin 来开发,Anko SQLite 增加的大小其实并没有图表显示得那么多 。
因此,如果你在使用 Kotlin 做开发并且数据库的复杂度不高,首推 Anko SQLite 。但如果数据库结构非常复杂,DAO 和 SQL 查询可能会变得很痛苦,这时候 ORM 和 NoSQL 就是首选方案了 。
5.Anko Coroutines: utilities based on the kotlinx.coroutines library.
Kotlin协程协程本质上是一个轻量级的线程,支持我们用同步写法写异步请求,而不用Callback 。
doAsync(UI) {val data: Deferred<Data> = bg {// Runs in backgroundgetData()}
// This code is executed on the UI threadshowData(data.await())}
我们可以用bg()在新的线程去做耗时操作,等返回结果再在UI线程进行操作 。
具体协程教程我们可以看一下官方文档
Kotlin协程
6.总结
Anko是Kotlin官方开发的一个让开发Android应用更快速更简单的Kotlin库,并且能让我们书写的代码更简单清楚更容易阅读 。主要包含了以下几个部分 。
Anko Commons: a lightweight library full of helpers for intents, dialogs, logging and so on;Anko Layouts: a fast and type-safe way to write dynamic Android layouts;Anko SQLite: a query DSL and parser collection for Android SQLite;Anko Coroutines: utilities based on the kotlinx.coroutines library.
【android颜色透明度怎么设置 android按钮透明效果】Anko库用起来非常的简单方便,里面设计到DSL和扩展函数 。
- 富安娜家纺四件套颜色特点 富安娜家纺床上用品
- 情人节颜色代表什么
- 彩虹的七种颜色是什么 彩虹的七种颜色分别是
- 草莓的花是什么颜色 草莓的花有哪些颜色
- 学士服颜色分类是什么 学士服颜色分类的区别
- 什么颜色可以调成粉红色 哪两种颜色混合变粉红色
- 黄颜色的水果有哪些 有哪些黄颜色的水果
- 金丝楠木颜色 金丝楠木颜色是什么
- 颜色种类 颜色有哪些种类
- 浅蓝色和什么颜色最搭 浅蓝色衣服配什么颜色裤子