android注解處理技術APT


  APT(Annotation Processing Tool)是java的注解處理技術,它對源代碼文件進行檢測找出其中的Annotation,根據注解和注解處理器和相應的apt自動生成代碼。 Annotation處理器在處理Annotation時可以根據源文件中的Annotation生成額外的源文件和其它的文件(文件具體內容由Annotation處理器的編寫者決定)。

1、什么是APT?

  android-apt和annotationProcessor功能是一樣的,都是apt的實現,前者比較早,后者是google官方開發的內置在gradle里的apt

APT的處理要素
  注解處理器(AbstractProcess)+ 代碼處理(javaPoet)+ 處理器注冊(AutoService)+ apt

使用APT來處理annotation的流程
  1.  定義注解(如@automain)
  2.  定義注解處理器,自定義需要生成代碼
  3.  使用處理器
  4.  APT自動完成生成新的java文件。

 

2、annotationProcessor和android-apt
annotationProcessor是APT工具中的一種,是google開發的內置框架,不需要引入,可以直接在build.gradle文件中使用,如下

1 dependencies {
2   annotationProcessor project(':xx')
3   annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
4 }

android-apt是由一位開發者自己開發的apt框架,隨着Android Gradle 插件 2.2 版本的發布,Android Gradle 插件提供了名為 annotationProcessor 的功能來完全代替 android-apt ,自此android-apt 作者在官網發表聲明最新的Android Gradle插件現在已經支持annotationProcessor,並警告和或阻止說不在更新android-apt ,並推薦大家使用 Android 官方插件annotationProcessor。

android-apt的使用

添加android-apt到Project下的build.gradle中
//配置在Project下的build.gradle中

 1 buildscript {
 2     repositories {
 3         mavenCentral()
 4     }
 5 
 6     dependencies {
 7         //替換成最新的 gradle版本
 8         classpath 'com.android.tools.build:gradle:1.3.0'
 9         //替換成最新android-apt版本
10         classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
11     }
12 
13 }                

在Module中build.gradle的配置

通常在使用的時候,使用apt聲明注解用到的庫文件。項目依賴可能分為多個部分。例如Dagger有兩個組件Dagger-compiler和dagger。dagger-commpiler僅用於編譯時,運行時必需使用dagger。

//配置到Module下的build.gradle中

1 apply plugin: 'com.android.application'
2 apply plugin: 'com.neenbedankt.android-apt'
3 
4 dependencies {
5     apt 'com.squareup.dagger:dagger-compiler:1.1.0'
6     compile 'com.squareup.dagger:dagger:1.1.0'
7 }

基本使用就是上面這兩點,想用annotationProcessor替代android-apt。刪除和替換相應部分即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM