Android全能开源项目xUtils3开发教程、简单封装一、简介
xUtils是一个比较全能的开源项目了, 包含了orm, http(s), image, view注解, 但依然很轻量级(246K), 并且特性强大, 方便扩展。这是xUtils3 的 github地址
xUtils3 的一些特性
xUtils支持超大文件(超过2G)上传,更全面的http请求协议支持(11种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响;
xUtils3变化较多所以建立了新的项目不在旧版(github.com/wyouflf/xUtils)上继续维护, 相对于旧版本:
(1)HTTP实现替换HttpClient为UrlConnection, 自动解析回调泛型, 更安全的断点续传策略;
(2)支持标准的Cookie策略, 区分domain, path;
(3)事件注解去除不常用的功能, 提高性能;
(4)数据库api简化提高性能, 达到和greenDao一致的性能;
(5)图片绑定支持gif(受系统兼容性影响, 部分gif文件只能静态显示), webp; 支持圆角, 圆形, 方形等裁剪, 支持自动旋转。
二、环境搭建
在build.gradle中加入如下依赖,编写文章时,最新版本为3.5.0,可以到github或者maven仓库查询最新版本。
//gradle4.4之前
compile 'org.xutils:xutils:3.5.0'
//gradle4.4之后
implementation 'org.xutils:xutils:3.5.0'
需要的权限
配置
在AndroidManifest文件中注册TRApplicaction
三、注解模块的使用
xUtils3自动注入注解 真的是很好用,这样就不用一个个findById去注入组件了。
Activity中注解的使用
Fragment中注解的使用
绑定事件
/**
* 1. 方法必须私有限定,
* 2. 方法参数形式必须和type对应的Listener接口一致.
* 3. 注解参数value支持数组: value=
**/
@Event()
privatevoidonClick(View v){ ....}
四、网络请求
由于Android6.0版本之后将HttpClient替换为UrlConnection,所以修改老项目的时候一定要注意。
这里我们简单封装一下, 请求参数通过map传过来,然后通过回调返回请求结果。
发起网络请求
五、绑定图片
ImageOptions 绑定图片设置,可以设置圆形图片,一般在头像中用的比较多
官方给的一些案例
六、异步执行任务
注意这是在子线程操作,如果操作ui,要使用handler
x.task().run(newRunnable() {
@Overridepublicvoidrun() {//异步任务}});
x.task().post(newRunnable() {@Overridepublicvoidrun() {//同步代码}});
七、ORM 数据库操作
操作sqlite数据库,也有其他的库,这个我比较喜欢,可能习惯了吧,还支持多条件查询等,属性也支持注解。
Application中进行初始化配置DaoConfig
数据库操作 CRUD
// User类在最底下
DbManager db = x.getDb(daoConfig);db.dropDb(); // 删除数据库
db.dropTable(User.class); // 删除表
db.save(new User("nelson")); //新增数据
db.delete(User.class); //mtb_user表中数据将被全部删除
//条件删除:
WhereBuilder b = WhereBuilder.b();b.and("id",">",2);
//构造修改的条件
b.and("id","
//第一种写法:
ChildInfo first = db.findFirst(ChildInfo.class);
first.setcName("zhansan2");
db.update(first,"c_name"); //c_name:表中的字段名
//第二种写法:
WhereBuilder b = WhereBuilder.b();
b.and("id","=",first.getId()); //构造修改的条件
KeyValue name = new KeyValue("c_name","zhansan3");
db.update(ChildInfo.class,b,name);
//第三种写法:
first.setcName("zhansan4");db.saveOrUpdate(first);
复杂提交查询
User实体类
如果想复制代码可以进入博客或者简书复制,关注公众号,点击博客菜单,会回复博客和简书地址。或者回复关键字博客
编辑:nelson
本文出自「码农笔录」
如果你有好的文章想推荐,请私信后台!
领取专属 10元无门槛券
私享最新 技术干货