如何在android studio 中使用自定义注解处理器

如题所述

在android studio 中使用自定义注解处理器的方法是利用第三方gradle插件android-apt来实现的。
说明:Android Studio原本是不支持注解处理器的,这个插件可以自动的帮程序员为生成的代码创建目录, 让生成的代码编译到APK里面去, 而且它还可以让最终编译出来的APK里面不包含注解处理器本身的代码, 因为这部分代码只是编译的时候需要用来生成代码, 最终运行的时候是不需要的。
1、使用这个插件很简单, 首先在项目顶层的build.gradle文件中添加依赖项, 如下:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
2、然后在app的build.gradle里面添加插件的引用以及需要依赖哪些库, 如下:
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
...
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:22.2.1'
compile 'la.dahuo:command:1.0.0'
apt 'la.dahuo:command-codegen:1.0.0'
}

注意上面的apt ‘la.dahuo:command-codegen:1.0.0’, 这里表示引用一个注解处理器的库, 这个库的代码最终不会进入编译出来的APK里面。
3、使用注解生成代码, 上面出现的库la.dahuo:command。la.dahuo:command-codegen就是我根据命令设计模式(Command Design Pattern)写的一个注解库, 它用来让我们方便的生成代码, 看下用法:
定义Command
@CommandDef("commandName")
public class MyCommand extends Command {

@Param
String paramStr;

@Param("paramIntName")
int paramInt;

@Override
public void execute() {
// do something with params
}
}
温馨提示:答案为网友推荐,仅供参考
相似回答