xUtils简介

  • xUtils 包含了很多实用的android工具。

  • xUtils 最初源于Afinal框架,进行了大量重构,使得xUtils支持大文件上传,更全面的http请求协议支持(10种谓词),拥有更加灵活的ORM,更多的事件注解支持且不受混淆影响...

  • xUitls最低兼容android 2.2 (api level 8)

  目前xUtils主要有四大模块:

  DbUtils模块:

  • android中的orm框架,一行代码就可以进行增删改查;

  • 支持事务,默认关闭;

  • 可通过注解自定义表名,列名,外键,唯一性约束,NOT NULL约束,CHECK约束等(需要混淆的时候请注解表名和列名);

  • 支持绑定外键,保存实体时外键关联实体自动保存或更新;

  • 自动加载外键关联实体,支持延时加载;

  • 支持链式表达查询,更直观的查询语义,参考下面的介绍或sample中的例子。

  ViewUtils模块:

  • android中的ioc框架,完全注解方式就可以进行UI,资源和事件绑定;

  • 新的事件绑定方式,使用混淆工具混淆后仍可正常工作;

  • 目前支持常用的20种事件绑定,参见ViewCommonEventListener类和包com.lidroid.xutils.view.annotation.event。

  HttpUtils模块:

  • 支持同步,异步方式的请求;

  • 支持大文件上传,上传大文件不会oom;

  • 支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT请求;

  • 下载支持301/302重定向,支持设置是否根据Content-Disposition重命名下载的文件;

  • 返回文本内容的请求(默认只启用了GET请求)支持缓存,可设置默认过期时间和针对当前请求的过期时间。

  BitmapUtils模块:

  • 加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象;

  • 支持加载网络图片和本地图片;

  • 内存管理使用lru算法,更好的管理bitmap内存;

  • 可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等...

  xutils使用过程

  1,导入xutils的jar包

  2,添加xutils需要使用的权限

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

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

  3,获取HttpUtils对象,下载指定链接地址的apk

  4,HttpUtils对象调用download(下载链接地址,下载后放置文件的路径,下载过程中方法的回调

  onStart()

  onloading()

  onSuccesd()

  onFail()

  5,下载apk后的安装过程,

  本文实现手机卫士的从服务器端下载apk更新本机的方法

Java代码
  1. protected void downloadApk() {  
  2.     //apk下载链接地址,放置apk的所在路径  
  3.     //1,判断sd卡是否可用  
  4.     if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {  
  5.         //2,获取sd路径  
  6.         String path = Environment.getExternalStorageDirectory().getAbsolutePath()  
  7.                 + File.separator + "mobilesafe.apk";  
  8.         //3,发送请求,获取apk,并且放置到指定路径  
  9.         HttpUtils httpUtils = new HttpUtils();  
  10.         //4,发送请求,传递参数(下载地址,下载应用放置位置)  
  11.         httpUtils.download(mDownloadUrl, path, new RequestCallBack<File>() {  
  12.               
  13.             @Override  
  14.             public void onSuccess(ResponseInfo<File> responseInfo) {  
  15.                 //下载成功(下载过后的放置在sd卡中apk)  
  16.                 Log.i(tag, "下载成功");  
  17.                 File file = responseInfo.result;  
  18.             }  
  19.               
  20.             @Override  
  21.             public void onFailure(HttpException arg0, String arg1) {  
  22.                 // 下载失败  
  23.                 Log.i(tag, "下载失败");  
  24.             }  
  25.             //刚刚开始下载方法  
  26.             @Override  
  27.             public void onStart() {  
  28.                 Log.i(tag, "刚刚开始下载");  
  29.                 super.onStart();  
  30.             }  
  31.             //下载过程中的方法(下载apk总大小,当前的下载位置,是否正在下载)  
  32.             @Override  
  33.             public void onLoading(long total, long current,  
  34.                     boolean isUploading) {  
  35.                 Log.i(tag, "下载中........");  
  36.                 Log.i(tag, "total = " + total);  
  37.                 Log.i(tag, "current = " + current);  
  38.                 super.onLoading(total, current, isUploading);  
  39.             }  
  40.               
  41.         });  
  42.           
  43.     }  
  44. }
本文发布:Android开发网
本文地址:http://www.jizhuomi.com/android/example/635.html
2016年12月13日
发布:鸡啄米 分类:Android开发实例 浏览: 评论:0