日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

【转】Android 最火的快速开发框架XUtils

發(fā)布時(shí)間:2023/12/19 Android 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】Android 最火的快速开发框架XUtils 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文:http://blog.csdn.net/rain_butterfly/article/details/37812371

?

最近搜了一些框架供初學(xué)者學(xué)習(xí),比較了一下XUtils是目前git上比較活躍 功能比較完善的一個(gè)框架,是基于afinal開發(fā)的,比afinal穩(wěn)定性提高了不少,下面是介紹:

鑒于大家的熱情,我又寫了一篇Android 最火框架XUtils之注解機(jī)制詳解<-點(diǎn)擊查看

xUtils簡(jiǎn)介

  • xUtils 包含了很多實(shí)用的android工具。
  • xUtils 最初源于Afinal框架,進(jìn)行了大量重構(gòu),使得xUtils支持大文件上傳,更全面的http請(qǐng)求協(xié)議支持(10種謂詞),擁有更加靈活的ORM,更多的事件注解支持且不受混淆影響...
  • xUitls最低兼容android 2.2 (api level 8)
  • 目前xUtils主要有四大模塊:
    • DbUtils模塊:

      • android中的orm框架,一行代碼就可以進(jìn)行增刪改查;
      • 支持事務(wù),默認(rèn)關(guān)閉;
      • 可通過注解自定義表名,列名,外鍵,唯一性約束,NOT NULL約束,CHECK約束等(需要混淆的時(shí)候請(qǐng)注解表名和列名);
      • 支持綁定外鍵,保存實(shí)體時(shí)外鍵關(guān)聯(lián)實(shí)體自動(dòng)保存或更新;
      • 自動(dòng)加載外鍵關(guān)聯(lián)實(shí)體,支持延時(shí)加載;
      • 支持鏈?zhǔn)奖磉_(dá)查詢,更直觀的查詢語義,參考下面的介紹或sample中的例子。
    • ViewUtils模塊:

      • android中的ioc框架,完全注解方式就可以進(jìn)行UI,資源和事件綁定;
      • 新的事件綁定方式,使用混淆工具混淆后仍可正常工作;
      • 目前支持常用的20種事件綁定,參見ViewCommonEventListener類和包c(diǎn)om.lidroid.xutils.view.annotation.event。
    • HttpUtils模塊:

      • 支持同步,異步方式的請(qǐng)求;
      • 支持大文件上傳,上傳大文件不會(huì)oom;
      • 支持GET,POST,PUT,MOVE,COPY,DELETE,HEAD,OPTIONS,TRACE,CONNECT請(qǐng)求;
      • 下載支持301/302重定向,支持設(shè)置是否根據(jù)Content-Disposition重命名下載的文件;
      • 返回文本內(nèi)容的請(qǐng)求(默認(rèn)只啟用了GET請(qǐng)求)支持緩存,可設(shè)置默認(rèn)過期時(shí)間和針對(duì)當(dāng)前請(qǐng)求的過期時(shí)間。
    • BitmapUtils模塊:

      • 加載bitmap的時(shí)候無需考慮bitmap加載過程中出現(xiàn)的oom和android容器快速滑動(dòng)時(shí)候出現(xiàn)的圖片錯(cuò)位等現(xiàn)象;
      • 支持加載網(wǎng)絡(luò)圖片和本地圖片;
      • 內(nèi)存管理使用lru算法,更好的管理bitmap內(nèi)存;
      • 可配置線程加載線程數(shù)量,緩存大小,緩存路徑,加載顯示動(dòng)畫等...

    使用xUtils快速開發(fā)框架需要有以下權(quán)限:

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

    混淆時(shí)注意事項(xiàng):

    • 添加Android默認(rèn)混淆配置${sdk.dir}/tools/proguard/proguard-android.txt
    • 不要混淆xUtils中的注解類型,添加混淆配置:-keep class * extends java.lang.annotation.Annotation { *; }
    • 對(duì)使用DbUtils模塊持久化的實(shí)體類不要混淆,或者注解所有表和列名稱@Table(name="xxx"),@Id(column="xxx"),@Column(column="xxx"),@Foreign(column="xxx",foreign="xxx");

    DbUtils使用方法:

    DbUtils db = DbUtils.create(this); User user = new User(); //這里需要注意的是User對(duì)象必須有id屬性,或者有通過@ID注解的屬性 user.setEmail("wyouflf@qq.com"); user.setName("wyouflf"); db.save(user); // 使用saveBindingId保存實(shí)體時(shí)會(huì)為實(shí)體的id賦值 ... // 查找 Parent entity = db.findById(Parent.class, parent.getId()); List<Parent> list = db.findAll(Parent.class);//通過類型查找 Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=","test")); // IS NULL Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","=", null)); // IS NOT NULL Parent Parent = db.findFirst(Selector.from(Parent.class).where("name","!=", null)); // WHERE id<54 AND (age>20 OR age<30) ORDER BY id LIMIT pageSize OFFSET pageOffset List<Parent> list = db.findAll(Selector.from(Parent.class) .where("id" ,"<", 54) .and(WhereBuilder.b("age", ">", 20).or("age", " < ", 30)) .orderBy("id") .limit(pageSize) .offset(pageSize * pageIndex)); // op為"in"時(shí),最后一個(gè)參數(shù)必須是數(shù)組或Iterable的實(shí)現(xiàn)類(例如List等) Parent test = db.findFirst(Selector.from(Parent.class).where("id", "in", new int[]{1, 2, 3})); // op為"between"時(shí),最后一個(gè)參數(shù)必須是數(shù)組或Iterable的實(shí)現(xiàn)類(例如List等) Parent test = db.

轉(zhuǎn)載于:https://www.cnblogs.com/tc310/p/4618162.html

總結(jié)

以上是生活随笔為你收集整理的【转】Android 最火的快速开发框架XUtils的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。