特点:
(1) 依赖注入:包括 view,extras,系统服务,资源等等
(2) 简单的线程模型,通过 annotation 表示方法运行在 ui 线程还是后台线程
(3) 事件绑定:通过 annotation 表示 view 的响应事件,不用在写内部类
(4) REST 客户端:定义客户端接口,自动生成 REST 请求的实现
(5) 没有你想象的复杂:AndroidAnnotations 只是在在编译时生成相应子类
(6) 不影响应用性能:仅 50kb,在编译时完成,不会对运行时有性能影响。
配置:
添加apt插件:
buildscript {
....
dependencies {
classpath 'com.android.tools.build:gradle:2.1.2'
//添加apt的路径
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
在app的build文件的头部,添加如下:
apply plugin: 'android-apt'
def AAVersion = '3.2+'
配置插件:
//配置apt插件
apt {
arguments {
androidManifestFile variant.outputs[0]?.processResources?.manifestFile
// androidManifestFile variant.outputs[0].processResources.manifestFile
//必须填你自己的包名 可 参见 applicationId "com.ecric.http"
resourcePackageName 'com.ecric.http'
}
}
以及如下代码:
android {
....
packagingOptions {
exclude 'META-INF/maven/org.androidannotations/androidannotations-api/pom.xml'
exclude 'META-INF/maven/org.androidannotations/androidannotations-api/pom.properties'
exclude 'androidannotations-api.properties'
}
}
dependencies节点添加如下:
apt "org.androidannotations:androidannotations:$AAVersion"
compile "org.androidannotations:androidannotations-api:$AAVersion"
使用:
注解Activity:
@EActivity(R.layout.activity_main)
public class MainActivity extends AppCompatActivity {
}
使用EActivity注解过的Activity,会自动生成一个Activity_,例如上面会生成的MainActivity_,
当然在使用的时候必须使用MainActivity_而不是MainActivity,如在启动时,配置文件如下:
<activity android:name=".MainActivity_">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
更多注解参考github官方:
https://github.com/androidannotations/androidannotations/wiki/AvailableAnnotations
混淆
############====================androidannotations====================##############
-dontwarn org.androidannotations.**
-keep class org.androidannotations.** {*;}
##处理注释属性
#-keepattributes *Annotation*
#
-dontwarn org.springframework.**
#-keep class org.springframework.**{*;}