xUtil的基本用法

一  xUtils简介
  ① xUtils 包含了很多实用的android工具。
  ② xUtils 支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...
  ③ xUitls 最低兼容android 2.2 (api level 8)

 

二 xUtils权限

  ① 联网权限
  ② 外部存储写入权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

 

三  混淆注意事项

  ①  添加Android默认混淆配置${sdk.dir}/tools/proguard/proguard-android.txt
  ② 不要混淆xUtils中的注解类型,添加混淆配置:-keep class * extends java.lang.annotation.Annotation { *; }
  ③  对使用DbUtils模块持久化的实体类不要混淆,或者注解所有表和列名称@Table(name="xxx"),@Id(column="xxx"),@Column(column="xxx"),@Foreign(column="xxx",foreign="xxx");

 


四  目前xUtils主要有四大模块

(1)DbUtils数据库相关工具类

   功能:

    ① android中的orm框架,一行代码就可以进行增删改查;
    ② 支持事务,默认关闭;
    ③ 可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);
    ④ 支持绑定外键,保存实体时外键关联实体自动保存或更新;
    ⑤ 自动加载外键关联实体,支持延时加载;
    ⑥ 支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。

    使用步骤:

     ① 编写实体类

          数据库实体定义

         *  利用@Table定义数据库实体对应的表
         *  利用@Id标识主键
         *  利用@Column标记数据库表的列字段
         *  利用@Finder查找多个实体关系

 

package com.android.itlx.xutilstest.bean;

import com.lidroid.xutils.db.annotation.Column;
import com.lidroid.xutils.db.annotation.Id;
import com.lidroid.xutils.db.annotation.Table;

/**
 * Author:李雄
 * Date: 2016/3/11 0011
 * Email:LiXiong0713@163.com
 */

@Table(name = "person")
public class Person {
    @Id
    private long _id;
    /**
     * 姓名
     */
    @Column
    private String name;
    /**
     * 年龄
     */
    @Column
    private int age;

    /**
     * 地址
     */
    @Column
    private String address;

    public long get_id() {
        return _id;
    }

    public void set_id(long _id) {
        this._id = _id;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "_id=" + _id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", address='" + address + '\'' +
                '}';
    }
}

 

 

 

     ② DbUtils的创建

   *  参数一:上下文;参数二:数据库的名称

 

DbUtils.create(this,"PerosonInfo.db");

 

     ②添加记录

 

try {
    Person person = new Person();
    person.setName("张三");
    person.setAge(23);
    person.setAddress("北京");
    db.save(person);
} catch (DbException e) {
    e.printStackTrace();
}

 

  ③ 查询记录

 

        * 查找数据库中id值为1的对象

 

try {
   Person entity = db.findById(Person.class,"1");
    System.out.println("entity = " + entity.toString());
} catch (DbException e) {
    e.printStackTrace();
}

      * 查询数据库所有的对象

 

 

try {
    List<Person> list = db.findAll(Person.class);//通过类型查找
    System.out.println("list = " + list);
} catch (DbException e) {
    e.printStackTrace();
}

 

 

 

 

(2)ViewUtils模块:
  > * android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;
  > * 新的事件绑定方式,使用混淆工具混淆后仍可正常工作;
  > * 目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。

(3) HttpUtils模块:
  > * 支持同步,异步方式的请求;
  > * 支持大文件上传,上传大文件不会oom;
  > * 支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;
  > * 下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;
  > * 返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。

(5)BitmapUtils模块:
  > * 加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;
  > * 支持加载网络图片和本地图片;
  > * 内存管理使用lru算法,更好的管理bitmap内存;
  > * 可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值