文章目录AnkoJetBrains 出品的 Kotlin Android 开发库1.5 万 Star 后已归档Anko 到底解决了什么问题四个模块分工明确为什么会被废弃现在还能用吗它留下的东西AnkoJetBrains 出品的 Kotlin Android 开发库1.5 万 Star 后已归档JetBrains 推出过一个叫 Anko 的 Kotlin 库专门给 Android 开发用的GitHub 上拿了 1.5 万多个 Star。这库的目标很明确把 Android 开发里那些繁琐的 Java 写法用 Kotlin 的方式简化掉。不过得先说清楚Anko 已经被 JetBrains 官方标记为废弃项目了。但这并不妨碍我们看看它当年做了什么以及它对后来 Android 开发工具的影响。Anko 到底解决了什么问题早年用 Java 写 Android到处都是样板代码。写个布局要 XML处理数据库要用 Cursor 手动解析连显示个 Toast 都要好几行。Anko 就是来干这活的它把 Android SDK 里那些重复劳动全部用 Kotlin 语法糖包了一层。整个库分成四个模块各管一摊事。四个模块分工明确Anko Commons是个工具箱Intent 跳转、Dialog 弹窗、日志输出、资源获取这些日常操作全包了。以前写个跳转要 new Intent 再 setClass 再 startActivity现在一行搞定。Anko Layouts是最核心的部分。它用 DSL 的方式让你直接用 Kotlin 代码写布局彻底告别 XML。写出来的代码长这样verticalLayout{valnameeditText()button(Say Hello){onClick{toast(Hello,${name.text}!)}}}这段代码创建了一个 LinearLayout里面放了一个输入框和一个按钮按钮点击后弹 Toast。整个过程没有一行 XML全是 Kotlin 代码。而且 onClick 接受 suspend lambda可以直接在里面写异步逻辑。Anko SQLite解决的是数据库操作的痛点。Android 原生的 SQLite 查询要手动管理 Cursor写起来又臭又长。Anko 提供了一套 DSL查询、解析结果都简化了。比如按条件查用户列表几行代码就完事。Anko Coroutines基于 kotlinx.coroutines 库提供了 bg() 函数把代码丢到线程池执行还有 asReference() 防止协程里的对象泄漏。为什么会被废弃Anko 的 Layouts DSL 思路是对的但实现方式有局限。它在运行时生成 View 对象性能和功能都比不上后来 Google 推出的 Jetpack Compose。Compose 用声明式 UI 的方式重新定义了 Android 布局开发直接把 Anko Layouts 的路给堵死了。JetBrains 自己也参与了 Compose 的推动所以废弃 Anko 是顺理成章的事。Commons 模块里的很多工具函数在 Kotlin Android Extensions 和 AndroidX 里也都有了替代方案。现在还能用吗技术上能用但不建议在新项目里引入。项目已经 archived不会再有更新和 bug 修复。如果你在维护老项目碰到了 Anko 代码建议逐步迁移到 Jetpack Compose 或者 AndroidX 的标准 API。对于新项目Jetpack Compose 是官方推荐的 UI 框架Kotlin 协程也已经是 Android 异步编程的标准方案。Anko 想解决的问题现在都有了更好的答案。它留下的东西Anko 虽然退场了但它验证了一件事Kotlin 写 Android 确实比 Java 爽。DSL 写布局、协程处理异步、扩展函数简化 API这些理念后来都成了 Android 开发的主流做法。从这个角度看Anko 更像是一块试验田。它把 Kotlin 的优势在 Android 场景里跑通了证明了可行性然后由 Google 和 JetBrains 用更成熟的方式实现了出来。对于理解 Android 开发工具的演进Anko 是一个有意思的历史节点。ns 用更成熟的方式实现了出来。对于理解 Android 开发工具的演进Anko 是一个有意思的历史节点。
Anko:JetBrains 出品的 Kotlin Android 开发库,1.5 万 Star 后已归档
文章目录AnkoJetBrains 出品的 Kotlin Android 开发库1.5 万 Star 后已归档Anko 到底解决了什么问题四个模块分工明确为什么会被废弃现在还能用吗它留下的东西AnkoJetBrains 出品的 Kotlin Android 开发库1.5 万 Star 后已归档JetBrains 推出过一个叫 Anko 的 Kotlin 库专门给 Android 开发用的GitHub 上拿了 1.5 万多个 Star。这库的目标很明确把 Android 开发里那些繁琐的 Java 写法用 Kotlin 的方式简化掉。不过得先说清楚Anko 已经被 JetBrains 官方标记为废弃项目了。但这并不妨碍我们看看它当年做了什么以及它对后来 Android 开发工具的影响。Anko 到底解决了什么问题早年用 Java 写 Android到处都是样板代码。写个布局要 XML处理数据库要用 Cursor 手动解析连显示个 Toast 都要好几行。Anko 就是来干这活的它把 Android SDK 里那些重复劳动全部用 Kotlin 语法糖包了一层。整个库分成四个模块各管一摊事。四个模块分工明确Anko Commons是个工具箱Intent 跳转、Dialog 弹窗、日志输出、资源获取这些日常操作全包了。以前写个跳转要 new Intent 再 setClass 再 startActivity现在一行搞定。Anko Layouts是最核心的部分。它用 DSL 的方式让你直接用 Kotlin 代码写布局彻底告别 XML。写出来的代码长这样verticalLayout{valnameeditText()button(Say Hello){onClick{toast(Hello,${name.text}!)}}}这段代码创建了一个 LinearLayout里面放了一个输入框和一个按钮按钮点击后弹 Toast。整个过程没有一行 XML全是 Kotlin 代码。而且 onClick 接受 suspend lambda可以直接在里面写异步逻辑。Anko SQLite解决的是数据库操作的痛点。Android 原生的 SQLite 查询要手动管理 Cursor写起来又臭又长。Anko 提供了一套 DSL查询、解析结果都简化了。比如按条件查用户列表几行代码就完事。Anko Coroutines基于 kotlinx.coroutines 库提供了 bg() 函数把代码丢到线程池执行还有 asReference() 防止协程里的对象泄漏。为什么会被废弃Anko 的 Layouts DSL 思路是对的但实现方式有局限。它在运行时生成 View 对象性能和功能都比不上后来 Google 推出的 Jetpack Compose。Compose 用声明式 UI 的方式重新定义了 Android 布局开发直接把 Anko Layouts 的路给堵死了。JetBrains 自己也参与了 Compose 的推动所以废弃 Anko 是顺理成章的事。Commons 模块里的很多工具函数在 Kotlin Android Extensions 和 AndroidX 里也都有了替代方案。现在还能用吗技术上能用但不建议在新项目里引入。项目已经 archived不会再有更新和 bug 修复。如果你在维护老项目碰到了 Anko 代码建议逐步迁移到 Jetpack Compose 或者 AndroidX 的标准 API。对于新项目Jetpack Compose 是官方推荐的 UI 框架Kotlin 协程也已经是 Android 异步编程的标准方案。Anko 想解决的问题现在都有了更好的答案。它留下的东西Anko 虽然退场了但它验证了一件事Kotlin 写 Android 确实比 Java 爽。DSL 写布局、协程处理异步、扩展函数简化 API这些理念后来都成了 Android 开发的主流做法。从这个角度看Anko 更像是一块试验田。它把 Kotlin 的优势在 Android 场景里跑通了证明了可行性然后由 Google 和 JetBrains 用更成熟的方式实现了出来。对于理解 Android 开发工具的演进Anko 是一个有意思的历史节点。ns 用更成熟的方式实现了出来。对于理解 Android 开发工具的演进Anko 是一个有意思的历史节点。