Android通用框架大全

在开发过程中使用过很多优秀框架,比如网络的okhttp,图片的Fresco,注入的Gagger2等,都是非常优秀的框架。

所以今天在此介绍下至今本人知道的一些比较流行主流且很优秀的框架。
[图片上传失败...(image-a44890-1511766101260)]

根据上图我们依次说明:

DiskLruCache

硬盘缓存最佳方案(Google提供的一套硬盘缓存的解决方案:DiskLruCache(非Google官方编写,但获得官方认证))

DiskLruCache 最佳解析

Universal Image Loader

UIL aims to provide a powerful, flexible and highly customizable instrument for image loading, caching and displaying. 

    It provides a lot of configuration options and good control over the image loading and caching process.

Universal Image Loader 最佳解析

Picasso

  1. powerful image downloading and caching library for Android

Picasso 最佳解析

Facebook Fresco

Fresco 是一个强大的图片加载组件。

    Fresco 中设计有一个叫做 image pipeline的模块。它负责从网络,从本地文件系统,本地资源加载图片。为了最大限度节省空间和CPU时间,它含有3级缓存设计(2级内存,1级文件)。

    Fresco中设计有一个叫做 Drawees 模块,方便地显示loading图,当图片不再显示在屏幕上时,及时地释放内存和空间占用。Fresco 支持Android2.3(API level 9) 及其以上系统。

Facebook Fresco 最佳解析

Glide

在泰国举行的谷歌开发者论坛上,谷歌为我们介绍了一个名叫 Glide 的图片加载库,作者是bumptech。 这个库被广泛的运用在google的开源项目中,包括2014年google I/O大会上发布的官方app。

Glide 最佳解析

Asynchronous Http Client for Android

An asynchronous, callback-based Http client for Android built on top of Apache's HttpClient libraries.

Asynchronous Http Client for Android 最佳解析

AndroidAsync

AndroidAsync is a low level network protocol library. 

    If you are looking for an easy to use, higher level, Android aware, http request library, check out Ion (it is built on top of AndroidAsync). 

    The typical Android app developer would probably be more interested in Ion.

AndroidAsync 最佳解析

OkHttp3

OkHttp是一个高效的Http客户端,有如下的特点:

  支持HTTP2/SPDY黑科技
  socket自动选择最好路线,并支持自动重连
  拥有自动维护的socket连接池,减少握手次数
  拥有队列线程池,轻松写并发
  拥有Interceptors轻松处理请求与响应(比如透明GZIP压缩,LOGGING)
  基于Headers的缓存策略

OkHttp3 最佳解析

Retrofit

  1. type-safe REST client for Android and Java

Retrofit 最佳解析

Volley

Android Volley是Google开发的一个网络lib,可以让你更加简单并且快速的访问网络数据。Volley库的网络请求都是异步的,你不必担心异步处理问题。

Volley的优点:
  请求队列和请求优先级
  请求Cache和内存管理
  扩展性性强
  可以取消请求

Volley 最佳解析

google-gson

  Gson is a Java library that can be used to convert Java Objects into their JSON representation. 
It can also be used to convert a JSON string to an equivalent Java object. 

    Gson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of.

Gson 最佳解析

Jackson

This is the home page of the Jackson Project, formerly known as the standard JSON library for Java (or JVM platform in general), or, as the "best JSON parser for Java." Or simply as "JSON for Java." 

    More than that, Jackson is a suite of data-processing tools for Java (and the JVM platform), including the flagship streaming JSON parser / generator library, matching data-binding library (POJOs to and from JSON) and additional data format modules to process data encoded in Avro, BSON, CBOR, CSV, Smile, Protobuf, XML or YAML; 

    and even the large set of data format modules to support data types of widely used data types such as Joda, Guava and many, many more.

    While the actual core components live under their own projects -- including the three core packages (streaming, databind, annotations; 

    data format libraries; data type libraries; JAX-RS provider; 

    and a miscellaneous set of other extension modules -- this project act as the central hub for linking all the pieces together.

Jackson 最佳解析

fastjson

Fastjson是一个Java语言编写的JSON处理器,由阿里巴巴公司开发。

    1、遵循http://json.org标准,为其官方网站收录的参考实现之一。
    2、功能qiang打,支持JDK的各种类型,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。
    3、无依赖,不需要例外额外的jar,能够直接跑在JDK上。
    4、开源,使用Apache License 2.0协议开源。http://code.alibabatech.com/wiki/display/FastJSON/Home
    5、具有超高的性能,java世界里没有其他的json库能够和fastjson可相比了。

fastjson 最佳解析

HTML Parser

  HTML Parser is a Java library used to parse HTML in either a linear or nested fashion. 
Primarily used for transformation or extraction, it features filters, visitors, custom tags and easy to use JavaBeans. 

    It is a fast, robust and well tested package.

HTML Parser

jsoup

jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。

    它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

jsoup

ORMLite

暂缺,欢迎补充

ORMLite 最佳解析

Sugar

Insanely easy way to work with Android Databases.

Sugar 最佳解析

greenDAO

greenDAO is a light & fast ORM for Android that maps objects to SQLite Being highly optimized for Android, greenDAO offers great and consumes minimal memory.

greenDAO 最佳解析

ActiveAndroid

ActiveAndroid is an active record style ORM (object relational mapper). 

    What does that mean exactly? 

    Well, ActiveAndroid allows you to save and retrieve SQLite database records without ever writing a single SQL statement. 

    Each database record is wrapped neatly into a class with methods like save() and delete().

ActiveAndroid 最佳解析

SQLBrite

  1. lightweight wrapper around SQLiteOpenHelper and ContentResolver which introduces reactive stream semantics to queries.

SQLBrite 最佳解析

Realm

Realm 是一个跨平台的移动数据库引擎,于 2014 年 7 月发布,准确来说,它是专门为移动应用所设计的数据持久化解决方案之一。

Realm 最佳解析

Butter Knife

Field and method binding for Android views which uses annotation processing to generate boilerplate code for you.

Butter Knife 最佳解析 最佳解析(8.+)

Dagger2

Dagger2 是一个Android依赖注入框架,由谷歌开发,最早的版本Dagger1由Square公司开发。

    依赖注入框架主要用于模块间解耦,提高代码的健壮性和可维护性。

    Dagger这个库的取名不仅仅来自它的本意“匕首”,同时也暗示了它的原理。

    Jake Wharton 在对 Dagger 的介绍中指出,Dagger 即DAG-er,这里的 DAG 即数据结构中的 DAG——有向无环图(Directed Acyclic Graph)。

    也就是说,Dagger是一个基于有向无环图结构的依赖注入库,因此Dagger的使用过程中不能出现循环依赖。

Dagger2 最佳解析

AndroidAnnotations

AndroidAnnotations is an Open Source framework that speeds up Android

  1,It takes care of the plumbing, and lets you concentrate

    2,what's really important. By simplifying your code, it facilitatesits maintenance.

AndroidAnnotations Wiki

RoboGuice 3

RoboGuice 3 smoothes out some of the wrinkles in your Android development experience and makes things simple and fun. 

    Do you always forget to check for null when you getIntent().getExtras()? RoboGuice 3 will help you. 

    Think casting findViewById() to a TextView shouldn’t be necessary? RoboGuice 3 is on it.

RoboGuice3 最佳解析

WilliamChart

WilliamChart is an Android Library to help the implementation of charts in android applications. 

    For the ones that would like to contribute, my idea is not only to implement the conventional chart features but instead something that could be pleasant and intuitive while representing and visualizing data. 

    I would prefer to keep charts simple and clean rather than overfeatured.

WilliamChart 最佳解析

HelloCharts for Android

Charting library for Android compatible with API 8+(Android 2.2). Works best when hardware acceleration is available, so API 14+(Android4.0) is recommended. Apache License 2.0.

HelloCharts for Android 最佳解析

MPAndroidChart

MPAndroidChart是一款基于Android的开源图表库,MPAndroidChart不仅可以在 Android设备上绘制各种统计图表,而且可以对图表进行拖动和缩放操作,应用起来非常灵活。

MPAndroidChart同样拥有常用的图表类型:线 型图、饼图、柱状图和散点图。

MPAndroidChart 最佳解析

Tape

Tape是速度非快,事务性,基于文件的FIFO。用于Android和Java平台。

Tape

Android Priority Job Queue

Android Priority Job Queue是一款专门为Android平台编写,实现了Job Queue的后台任务队列类库,能够轻松的在后台执行定时任务,提高用户体验和应用的稳定性。

Android Priority Job Queue

EventBus

EventBus是一个Android端优化的publish/subscribe消 息总线,简化了应用程序内各组件间、组件与后台线程间的通信。

比如请求网络,等网络返回时通过Handler或Broadcast通知UI,两个 Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现。

EventBus 最佳解析

Otto

An enhanced Guava-based event bus with emphasis on Android support.

Otto is an event bus designed to decouple different parts of your application while still allowing them to communicate efficiently.

Forked from Guava, Otto adds unique functionality to an already refined event bus as well as specializing it to the Android platform.

Otto 最佳解析

RxAndroid: Reactive Extensions for Android

Android specific bindings for RxJava.

This module adds the minimum classes to RxJava that make writing reactive components in Android applications easy and hassle-free. More

specifically, it provides a Scheduler that schedules on the main thread or any given Looper.

RxAndroid 最佳解析

RxBinding

RxJava binding APIs for Android UI widgets from the platform and support libraries.

RxBinding 最佳解析

Agera

Agera is a set of classes and interfaces to help write functional, asynchronous, and reactive applications for Android.

Agera 最佳解析

Logger

Simple, pretty and powerful logger for android

Logger provides :
   Thread information
   Class information
   Method information
   Pretty-print for json content
   Pretty-print for new line "\n"
   Clean output
   Jump to source

Logger

Hugo

Annotation-triggered method call logging for your debug builds.

Hugo

Timber

This is a logger with a small, extensible API which provides utility on top of Android's normal Log class.

Timber

Mockito

Tasty mocking framework for unit tests in Java

Mockito 最佳解析

Robotium

Robotium是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各种手势操作(点击、长按、滑动等)、查找和断言机制的API,能够对各种控件进行操作。

Robotium

Robolectric

Robolectric is a testing framework that de-fangs the Android SDK so you can test-drive the development of your Android app.

Robolectric 最佳解析

Stetho

Stetho is a sophisticated debug bridge for Android applications. 

When enabled, developers have access to the Chrome Developer Tools feature natively part of the Chrome desktop browser. 

Developers can also choose to enable the optional dumpapp tool which offers a powerful command-line interface to application internals.

Stetho 最佳解析

LeakCanary

  1. memory leak detection library for Android and Java.

LeakCanary 最佳解析

ACRA

ACRA is a library enabling Android Application to automatically post their crash reports to a GoogleDoc form.

It is targeted to android applications developers to help them get data from their applications when they crash or behave erroneously.

ACRA Wiki

至此,结束,如果有哪里写错的或者有什么疑问欢迎回帖,我看到后会第一时间回复。

by anonymous

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

推荐阅读更多精彩内容

  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,401评论 2 45
  • 所有的事情,总得要有一个开始,而我们也总在一次次的萌生出所谓重大无比且光明无限的决心以后,习惯于跟自己说:“那么,...
    莺莺108阅读 187评论 0 0
  • 我是火爆的白羊女,大家说,会一辈子起急。女儿是温柔的水瓶女,女儿常开玩笑的念叨,水瓶最需要小心的是白羊。 在我怀...
    柳回阅读 1,875评论 0 8
  • 以前听音乐是因为聊以慰藉,打发时间,舒缓心情。 用了网易云音乐之后,从此走进了更广阔浩瀚的文化世界,不再只是为了听...
    知微素问阅读 741评论 4 2
  • 真的偶然的机会让我让我认识了一个很好的女孩,这个女孩可以听我说话,可以陪我聊天,再过不久她就要去美术集训了,有...
    戈北阅读 289评论 0 1