Androidg各种开源框架的使用

Android开源框架

预览图
详细图

聚合型框架


Xuitls

DbUtils模块

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

支持事务,默认关闭;

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

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

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

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


ViewUtils模块

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

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

目前支持常用的20种事件绑定,参见 View Common Event Listener 类和包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内存;

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


Afinal

FinalDB模块

android中的orm框架,一行代码就可以进行增删改查。支持一对多,多对一等查询。

FinalActivity模块

android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。

FinalHttp模块

通过httpclient进行封装http数据请求,支持ajax方式加载。

FinalBitmap模块

通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。FinalBitmap可以配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等。

数据库模块:Android中的orm框架,使用了线程池对sqlite进行操作。

注解模块:Android中的ioc框架,完全注解方式就可以进行UI绑定和事件绑定。无需findViewById和setClickListener等。

网络模块:通过httpclient进行封装http数据请求,支持Ajax方式加载,支持下载、上传文件功能。

图片缓存模块:通过FinalBitmap,imageview加载bitmap的时候无需考虑bitmap加载过程中出现的oom和Android容器快速滑动时候出现的图片错位等现象。


ThinkAndroid

MVC模块:实现视图与模型的分离。

ioc模块:Android中的ioc模块,完全注解方式就可以进行UI绑定、res中的资源的读取、以及对象的初始化。

数据库模块:Android中的orm框架,使用了线程池对sqlite进行操作。

http模块:通过httpclient进行封装http数据请求,支持异步及同步方式加载。

缓存模块:通过简单的配置及设计可以很好的实现缓存,对缓存可以随意的配置

图片缓存模块:imageview加载图片的时候无需考虑图片加载过程中出现的oom和Android容器快速滑动时候出现的图片错位等现象。

配置器模块:可以对简易的实现配对配置的操作,目前配置文件可以支持Preference、Properties对配置进行存取。

日志打印模块:可以较快的轻易的是实现日志打印,支持日志打印的扩展,目前支持对sdcard写入本地打印、以及控制台打印

下载器模块:可以简单的实现多线程下载、后台下载、断点续传、对下载进行控制、如开始、暂停、删除等等。

网络状态检测模块:当网络状态改变时,对其进行检。


LoonAndroid

自动注入框架(只需要继承框架内的APP既可)

图片加载框架(多重缓存,自动回收,最大限度保证内存的安全性)

网络请求模块(继承了基本上现在所有的http请求)


eventbus(集成一个开源的框架)

验证框架(集成开源框架)


Json解析(支持解析成集合或者对象)

数据库(不知道是哪位写的 忘记了)

多线程断点下载(自动判断是否支持多线程,判断是否是重定向)

自动更新模块

一系列工具类

可读性差,耦合高,难扩展

网络请求


Asynchttp

比较老

在匿名回调中处理请求结果

在UI线程外进行http请求

文件断点上传

智能重试

默认gzip压缩

支持解析成Json格式

可将Cookies持久化到SharedPreferences


OKHttp

同步、异步

基于 NIO 和 Okio

HttpClient、HttpUrlConnection 进行操作


Volley

JSON,图像等的异步下载;

网络请求的排序(scheduling)

网络请求的优先级处理

缓存

多级别取消请求

和Activity和生命周期的联动(Activity结束时同时取消所有网络请求)

Volley 的优势在于封装的更好


Rxjava(异步请求库)

rxjava与retrofit结合(eclipse中)

as

compile 'com.squareup.retrofit2:retrofit:2.1.0'//Retrofit2所需要的包

compile 'com.squareup.retrofit2:converter-gson:2.1.0'//ConverterFactory的Gson依赖包

compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'//ConverterFactory的String依赖包

//rxJava结合

compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'

compile 'io.reactivex:rxjava:1.2.3'

compile 'io.reactivex:rxandroid:1.2.1'


步骤

写一个新的网络请求,步骤是这样的:

1. 在Service中定义一个新的方法。

2. 在HttpMethods封装对应的请求(代码基本可以copy)

3. 创建一个SubscriberOnNextListener处理请求数据并刷新UI。


Retrofit

eclipse

eclipse中使用retrofit

android studio

compile 'com.squareup.retrofit2:retrofit:2.1.0'//Retrofit2所需要的包

compile 'com.squareup.retrofit2:converter-gson:2.1.0'//ConverterFactory的Gson依赖包

compile 'com.squareup.retrofit2:converter-scalars:2.0.0-beta4'//ConverterFactory的String依赖包

使用步骤:

1、创建解析对象JsonBean

2、创建对应接口API

3、初始化Retrofit、调用API、发送请求、更新UI

基于okhttp

后期不在维护

RESTful 网络请求框架、Retrofit 解耦的更彻底

频繁的、数据量小的网络请求

数据库

依赖注入


Butterknife


图片加载库

ImageLoader

已经停止了对该项目的维护

Fresco

Facebook 出品

Fresco 将图片放到一个特别的内存区域叫 Ashmem 区

大量使用图片,推荐使用 Fresco

Picasso

Square 公司

Glide

基于 Picasso

在磁盘缓存方面,Picasso 只会缓存原始尺寸的图片,而 Glide 缓存的是多种规格,也就意味着 Glide 会根据你 ImageView 的大小来缓存相应大小的图片尺寸,比如你 ImageView 大小是200*200,原图是 400*400 ,而使用 Glide 就会缓存 200*200 规格的图,而 Picasso 只会缓存 400*400 规格的。这个改进就会导致 Glide 比 Picasso 加载的速度要快,毕竟少了每次裁剪重新渲染的过程。

最重要的一个特性是 Glide 支持加载 Gif 动态图,而 Picasso 不支持该特性。

除此之外,还有很多其他配置选项的增加。

Google 公司

网络解析


Json 解析

Gson

FastJson

Jackson

HTML解析

Jsoup

事件总线


Eventbus


目前框架使用的主要都是开源框架,都可以在github上找到:

1、volley,项目地址 https://github.com/smanikandan14/Volley-demo

2、android-async-http  项目地址:https://github.com/loopj/android-async-http

3、Afinal框架 项目地址:https://github.com/yangfuhai/afinal

4、xUtils框架 项目地址:https://github.com/wyouflf/xUtils

5、ThinkAndroid 项目地址:https://github.com/white-cat/ThinkAndroid

6、LoonAndroid 项目地址:https://github.com/gdpancheng/LoonAndroid

AndroidStudio库文件下载地址:

http://jcenter.bintray.com/

http://jcenter.bintray.com/com/squareup/

概要

Glide 与 Picasso 之间优先推荐选择 Glide,尤其是如果你的项目想要支持 Gif 动态图,那更该选择 Glide 。

但是如果你的项目使用了 Square 公司的全家桶,如 Retrofit 或者 OkHttp ,那么搭配 Picasso 一起使用也不是不可,兼容性可能会更好些,占用体积也会少些。

对于一般的 App 使用 Fresco 未免有些大材小用了,大部分情况 Glide 都能满足你的需求了,但是如果你的 App 中大量使用图片,比如是类似 Instagram 一类的图片社交 App ,那么推荐使用 Fresco ,虽然稍复杂,但是还是推荐使用 Fresco ,对提升你 App 的性能与体验有不少帮助,值得花时间去研究并应用到自己的 App 上来

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容