为什么现在最新的安卓app,搜不到ViewBinding 关键词了?
你的观察力非常敏锐如果你在看最近一两年的全新 Android 项目或前沿教程确实越来越少看到 ViewBinding 这个词了。这是因为 Android 的 UI 开发刚刚经历了一场历史性的跨时代大革命根本原因只有四个字Jetpack Compose。下面我为你揭秘为什么 ViewBinding 正在逐渐“消失”1. 彻底消灭 XML 的大杀器Jetpack Compose在过去的十几年里Android 写界面的标准流程是写 XML 布局文件 - 在 Java/Kotlin 中获取控件通过 findViewById 或 ViewBinding- 修改控件属性如 setText。但是Google 推出了下一代 UI 框架Jetpack Compose完全用 Kotlin 编写。它的核心思想是**“声明式 UI”**这意味着再也没有 XML 布局文件了整个界面全部用 Kotlin 代码直接画出来。既然没有了 XML自然就不需要把 XML 和代码“绑定”在一起了所以 ViewBinding 就彻底失去了存在的意义。2. 代码长什么样为什么不需要绑定了在传统的 ViewBinding 模式下命令式你需要拿到控件的引用去“命令”它更新// 旧时代ViewBinding 模式 binding.textView.text 新名字而在 Jetpack Compose 时代声明式你根本拿不到任何 UI 控件的引用。UI 只是数据的映射数据变了UI 自动刷新// 新时代Jetpack Compose 模式 (纯 Kotlin) Composable fun UserProfile(userName: String) { // 直接描述 UI 应该长什么样不需要绑定不需要 setText Text(text userName, fontSize 24.sp) }3. 最新的“现代 Android 黄金架构”已经大换血还记得我在上一个回答总结的黄金架构吗随着 Compose 的普及最新的技术栈已经悄然升级这也是为什么你搜不到 ViewBinding甚至 LiveData 也渐渐少了的原因领域过去传统 XML 时代现在最新的Compose 时代界面编写XML 布局文件Jetpack Compose(纯 Kotlin 函数)控件获取ViewBinding / findViewById不需要了(UI 根据状态自动重绘)UI 响应数据LiveDataStateFlow(Kotlin 协程专属的数据流)业务逻辑ViewModelViewModel (屹立不倒依然是核心)异步任务线程 / RxJavaKotlin 协程4. 那么ViewBinding 已经被淘汰了吗并没有它只是退居二线了。对于全新的现代项目如果是最近刚立项的纯 Kotlin 项目大家基本都会首选 Jetpack Compose所以你看不到 ViewBinding。对于老项目或者还在用 Java 开发的项目Jetpack Compose完全不支持 Java。所以如果你还在用 Java 开发或者公司有一个运行了五六年的庞大旧项目里面全是 XML那么ViewBinding 依然是处理 XML 布局的最优解、天花板技术。总结来说你搜不到 ViewBinding是因为最新潮的技术圈已经全面拥抱了没有 XML 的Jetpack Compose。但作为一名正在使用 Java 探索 Android 的开发者你只要还在写 XML 布局ViewBinding 就是你目前能用到的最好、最安全的技术完全可以放心大胆地用