当前位置: 首页 > news >正文

Anko:JetBrains 出品的 Kotlin Android 开发库,1.5 万 Star 后已归档

文章目录

  • Anko:JetBrains 出品的 Kotlin Android 开发库,1.5 万 Star 后已归档
    • Anko 到底解决了什么问题
    • 四个模块分工明确
    • 为什么会被废弃
    • 现在还能用吗
    • 它留下的东西

Anko:JetBrains 出品的 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{valname=editText()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 是一个有意思的历史节点。

http://www.jsqmd.com/news/1083298/

相关文章:

  • 实测|一站式AI聚合平台,多场景需求全覆盖
  • Vibe Coding 三个月,面试官问我数据库索引原理,我沉默了
  • 低成本入门无线电平台-【开元】Mini-SDR
  • 谷歌收录搜索不到的原因:搜全标题都在100页外的80%真相
  • ElasticSearch基础操作
  • AMD Ryzen调试工具SMUDebugTool:解决处理器性能问题的完整指南
  • Beyond Compare 5 本地化密钥生成与激活完整指南
  • 微信记录手滑删除不用急!五大官方免费恢复教程,无备份也有兜底办法
  • IPv4 地址不是一串数字:从公网、私网到广播地址的完整地图
  • 三星手机通讯录迁移至 OPPO 手机完整方法
  • 如何永久掌控你的微信记忆:WeChatMsg本地数据管理终极指南
  • AI智能摄像头与智能门铃中的RV1106BG3:1TOPS瑞芯微视觉SoC应用解析
  • 手机号逆向查询QQ号:深度解析TEA加密算法的技术实现与架构设计
  • 人工智能和计算机科学与技术哪个更值得报
  • 告别枯燥词汇练习:词达人自动化助手如何帮你每周节省2小时
  • 企业GEO技术合规应用解析
  • 基于W55MH32的物联网RGB灯控系统设计与实现
  • 从电脑到互联网:IPv4 地址在真实通信中如何工作
  • 058、生成器即协程:yield、yield from、send、throw、close 的渐进理解
  • AI翻唱革命:零门槛打造专业级AI歌手,你的音乐创作新纪元
  • 2026商用AI快速开发工具对比:从低代码到Agent平台,企业该如何选型?
  • 用「继承来的祖传遗留系统」比喻,聊聊原生家庭的拧巴怎么消化
  • Windows系统下res-downloader证书配置:从零到精通的完整指南
  • 当“全灾种、大应急”遇上“虚拟仿真+AI”,应急救援人才智慧实训的时代飞跃
  • 什么是token?
  • 1.6 数据库相关面试题:
  • 【Springboot毕设全套源码+文档】基于SpringBoot的智能健身跟踪系统的设计与实现(丰富项目+远程调试+讲解+定制)
  • 【Springboot毕设全套源码+文档】基于SpringBoot的社区互助系统设计与实现(丰富项目+远程调试+讲解+定制)
  • 一线观察:长期体验长春知名汽车贴膜,看到的行业真实情况
  • 市面上知名的AI智能体软件哪家强