Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發實例 >> Android手機衛士(五):xutils說明與下載方法使用

Android手機衛士(五):xutils說明與下載方法使用

編輯:Android開發實例

  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. }
  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved