导航:首页 > 操作系统 > android注解使用

android注解使用

发布时间:2023-09-10 15:25:40

android中的常用框架有哪些

Afinal框架
主要有四大模块:
(1) 数据库模块:android中的orm框架,使用了线程池对sqlite进行操作。
(2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。
(3) 网络模块:通过httpclient进行封装http数据请求,支持ajax方式加载,支持下载、上传文件功能。
(4) 图片缓存模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。
FinalBitmap可以配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。FinalBitmap的内存管理使用lru算法
没有使用弱引用(android2.3以后google已经不建议使用弱引用,android2.3后强行回收软引用和弱引用,详情查看android官方文档),
更好的管理bitmap内存。FinalBitmap可以自定义下载器,用来扩展其他协议显示网络图片,比如ftp等。同时可以自定义bitmap显示器,
在imageview显示图片的时候播放动画等(默认是渐变动画显示)。

xUtils框架

主要有四大模块:
(1) 数据库模块:android中的orm框架,一行代码就可以进行增删改查;
支持事务,默认关闭;
可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
支持绑定外键,保存实体时外键关联实体自动保存或更新;
自动加载外键关联实体,支持延时加载;
支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。
(2) 注解模块:android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
(3) 网络模块:支持同步,异步方式的请求;
支持大文件上传,上传大文件不会oom;
支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。
(4) 图片缓存模块:加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
支持加载网络图片和本地图片;
内存管理使用lru算法,更好的管理bitmap内存;
可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...

❷ Android-ARouter原理解析

ARouter使用的是APT(Annotation Processing Tool)注解处理器,通过给对应的类添加注解,在编译器动态生成对应的路由表文件。这里以分析ARouter的RouteProcessor。在ARouter的使用配置上,需要给base库配置

然后给每个组件都配置annotationProcessor,如果使用kotlin,则使用kapt
接着给每个组件都配置上下面的内容:

这个配置主要是通过这个annotationProcessorOptions获取到key为AROUTER_MODULE_NAME的值,这个值其实就是mole的name,这个的作用就是作为一个Root文件的命名的,因为一个mole中可能会有多个group,而多个group归属于一个Root,而ARouter的做法就是将一个mole作为一个Root。

Element 是一个接口,它只在编译期存在和Type有区别,表示程序的一个元素,可以是package,class,interface,method,成员变量,函数参数,泛型类型等。

它的子类包括ExecutableElement, PackageElement, Parameterizable, QualifiedNameable, TypeElement, TypeParameterElement, VariableElement。

Element的子类介绍:

ExecutableElement:表示类或者接口中的方法,构造函数或者初始化器。

PackageElement :表示包程序元素

TypeELement:表示一个类或者接口元素

TypeParameterElement:表示类,接口,方法的泛型类型例如T。

VariableElement:表示字段,枚举常量,方法或者构造函数参数,局部变量,资源变量或者异常参数。

Element只在编译期可见

asType(): 返回TypeMirror,TypeMirror是元素的类型信息,包括包名,类(或方法,或参数)名/类型。TypeMirror的子类有ArrayType, DeclaredType, DisjunctiveType, ErrorType, ExecutableType, NoType, NullType, PrimitiveType, ReferenceType, TypeVariable, WildcardType ,getKind可以获取类型。

equals(Object obj): 比较两个Element利用equals方法。

getAnnotation(Class<A> annotationType): 传入注解可以获取该元素上的所有注解。

getAnnotationMirrors(): 获该元素上的注解类型。

getEnclosedElements(): 获取该元素上的直接子元素,类似一个类中有VariableElement。

getEnclosingElement(): 获取该元素的父元素,如果是PackageElement则返回null,如果是TypeElement则返回PackageElement,如果是TypeParameterElement则返回泛型Element

getKind():返回值为ElementKind,通过ElementKind可以知道是那种element,具体就是Element的那些子类。

getModifiers(): 获取修饰该元素的访问修饰符,public,private。

getSimpleName(): 获取元素名,不带包名,如果是变量,获取的就是变量名,如果是定义了int age,获取到的name就是age。如果是TypeElement返回的就是类名。

getQualifiedName():获取类的全限定名,Element没有这个方法它的子类有,例如TypeElement,得到的就是类的全类名(包名)。

具体的注解处理流程如下:

首先,看下属性注解处理器生成的文件示例:

AutowiredProcessor这个注解处理器的目的,就是通过这个注解处理器给对应的类中的属性进行赋值的操作。
AutowiredProcessor注解处理器流程:

❸ Android注解@TargetApi和@RequiresApi什么意思

这个是android带的lint工具提示的,lint官方的说法是 Improving Your Code with lint,应该是帮助提升代码的 ,如果不想用的话,可以右键点工程,然后在android tools 中,选择 clear lint marker 就没有这个错误了

阅读全文

与android注解使用相关的资料

热点内容
如何制作服务器商店 浏览:730
压缩气管阀门 浏览:457
pdf推文 浏览:353
69程序员 浏览:577
阿里云服务器镜像如何迁移到腾讯 浏览:979
安卓如何显示日期在状态栏 浏览:803
cadsplt这个命令用不了 浏览:465
安卓夸克怎么取消监管 浏览:662
pdf怎么裁剪图片 浏览:436
黑上宏命令 浏览:644
mac解压压缩包有密码 浏览:704
命令与征服知乎 浏览:561
小时代pdf 浏览:221
化工设备第三版答案pdf 浏览:465
防火卷帘控制器单片机程序 浏览:16
rdlcpdf 浏览:109
链表实现快速排序python 浏览:590
php输出命令 浏览:987
d站app叫什么名字 浏览:172
oppor系列如何解除应用加密 浏览:602