Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )

【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )

作者头像
韩曙亮
发布于 2023-03-29 04:42:50
发布于 2023-03-29 04:42:50
41200
代码可运行
举报
运行总次数:0
代码可运行

文章目录

一、编译时注解和注解处理器


上一篇博客 【Android APT】编译时技术 ( ButterKnife 原理分析 ) 简单介绍了下编译时技术 , 并简单分析了 ButterKnife 的实现原理 ;

使用 ButterKnife 时会依赖两个库 ,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dependencies {
    implementation 'com.jakewharton:butterknife:10.2.3'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3'
}

其中 com.jakewharton:butterknife:10.2.3 是 编译时注解 , com.jakewharton:butterknife-compiler:10.2.3 是 注解处理器 ;

当程序构建编译时, 处理依赖库依赖 , 发现依赖了 annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.3' 注解处理器 , 然后到 com.jakewharton:butterknife-compiler:10.2.3 注解处理器中查找相关的注解处理的类 ;

使用编译时技术 APT 时 , 一般将 注解 拆分成两个部分 , 一部分是使用的 编译时注解 , 另一部分是 注解处理器 ;

二、创建 编译时注解 和 注解处理器


使用 Android Studio 开发 Android 项目时 , 使用到编译时技术 , 都要用到 编译时注解 和 注解处理器 ;

编译时注解 和 注解处理器 一般都创建为 Java or Kotlin Library 类型的 Module ;

右键点击工程名 , 选择 " New / Module " 选项 ,

在弹出的 " Create New Module " 对话框中 , 这里选择 Module 的类型为 Java or Kotlin Library ;

设置依赖库名称 , 注意语言选择 Java ; 暂时不涉及 Kotlin 注解 ;

使用上述相同的方式 , 创建 annotation 编译时注解 依赖库 和 annotation-compiler 注解处理器 依赖库 , 这两个 Module 的类型都是 " Java or Kotlin Library " ;

三、添加 编译时注解 和 注解处理器 依赖库依赖


在主应用 " app " 中 , 依赖上述 annotation 编译时注解 依赖库 和 annotation-compiler 注解处理器 依赖库 ;

右键点击应用 , 选择 " Open Modules Settings " 选项 ,

在 " Project Structure " 对话框中选择 " Dependencies " 选项卡 , 选择主应用 " app " , 点击 " + " 按钮 , 选择添加 " Module Dependency " 依赖库 ,

将 annotation 编译时注解 依赖库 和 annotation-compiler 注解处理器 依赖库 添加到主应用 " app " 的依赖中 ;

添加依赖完成 ;

点击 " OK " 按钮后 , 在 build.gradle 构建脚本中自动生成的依赖 :

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dependencies {
    implementation project(path: ':annotation-compiler')
    implementation project(path: ':annotation')
}

注意 : 对于 annotation-compiler 注解处理器 依赖库 不能使用 implementation , 必须使用 annotationProcessor ,

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dependencies {
    annotationProcessor project(path: ':annotation-compiler')
    implementation project(path: ':annotation')
}

四、博客资源


博客源码 :

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-05-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Android APT】编译时技术 ( 开发编译时注解 )
上一篇博客 【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 ) 中创建并配置了 annotation 编译时注解 依赖库 和 annotation-compiler 注解处理器 依赖库 ;
韩曙亮
2023/03/29
2990
【Android APT】编译时技术 ( 开发编译时注解 )
【Android APT】编译时技术 ( ButterKnife 原理分析 )
APT ( Annotation Processing Tool ) 注解处理工具 ;
韩曙亮
2023/03/29
5350
【Kotlin】Kotlin 中使用 ButterKnife ( 仅用于适配 Kotlin 语言 | 不推荐新项目使用 )
1 . 情况说明 : ButterKnife 已经停止维护 , 新项目直接使用 视图绑定 , 数据绑定 进行开发 , 本篇博客只是为了适配老版本项目 ;
韩曙亮
2023/03/27
2.5K0
【Android APT】注解处理器 ( 注解标注 与 初始化方法 )
上一篇博客 【Android APT】编译时技术 ( 开发编译时注解 ) 中 开发 了 annotation 编译时注解 依赖库 , 很简单 , 只有一个 BindView 注解 ;
韩曙亮
2023/03/29
3690
【Android 组件化】路由组件 ( 路由组件结构 )
在之前博客 【Android 组件化】使用 Gradle 实现组件化 ( 组件 / 集成模式下的 Library Module 开发 ) 的组件化项目中 , 可能涉及到跨 Module 的调用 , 如在 library1 模块中打开 library2 模块中的 Activity 界面 , 或调用其它 Module 中的功能 ;
韩曙亮
2023/03/29
4650
【Android 组件化】路由组件 ( 路由组件结构 )
关于Android Studio升级4.1版本后ButterKnife插件不兼容的问题
最近,Android studio升级版本至4.1后出现Android Studio闪退问题,提示错误如下:
xiangzhihong
2022/11/30
2.7K0
Android Gradle 2.3.3 升级 3.0.1 小记录
和尚因为种种原因需要升级 Android Gradle,Gradle > 3.0 时默认支持 Java 8;每次大版本升级都会涉及很多内容,和尚尽可能慎重,但还是简单记录一下升级过程中遇到的问题;
阿策小和尚
2019/12/30
6500
Android Gradle 2.3.3 升级 3.0.1 小记录
我常用的Android库
如果编程语言为Kotlin, 替换 annotationProcessor 为 kapt
码客说
2019/10/22
1K0
github 项目地址
https://github.com/JessYanCoding/AndroidAutoSize
全栈程序员站长
2022/09/13
5810
Android 注解与注解处理器简述
  在Android开发中,注解是非常多的,如果不去了解,你可能感受不到注解的存在,一些框架用到的注解是很多的,例如Butterknife、Retrofit、Dagger2、Hilt、ViewBinding、DataBinding等等,下面简单的来了解一下注解。
晨曦_LLW
2022/10/24
7170
Android 注解与注解处理器简述
【Android APT】注解处理器 ( 根据注解生成 Java 代码 )
Android APT 学习进阶路径 : 推荐按照顺序阅读 , 从零基础到开发简易 ButterKnife 注解框架的学习路径 ;
韩曙亮
2023/03/29
2890
【Android 组件化】路由组件 ( 注解处理器获取被注解的节点 )
在 【Android 组件化】路由组件 ( 路由组件结构 ) 博客中介绍了组件化中的 " 路由组件 " , 分为 " 自定义注解模块 " , " 注解处理器模块 " , " 依赖库模块 " 3 个模块 ;
韩曙亮
2023/03/29
3830
【Android 组件化】路由组件 ( 注解处理器获取被注解的节点 )
Android集成Dagger2
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' //添加apt命令
longzeqiu
2019/08/14
6780
一个C#开发者用Java搭建Android框架的心路历程
Java的框架文章太难写了,因为他引用了太多框架,而没一个框架都有很繁琐的配置,把每个框架都写一遍,就等于写书了;所以本文只能大体上介绍,但大体上介绍,感觉读起来又没有生气,总之非常难写。
Kiba518
2021/11/02
7160
XPage页面框架使用详解
视频介绍 //v.qq.com/txp/iframe/player.html?origin=https%3A%2F%2Fmp.weixin.qq.com&containerId=js_tx_vide
xuexiangjys
2022/04/18
1.2K0
【Android APT】注解处理器 ( Element 注解节点相关操作 )
Android APT 学习进阶路径 : 推荐按照顺序阅读 , 从零基础到开发简易 ButterKnife 注解框架的学习路径 ;
韩曙亮
2023/03/29
2480
【Android APT】注解处理器 ( Element 注解节点相关操作 )
使用编译时注解简单实现类似 ButterKnife 的效果
本文介绍了如何通过自定义APT生成Java代码,并分析了生成代码的过程和具体实现。同时,本文还提供了关于自定义APT的代码示例和具体应用场景的详细说明。
张拭心 shixinzhang
2018/01/05
1.6K0
使用编译时注解简单实现类似 ButterKnife 的效果
【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ④ ( 使用路由实现组件间通信 | 引入 ARoute 框架 | Gradle 构建脚本优化问题 )
在上一篇博客 【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ① ( 组件化简介 | 创建组件化应用 | 依赖库模块 / 应用模块 切换设置 ) 最后提到了 在 Gradle 构建脚本中 , 需要实现 依赖库模块 / 应用模块 切换设置 , 主要涉及如下两个方面 :
韩曙亮
2023/03/30
7540
【Android Gradle 插件】组件化中的 Gradle 构建脚本实现 ④ ( 使用路由实现组件间通信 | 引入 ARoute 框架 | Gradle 构建脚本优化问题 )
推荐阅读
相关推荐
【Android APT】编译时技术 ( 开发编译时注解 )
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档