## xUtils3简介
* xUtils 包含了很多实用的android工具.
* xUtils 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...
* xUtils 最低兼容Android 4.0 (api level 14). ([Android 2.3?](https://github.com/wyouflf/xUtils3/issues/8))
* xUtils3变化较多所以建立了新的项目不在旧版(github.com/wyouflf/xUtils)上继续维护, 相对于旧版本:
1. HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的断点续传策略.
2. 支持标准的Cookie策略, 区分domain, path...
3. 事件注解去除不常用的功能, 提高性能.
4. 数据库api简化提高性能, 达到和greenDao一致的性能.
5. 图片绑定支持gif(受系统兼容性影响, 部分gif文件只能静态显示), webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转...
#### 使用Gradle构建时添加一下依赖即可:
```javascript
compile 'org.xutils:xutils:3.3.22'
```
##### 如果使用eclipse可以 [点击这里下载aar文件](http://dl.bintray.com/wyouflf/maven/org/xutils/xutils/), 然后用zip解压, 取出jar包和so文件.
##### 混淆配置参考示例项目sample的配置
#### 常见问题:
1. 更好的管理图片缓存: https://github.com/wyouflf/xUtils3/issues/149
2. Cookie的使用: https://github.com/wyouflf/xUtils3/issues/125
3. 关于query参数? http请求可以通过 header, url, body(请求体)传参; query参数是url中问号(?)后面的参数.
4. 关于body参数? body参数只有PUT, POST, PATCH, DELETE(老版本RFC2616文档没有明确指出它是否支持, 所以暂时支持)请求支持.
5. 自定义Http参数对象和结果解析: https://github.com/wyouflf/xUtils3/issues/191
#### 使用前配置
##### 需要的权限
```xml
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
```
##### 初始化
```java
// 在application的onCreate中初始化
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
x.Ext.setDebug(true); // 是否输出debug日志
...
}
```
### 使用@Event事件注解(@ContentView, @ViewInject等更多示例参考sample项目)
```java
/**
* 1. 方法必须私有限定,
* 2. 方法参数形式必须和type对应的Listener接口一致.
* 3. 注解参数value支持数组: value={id1, id2, id3}
* 4. 其它参数说明见{@link org.xutils.event.annotation.Event}类的说明.
**/
@Event(value = R.id.btn_test_baidu1,
type = View.OnClickListener.class/*可选参数, 默认是View.OnClickListener.class*/)
private void onTestBaidu1Click(View view) {
...
}
```
### 访问网络(更多示例参考sample项目)
```java
/**
* 自定义实体参数类请参考:
* 请求注解 {@link org.xutils.http.annotation.HttpRequest}
* 请求注解处理模板接口 {@link org.xutils.http.app.ParamsBuilder}
*
* 需要自定义类型作为callback的泛型时, 参考:
* 响应注解 {@link org.xutils.http.annotation.HttpResponse}
* 响应注解处理模板接口 {@link org.xutils.http.app.ResponseParser}
*
* 示例: 查看 org.xutils.sample.http 包里的代码
*/
BaiduParams params = new BaiduParams();
params.wd = "xUtils";
// 有上传文件时使用multipart表单, 否则上传原始文件流.
// params.setMultipart(true);
// 上传文件方式 1
// params.uploadFile = new File("/sdcard/test.txt");
// 上传文件方式 2
// params.addBodyParameter("uploadFile", new File("/sdcard/test.txt"));
Callback.Cancelable cancelable
= x.http().get(params,
/**
* 1. callback的泛型:
* callback参数默认支持的泛型类型参见{@link org.xutils.http.loader.LoaderFactory},
* 例如: 指定泛型为File则可实现文件下载, 使用params.setSaveFilePath(path)指定文件保存的全路径.
* 默认支持断点续传(采用了文件锁和尾端校验续传文件的一致性).
* 其他常用类型可以自己在LoaderFactory中注册,
* 也可以使用{@link org.xutils.http.annotation.HttpResponse}
* 将注解HttpResponse加到自定义返回值类型上, 实现自定义ResponseParser接口来统一转换.
* 如果返回值是json形式, 那么利用第三方的json工具将十分容易定义自己的ResponseParser.
* 如示例代码{@link org.xutils.sample.http.BaiduResponse}, 可直接使用BaiduResponse作为
* callback的泛型.
*
* 2. callback的组合:
* 可以用基类或接口组合个种类的Callback, 见{@link org.xutils.common.Callback}.
* 例如:
* a. 组合使用CacheCallback将使请求检测缓存或将结果存入缓存(仅GET请求生效).
* b. 组合使用PrepareCallback的prepare方法将为callback提供一次后台执行耗时任务的机会,
* 然后将结果给onCache或onSuccess.
* c. 组合使用ProgressCallback将提供进度回调.
* ...(可参考{@link org.xutils.image.ImageLoader}
* 或 示例代码中的 {@link org.xutils.sample.download.DownloadCallback})
*
* 3. 请求过程拦截或记录日志: 参考 {@link org.xutils.http.app.RequestTracker}
*
* 4. 请求Header获取: 参考 {@link org.xutils.http.app.RequestInterceptListener}
*
* 5. 其他(线程池, 超时, 重定向, 重试, 代理等): 参考 {@link org.xutils.http.RequestParams}
*
**/
new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
Toast.makeText(x.app(), result, Toast.LENGTH_LONG).show();
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
//Toast.makeText(x.app(), ex.getMessage(), Toast.LENGTH_LONG).show();
if (ex instanceof HttpException) { // 网络错误
HttpException httpEx = (HttpException) ex;
int responseCode = httpEx.getCode();
String responseMsg = httpEx.getMessage();
String errorResult = httpEx.getResult();
// ...
} else { // 其他错误
// ...
}
Toast.makeText(x.app(), ex.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(CancelledException cex) {
Toast.makeText(x.app(), "cancelled", Toast.LENGTH_LONG).show();
}
@Override
public void onFinished() {
}
});
// cancelable.cancel(); // 取消请求
```
#### 如果你只需要一个简单的版本:
```java
@Event(value = R.id.btn_test_baidu2)
private void onTestBaidu2Click(View view) {
RequestParams params = new RequestParams("https://www.baidu.com/s");
params.setSslSocketFactory(...); // 设置ssl
params.addQueryStringParameter("wd", "xUtils");
x.http().get(params, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
Toast.makeText(x.app(), result, Toast.LENGTH_LONG).show();
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
Toast.makeText(x.app(), ex.getMessage(), Toast.LENGTH_LONG).show();
}
@Override
public void onCancelled(CancelledException cex) {
Toast.makeText(x.app(), "cancelled", Toast.LENGTH_LONG).show();
}
@Override
public void onFinished() {
}
});
}
````
#### 带有缓存的请求示例:
```java
BaiduParams params = new BaiduParams();
params.wd = "xUtils";
// 默认缓存存活时间, 单位:毫秒.(如果服务没有返回有效的max-age或Expires)
params.setCacheMaxAge(1000 * 60);
Callback.Cancelable cancelable
// 使用CacheCallback, xUtils将为该请求缓存数据.
= x.http().get(p
没有合适的资源?快使用搜索试试~ 我知道了~
xUtils3-master
共186个文件
java:146个
xml:17个
png:5个
需积分: 10 17 下载量 66 浏览量
2016-03-20
09:10:09
上传
评论
收藏 5.45MB ZIP 举报
温馨提示
xUtils 包含了很多实用的android工具. xUtils 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响... xUtils 最低兼容Android 4.0 (api level 14) xUtils3变化较多所以建立了新的项目不在旧版xUtils上继续维护, 相对于旧版本: HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的断点续传策略. 支持标准的Cookie策略, 区分domain, path... 事件注解去除不常用的功能, 提高性能. 数据库api简化提高性能, 达到和greenDao一致的性能. 图片绑定支持gif(受系统兼容性影响, 部分gif文件只能静态显示), webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转...
资源推荐
资源详情
资源评论
收起资源包目录
xUtils3-master (186个子文件)
gradlew.bat 2KB
test.gif 4.66MB
.gitignore 530B
.gitignore 530B
.gitignore 530B
build.gradle 3KB
build.gradle 1KB
build.gradle 642B
settings.gradle 29B
gradlew 5KB
HttpTask.java 22KB
ImageDecoder.java 22KB
ImageLoader.java 21KB
DbManagerImpl.java 18KB
BaseParams.java 17KB
HttpRequest.java 15KB
LruDiskCache.java 13KB
FileLoader.java 13KB
ImageOptions.java 12KB
HttpFragment.java 12KB
RequestParams.java 11KB
LruCache.java 11KB
SqlInfoBuilder.java 10KB
WhereBuilder.java 9KB
MultipartBody.java 9KB
DbCookieStore.java 9KB
TaskProxy.java 8KB
DbFragment.java 8KB
ViewInjectorImpl.java 7KB
DownloadActivity.java 7KB
EventListenerManager.java 7KB
DbManager.java 7KB
ImageFragment.java 7KB
DbModelSelector.java 7KB
ProcessLock.java 7KB
Selector.java 6KB
TaskControllerImpl.java 6KB
DownloadManager.java 6KB
AsyncDrawable.java 6KB
DownloadCallback.java 5KB
ColumnConverterFactory.java 5KB
ColumnUtils.java 5KB
ColumnEntity.java 5KB
ObjectLoader.java 5KB
DbBase.java 4KB
IOUtil.java 4KB
x.java 4KB
PriorityExecutor.java 4KB
SqlInfo.java 4KB
DoubleKeyValueMap.java 4KB
RequestParamsHelper.java 4KB
LogUtil.java 4KB
AssetsRequest.java 4KB
DefaultParamsBuilder.java 3KB
AbsTask.java 3KB
FileUtil.java 3KB
TableEntity.java 3KB
CookieEntity.java 3KB
UriRequest.java 3KB
ParameterizedTypeUtil.java 3KB
HttpManagerImpl.java 3KB
WebPFactory.java 3KB
MainActivity.java 3KB
LocalFileRequest.java 3KB
InputStreamBody.java 3KB
UriRequestFactory.java 3KB
Child.java 3KB
ImageManagerImpl.java 3KB
DownloadInfo.java 3KB
GifDrawable.java 2KB
TableUtils.java 2KB
JsonDemoParamsBuilder.java 2KB
DbModel.java 2KB
HttpRetryHandler.java 2KB
DiskCacheEntity.java 2KB
HttpException.java 2KB
RequestTrackerWrapper.java 2KB
MD5.java 2KB
Parent.java 2KB
DbConfigs.java 2KB
HttpManager.java 2KB
Callback.java 2KB
JsonResponseParser.java 2KB
CursorUtils.java 2KB
ImageAnimationHelper.java 2KB
UrlEncodedParamsBody.java 2KB
Loader.java 2KB
LoaderFactory.java 2KB
JSONObjectLoader.java 2KB
JSONArrayLoader.java 2KB
BigImageActivity.java 2KB
TaskController.java 1KB
StringLoader.java 1KB
KeyValue.java 1KB
FileBody.java 1KB
DiskCacheFile.java 1KB
Event.java 1KB
BaseException.java 1KB
ParamsBuilder.java 1KB
HttpRequest.java 1KB
共 186 条
- 1
- 2
资源评论
电火扇
- 粉丝: 4
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功