AndroidAnnotations是用来解决开发中繁琐的初始化组件的一个开源的框架,开发中只需要配置一下相应的注解标签就可以了,其他的工作AndroidAnnotations框架都会帮
AndroidAnnotations是用来解决开发中繁琐的初始化组件的一个开源的框架,开发中只需要配置一下相应的注解标签就可以了,其他的工作AndroidAnnotations框架都会帮我们解决,是我们开发中没有必要重复的写一些没什么技术含量的代码,相信使用过这个框架的开发人员都比较喜欢这个框架。
使用AndoridAnnotations框架的理由:
1. 提高了开发的效率
2. 代码看起来更加整洁
3. 方便统一管理
4. 提高了代码的复用性
AndroidAnnotations框架官方网址:
AndroidAnnotations框架jar包:https://github.com/excilys/androidannotations/wiki/Download
其实,AndroidAnnotations框架只适合于开发一些中小型的app,比较复杂的一些项目建议不要使用这个框架,因为可能会导致项目开发中应用程序超支的情况,(一般一个应用程序最多支持65536个方法)如果超出了就会导致打包成的apk没法安装到手机中使用。
下载下来的jar包:
配置方法:
1. 将androidannotations-api-3.3.1.jar放入libs目录中
如图:
2. 在项目中新建一个compile-libs文件夹,并将androidannotations-3.3.1.jar包copy到该文件夹中
如图:
3. 右键项目–》properties
4. 选择Java Compiler项,将level设置为1.6
如图:
5. 将Annotations Processin项中的第一项勾上
如图:
6.将Factory Path项的第一项勾上,并且点击Add JARs按钮
如图:
7. 找到该项目之前创建的compile-libs文件中添加的jar包,OK
如图:
8. 配置完成,可以在项目中测试一下配置是否成功,出现如下图所示可用的注解,说明已经配置成功,可以愉快的敲代码了。
如图:
AndroidAnnotations框架的使用方法:
1.当使用@EActivity、@EService这些类注解标签的时候,要注意在 Manifest.xml文件中配置(类名+下划线)的name。
如图:
2.下面举几个简单的例子说明一下AndroidAnnotations框架中注解标签的使用的方法:
如图:
这里的@Click注解标签要注意在声明玩该button1之后才能正确使用。
3.一些其他注解标签的使用方法其实都差不多,使用都非常简单,具体可以查看官方网站(https://github.com/excilys/androidannotations/wiki/AvailableAnnotations)中列出了所有的标签的使用方法进行学习使用。
4.在使用注解标签中需要注意的一些常见的问题:
编译错误:
1.要注册同名Activity_(原因在下面进行具体的解释)
2.View的修饰符是不能使用private修饰(原因在下面进行具体的解释)
3.用注解注释的方法是不能使用private修饰的方法(原因在下面进行具体的解释)
AndoridAnnotations框架的原理:
其实使用注解标签并不是java编译器就识别这些注解标签,只不过AndroidAnnotations框架通过注解标签帮我们自动生成了那些没什么技术含量的代码,标签本身并不能做什么事情,只不过标签背后通过代码进行了处理。
一.生成代码的分析
其实我们可以看到该框架自动生成的代码,方法:
从这些自动生成的代码就可以懂得了前边在使用中注意的原因:
1.自动生成的类名中就是:自己创建的Activity类名+下划线构成的。所以在Manifest.xml文件中要将name改成加下划线的形式的名称。
2.View的修饰符和用注解注释的方法是不能使用private的原因是:如果使用了private来修饰,那么其他的类就没法使用这些属性和方法,所以Annotations框架就没法自动生成相应的代码了。
如果要了解Annotations框架是如何自动生成代码的:
1.要下载Annotations框架的源码地址:https://github.com/excilys/androidannotations
2.分析MainActivity_中主要的三个类:
如图:
打开路径:E:\源码包\androidannotations-develop\AndroidAnnotations\androidannotations-api\src\main\java\org\androidannotations\api\view
二、java注解的处理:
1.分为两种方式:
1.反射处理注解
2.编译器编译时处理注解(Annotations使用了这种方式):
使用到两个重要的东西:
1.AbstractProcessor类(用来获取注解标签,然后对相应的标签进行相应的处理)
2.javax.lang.model.element包(对注解标签的描述,说明哪些是类上边配置的注解标签,哪些是成员变量上配置的注解标签,哪些是方法上边配置的注解标签)
注解的核心AbstractProcessor类的源码打开地址:
E:\源码包\androidannotations-develop\AndroidAnnotations\androidannotations\src\main\java\org\androidannotations下的AndroidAnnotationProcessor类