xUtils简介
?xUtils 包含了很多实用的android工具。
?xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...
?xUitls最低兼容android 2.2 (api level 8)
?目前xUtils主要有四大模块:
?
o DbUtils模块:
?android中的orm框架,一行代码就可以进行增删改查;
?支持事务,默认关闭;
?可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
?支持绑定外键,保存实体时外键关联实体自动保存或更新;
?自动加载外键关联实体,支持延时加载;
?支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。
o ViewUtils模块:
?android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
?新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
?目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。
o HttpUtils模块:
?支持同步,异步方式的请求;
?支持大文件上传,上传大文件不会oom;
?支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
?下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
?返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。
o BitmapUtils模块:
?加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
?支持加载网络图片和本地图片;
?内存管理使用lru算法,更好的管理bitmap内存;
?可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...
使用xUtils快速开发框架需要有以下权限:
o完全注解方式就可以进行UI绑定和事件绑定。o无需findViewById和setClickListener等。
普通get方法
使用HttpUtils上传文件或者提交数据到服务器(post方法)
使用HttpUtils下载文件:
o支持断点续传,随时停止下载任务,开始任务
输出日志LogUtils
o Email:wyouflf@https://www.doczj.com/doc/ac18077836.html,, wyouflf@https://www.doczj.com/doc/ac18077836.html,
近来有一些其他网站盗用本博客内容,希望尊重作者。如有问题请留言,转载注明出处。https://www.doczj.com/doc/ac18077836.html,/rain_butterfly/article/details/37812371参考:https://www.doczj.com/doc/ac18077836.html,/p/xutils
/
t
}
}
}
Android 最火框架XUtils之注解机制详解
[java]view plaincopyprint?
1.@ViewInject(R.id.tabhost)
2. private FragmentTabHost mTabHost;
3.@ViewInject(R.id.big_img)
4. private ImageView bigImage;
可能好多人一看就说这是个what,其实这是Java core里面的内容,做JavaEE的应该很熟悉,像著名的spring框架就用了大量的注解。那到底什么是注解呢?下面详细讲解一下Java注解:
注解(Annotation)为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后某个时刻方便地使用这些数据(通过解析注解来使用这些数据),常见的作用有以下几种:
?生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等
?跟踪代码依赖性,实现替代配置文件功能。比较常见的是spring
2.5 开始的基于注解配置。作用就是减少配置。现在的框架基
本都使用了这种配置来减少配置文件的数量。也是?在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。
包https://www.doczj.com/doc/ac18077836.html,ng.annotation 中包含所有定义自定义注解所需用到
的原注解和接口。如接口https://www.doczj.com/doc/ac18077836.html,ng.annotation.Annotation是所有注解继承的接口,并且是自动继承,不需要定义时指定,类似于所有类都自动继承Object。
Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在
https://www.doczj.com/doc/ac18077836.html,ng.annotation 包中。
Annotation类型里面的参数该怎么设定:
第一,只能用public或默认(default)这两个访问权修饰.例如,String value();这里把方法设为defaul默认类型.
第二,参数成员只能用基本类型
byte,short,char,int,long,float,double,boolean八种基本数据类型
和 String,Enum,Class,annotations等数据类型,以及这一些类型的
数组.例如,String value();这里的参数成员就为String.
第三,如果只有一个参数成员,最好把参数名称设为"value",后加小括号.
1、元注解
元注解是指注解的注解。包括@Retention @Target
@Document @Inherited四种。
1.1、@Retention: 定义注解的保留策略
@Retention(RetentionPolicy.SOURCE)//注解仅存在于源码中,在class字节码文件中不包含
@Retention(RetentionPolicy.CLASS)// 默认的保留策略,注解会在class字节码文件中存在,但运行时无法得
@Retention(RetentionPolicy.RUNTIME)// 注解会在class字
节码文件中存在,在运行时可以通过反射获取到
1.2、@Target:定义注解的作用目标
其定义的源码为:
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Target {
ElementType[] value();
}
@Target(ElementType.TYPE) //接口、类、枚举、注解
@Target(ElementType.FIELD) //字段、枚举的常量
@Target(ElementType.METHOD) //方法
@Target(ElementType.PARAMETER) //方法参数
@Target(ElementType.CONSTRUCTOR) //构造函数
@Target(ElementType.LOCAL_VARIABLE)//局部变量
@Target(ElementType.ANNOTATION_TYPE)//注解
@Target(ElementType.PACKAGE) ///包
其中的@interface是一个关键字,在设计annotations的时候必须把一个类型定义为@interface,而不能用class或interface关键字,由以上的源码可以知道,他的elementType 可以有多个,一个注解可以为类的,方法的,字段的等等。
1.3、@Document:说明该注解将被包含在javadoc中
1.4、@Inherited:说明子类可以继承父类中的该注解