手把手教你在 AGP 8.+ 上发布插件和代码插桩

💡 原文中文,约17300字,阅读约需41分钟。
📝

内容提要

本篇文章介绍了在AGP 8.+上发布插件和代码插桩的方法。首先,需要创建一个插件module,并在libs.versions文件中添加相关依赖。然后,通过创建插件实现类并在脚本中声明插件,让Gradle知道我们定义了一个插件。接下来,介绍了如何将插件发布到Maven库中,包括增加maven-publish插件和定义发布的maven库。最后,讲解了如何使用AGP的新接口进行代码插桩,包括创建插桩实现类和注册插桩。

🎯

关键要点

  • 本篇文章介绍了在AGP 8.+上发布插件和代码插桩的方法。
  • 首先,需要创建一个插件module,并在libs.versions文件中添加相关依赖。
  • 通过创建插件实现类并在脚本中声明插件,让Gradle知道我们定义了一个插件。
  • 介绍了如何将插件发布到Maven库中,包括增加maven-publish插件和定义发布的maven库。
  • 讲解了如何使用AGP的新接口进行代码插桩,包括创建插桩实现类和注册插桩。
  • 插件开发需求依靠AGP和ASM库,使用的版本分别是8.3.1和9.6。
  • 定义插件的实现类需要继承org.gradle.api.Plugin,范形参数的类型是org.gradle.api.Project。
  • 通过java-gradle-plugin插件简化插件标记过程。
  • 发布插件到Maven库需要增加maven-publish插件,并定义发布的maven库。
  • 定义MavenPublication来描述上传的库,包括groupId、artifactId和version。
  • 上传源码文件是可选的,上传后可以让使用者查看源码实现。
  • 增加库的依赖信息以避免ClassNotFound异常。
  • 在settings.kts中增加本地的maven库房以使用插件。
  • 使用AGP的新接口来完成插桩,主要处理Android APP模块。
  • 通过project.extensions.getByType获取Android的Extension,遍历变体信息进行插桩。
  • 实现自定义的ClassVisitor来处理插桩逻辑,简化了插桩过程。
  • 新版AGP插桩接口简化了增量编译和全量编译的处理,使用Kotlin DSL编写Gradle构建脚本更人性化。
🏷️

标签

➡️

继续阅读