Kotlin Android Extensions Gradle 插件最初由 JetBrains 开发,并于 2017 年发布。这个插件为 Android 开发提供了两项非常优秀的特性,分别是 Synthetics 和 Parcelize。
其中 Synthetic 可以让开发者减少对findViewById
的使用,用 kotlinx.android.synthetic
绑定就能实现;而 Parcelize 可以让开发者用@Parcelize
的注解就能实现 Parcelable 而不用写模板代码。
虽然 Synthetic 具备不错的优点,但 Synthetic 同时也存在诸如污染全局命名空间、不能暴露可空性信息和仅支持 Kotlin 代码的缺点。
也正是因为这些缺点,后来 Android 团队发布了 View Binding 用于取代 findViewById
。View Binding 是一个允许开发者更容易编写与视图交互的代码的功能。一旦在一个模块中启用了 View Binding,它会为该模块中的每个 XML 布局文件生成一个绑定类。绑定类的一个实例包含对所有在相应布局中拥有 ID 的视图的直接引用。
为了支持更好的解决方案,在 2020 年 11 月,Android 开发团队就宣布 Android Kotlin Extensions Gradle 插件已经被废弃,并建议开发者从项目中删除这个插件。为了开发者有更多的时间来完成迁移,Android 开发团队还延长了支持的时间。
如今,Android 团队为迁移设定了一个最后期限:该插件将在 Kotlin 1.8 中被彻底移除,该版本预计将于 2022 年底发布。届时,如果你的项目仍然依赖于这个插件,开发者将无法更新到最新的 Kotlin 版本。
开发者无需担心该插件所包含的另一个功能 Parcelize,Parcelize 现在可以在独立的 kotlin-parcelize 插件中使用,功能上没有发生任何变化。