- xUtils 包含了很多实用的android工具.
- xUtils 支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响…
- xUtils 最低兼容Android 4.0 (api level 14). (Android 2.3?)
- xUtils3变化较多所以建立了新的项目不在旧版(github.com/wyouflf/xUtils)上继续维护, 相对于旧版本:
- HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的断点续传策略.
- 支持标准的Cookie策略, 区分domain, path…
- 事件注解去除不常用的功能, 提高性能.
- 数据库api简化提高性能, 达到和greenDao一致的性能.
- 图片绑定支持gif(受系统兼容性影响, 部分gif文件只能静态显示), webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转…
使用Gradle构建时添加一下依赖即可:
1 | compile 'org.xutils:xutils:3.3.4' |
如果使用eclipse可以 点击这里下载aar文件, 然后用zip解压, 取出jar包和so文件.
混淆配置参考示例项目sample的配置
常见问题:
- 更好的管理图片缓存: https://github.com/wyouflf/xUtils3/issues/149
- Cookie的使用: https://github.com/wyouflf/xUtils3/issues/125
- 关于query参数? http请求可以通过 header, url, body(请求体)传参; query参数是url中问号(?)后面的参数.
- 关于body参数? body参数只有PUT, POST, PATCH, DELETE(老版本RFC2616文档没有明确指出它是否支持, 所以暂时支持)请求支持.
使用前配置
需要的权限
1 | <uses-permission android:name="android.permission.INTERNET" /> |
初始化
1 | // 在application的onCreate中初始化 |
使用@Event事件注解(@ContentView, @ViewInject等更多示例参考sample项目)
1 | /** |
访问网络(更多示例参考sample项目)
1 | /** |
如果你只需要一个简单的版本:
1 |
|
使用数据库(更多示例参考sample项目)
1 | Parent test = db.selector(Parent.class).where("id", "in", new int[]{1, 3, 6}).findFirst(); |
绑定图片(更多示例参考sample项目)
1 | x.image().bind(imageView, url, imageOptions); |
关于libwebpbackport
- 部分4.x的机型对webp格式的支持仍然有问题, 需要借助webp.
- webp来自:https://github.com/webmproject/libwebp
- webpbackport来自:https://github.com/alexey-pelykh/webp-android-backport
- 其中为webpbackport添加了nativeDecodeFile的实现, 并修复在Android 5.0以上系统存在bug:
1
2
3
4
5
6
7
8// android_backport_webp.cpp
// 修改:
jclassRef = jniEnv->FindClass(...);
// 为:
jclass temp = jniEnv->FindClass(...);
jclassRef = (jclass)jniEnv->NewGlobalRef(temp);
jniEnv->DeleteLocalRef(temp);
// 其他jni代码修改见: http://my.oschina.net/u/1171837/blog/533153