Android xUtils3完全解析 是時候來了解xUtils3了

1.先來認識一下xUtils3

1)xUtils3簡介

xUtils是目前功能比較完善的一個Android開源框架,最近又發(fā)布了xUtil3.0,在增加新功能的同時又提高了框架的性能,下面來看看官方(https://github.com/wyouflf/xUtils3)對xUtils3的介紹:

xUtils包含了很多實用的android工具;

xUtils支持超大文件(超過2G)上傳,更全面的http請求協(xié)議支持(11種謂詞),擁有更加靈活的ORM,更多的事件注解支持且不受混淆影響;

xUtils 最低兼容Android 4.0 (api level 14);

xUtils3變化較多所以建立了新的項目不在舊版(github.com/wyouflf/xUtils)上繼續(xù)維護, 相對于舊版本:

HTTP實現(xiàn)替換HttpClient為UrlConnection, 自動解析回調(diào)泛型, 更安全的斷點續(xù)傳策略;

支持標準的Cookie策略, 區(qū)分domain, path;

事件注解去除不常用的功能, 提高性能;

數(shù)據(jù)庫api簡化提高性能, 達到和greenDao一致的性能;

圖片綁定支持gif(受系統(tǒng)兼容性影響, 部分gif文件只能靜態(tài)顯示), webp; 支持圓角, 圓形, 方形等裁剪, 支持自動旋轉(zhuǎn)。

2)在我們的項目中快速配置xUtils3

xUtils3的配置十分的簡單:

2-1)使用Gradle構(gòu)建時添加一下依賴即可

compile'org.xutils:xutils:3.3.36'

如果使用eclipse可以點擊下面鏈接下載aar文件, 然后用zip解壓,取出jar包和so文件。

Github下載:https://github.com/wyouflf/xUtils3

JCenter下載:http://jcenter.bintray.com/org/xutils/xutils/

Maven下載1:http://central.maven.org/maven2/org/xutils/xutils/

Maven下載2:http://repo1.maven.org/maven2/org/xutils/xutils/

2-2)加入權(quán)限


2-3)創(chuàng)建Application


xUtils3主要包含注解模塊、網(wǎng)絡(luò)模塊、圖片模塊和數(shù)據(jù)庫模塊,下面將做一一說明。

2.xUtils3注解模塊的使用

xUtils3注解模塊在實際開發(fā)中的使用如下:

1)Activity的注解的使用如下:


2)Fragment的注解的使用如下:


3)為按鈕設(shè)置點擊事件

方法必須私有限定,

方法參數(shù)形式必須和type對應(yīng)的Listener接口一致.

注解參數(shù)value支持數(shù)組: value={id1, id2, id3}


強調(diào):使用注解模塊一定要注意初始化視圖注解框架。

3.xUtils3網(wǎng)絡(luò)模塊的使用

xUtils3網(wǎng)絡(luò)模塊大大方便了在實際開發(fā)中網(wǎng)絡(luò)模塊的開發(fā),xUtils3網(wǎng)絡(luò)模塊大致包括GET請求、POST請求、如何使用其他請求方式、上傳文件、下載文件、使用緩存等功能,下面將做一一說明:

1)GET請求


下面我們來看下帶有緩存的GET請求,POST請求和其他請求方式類似,后面就不再贅述:

帶有緩存的GET請求:


上面onCache方法中需要注意的幾點:

a)如果服務(wù)端沒有返回過期時間,參考params.setCacheMaxAge(maxAge)方法。

b)客戶端會根據(jù)服務(wù)端返回的header中max-age或expires來確定本地緩存是否給onCache方法。如果服務(wù)端沒有返回max-age或expires,那么緩存將一直保存,除非這里自己定義了返回false,那么xUtils將請求新數(shù)據(jù), 來覆蓋它。

c)如果信任該緩存返回true,將不再請求網(wǎng)絡(luò)。返回false繼續(xù)請求網(wǎng)絡(luò),但會在請求頭中加上ETag,Last-Modified等信息。如果服務(wù)端返回304,則表示數(shù)據(jù)沒有更新,不繼續(xù)加載數(shù)據(jù)。

2)POST請求


3)其他網(wǎng)絡(luò)請求方式


4)上傳文件


setMultipart設(shè)置以表單方式上傳文件

5)下載文件


4.xUtils3圖片模塊的使用

xUtils3圖片模塊,重點在于加載圖片的4個bind方法,loadDrawable與loadFIle用法和ImageOptions用法,需多加練習(xí)。

1)xUtils3 ImageOptions:

12

2)xUtils3 bind方法:

3)xUtils3 loadDrawable方法:


4)xUtils3 loadFile方法:

當我們通過bind()或者loadDrawable()方法加載了一張圖片后,它會保存到本地文件中,那當我需要這張圖片時,就可以通過loadFile()方法進行查找。


4.xUtils3數(shù)據(jù)庫模塊的使用

1)初始化配置和創(chuàng)建實體類

首先在項目Application中進行初始化配置DaoConfig(與onCreate方法同級目錄下):


然后創(chuàng)建數(shù)據(jù)庫表ChildInfo的實體類:


之后就能進行創(chuàng)建和刪除數(shù)據(jù)庫的操作了:

2)創(chuàng)建數(shù)據(jù)庫


3)刪除數(shù)據(jù)庫

db.dropDb();

4)刪除表

db.dropTable(ChildInfo.class);

5)新增表中的數(shù)據(jù)

ChildInfo childInfo =newChildInfo("zhangsan123");db.save(childInfo);

6)刪除表中的數(shù)據(jù)

//第一種寫法:

db.delete(ChildInfo.class);//child_info表中數(shù)據(jù)將被全部刪除

//第二種寫法,添加刪除條件:

WhereBuilder b = WhereBuilder.b();

b.and("id",">",2);//構(gòu)造修改的條件

b.and("id","<",4);

db.delete(ChildInfo.class, b);

7)修改表中的數(shù)據(jù)


8)查詢表中的數(shù)據(jù)


具體查看api ??

5.xUtils3提供的其他一些方法

1)UI異步執(zhí)行


2)UI同步執(zhí)行


具體參考github地址:https://github.com/wyouflf/xUtils3

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,285評論 6 342
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,694評論 19 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,323評論 25 708
  • Xutils3.0技術(shù)分享1.這個技術(shù)分享的目的1.首先要讓大家了解Xutil3.0是什么Xtuils3.0的前身...
    wodezhuanshu閱讀 3,383評論 5 9
  • 消失好久的我終于回來了,一轉(zhuǎn)眼已經(jīng)2017年啦, 大家都還好嗎? 公微已經(jīng)6 個多月沒有更新了, 衷心感謝所有沒有...
    豬小醍閱讀 6,634評論 0 2

友情鏈接更多精彩內(nèi)容