文章目录
  1. 1. 简介
  2. 2. 特点
  3. 3. 导入
  4. 4. 使用

Android开发中,很多时候,我们都需要写一大段一大段的代码用来初始化控件,设置监听,一点都不简洁,这个时候,我们可以使一些强大的工具来帮助我们。

简介

AnroidAnnotaions](https://github.com/excilys/androidannotations/wiki)是一款可以快速实现Android开发动态注入的框架,可以帮助我们实现精简的代码,它的目标就是"Fast Android Development.Easy maintatinance”。

特点

  • 依赖注入:实现布局、视图、系统服务、资源的注入
  • 简化线程模型:以注释方法来完成UiThread和BackgroudThread
  • 事件绑定:可以不再使用丑陋的匿名监听器
  • REST client:创建客户端接口
  • 简单快速:只需要50kb,没有任何性能上的问题

导入

  • AnroidStudio在build.gradle文件中添加
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//Copy Begin---从这里开始复制----
apply plugin: 'android-apt'//添加使用apt插件
def AAVersion = '3.0.1'//这里设置AA的版本号
buildscript {
repositories {
mavenCentral()
}
dependencies {
//这里设置gradle的版本
classpath 'com.android.tools.build:gradle:0.12.2'
//这里设置apt的版本
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.+'
}
}
repositories {
mavenCentral()
mavenLocal()
}
apt {
arguments {
androidManifestFile variant.processResources.manifestFile
resourcePackageName 'com.houny.androidannotations'//TODO 注意这里要设置当前项目的包名
}

...

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//Copy Begin-------从这里开始复制--------------
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
//Copy End--------一直复制到这里-------------
}
...
  • Eclipse ADT
    下载androidannotations-xxx.jarandroidannotations-api-xxx.jar
    分别将api-xxx.jar放入libs目录下,xxx.jar放入compile-libs目录下
    然后打开Project|Properties|Java Compiler,选中Enable annontation processing
    查看Annontation Process|Factory Path点击Add JARsxxx.jar添加进来

    新的ADT里面Java Compiler已经被精简到,可以下载Java Developement Tools

使用

AnroidAninotaions的使用很简单,只需要使用几个自定义注解就可以完成注入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// 布局
@EActivity(R.layout.main)
public class MainActivity extends Activity {

// 控件
@ViewById(R.id.myInput);
EditText myInput;

@ViewById(R.id.myTextView);
TextView textView;

// 资源
@AnimationRes
Animation fadIn;

// 点击监听
@click
void myButton() {
textView.setText("Hello!");
}

// 后台线程
@Background
void background(){
//...
uiThread();
}

@UiThread
void uiThread(){
//...
}
}
文章目录
  1. 1. 简介
  2. 2. 特点
  3. 3. 导入
  4. 4. 使用