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ù)庫模塊,下面將做一一說明。
xUtils3注解模塊在實際開發(fā)中的使用如下:
1)Activity的注解的使用如下:

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

3)為按鈕設(shè)置點擊事件
方法必須私有限定,
方法參數(shù)形式必須和type對應(yīng)的Listener接口一致.
注解參數(shù)value支持數(shù)組: value={id1, id2, id3}

強調(diào):使用注解模塊一定要注意初始化視圖注解框架。
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)上傳文件

5)下載文件

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

2)xUtils3 bind方法:

3)xUtils3 loadDrawable方法:

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

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 ??
1)UI異步執(zhí)行

2)UI同步執(zhí)行

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