【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )
文章目錄
- 一、編譯時注解和注解處理器
- 二、創建 編譯時注解 和 注解處理器
- 三、添加 編譯時注解 和 注解處理器 依賴庫依賴
- 四、博客資源
一、編譯時注解和注解處理器
上一篇博客 【Android APT】編譯時技術 ( ButterKnife 原理分析 ) 簡單介紹了下編譯時技術 , 并簡單分析了 ButterKnife 的實現原理 ;
使用 ButterKnife 時會依賴兩個庫 ,
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 構建腳本中自動生成的依賴 :
dependencies {implementation project(path: ':annotation-compiler')implementation project(path: ':annotation') }注意 : 對于 annotation-compiler 注解處理器 依賴庫 不能使用 implementation , 必須使用 annotationProcessor ,
dependencies {annotationProcessor project(path: ':annotation-compiler')implementation project(path: ':annotation') }四、博客資源
博客源碼 :
-
GitHub : https://github.com/han1202012/APT
-
CSDN : https://download.csdn.net/download/han1202012/18883878
總結
以上是生活随笔為你收集整理的【Android APT】编译时技术 ( 编译时注解 和 注解处理器 依赖库 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Android APT】编译时技术 (
- 下一篇: 【Android APT】编译时技术 (