Android通用框架大全

在開發(fā)過程中使用過很多優(yōu)秀框架梁丘,比如網絡的okhttp遭庶,圖片的Fresco蟆技,注入的Gagger2等加缘,都是非常優(yōu)秀的框架。

所以今天在此介紹下至今本人知道的一些比較流行主流且很優(yōu)秀的框架霹娄。
[圖片上傳失敗...(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的模塊犬耻。它負責從網絡踩晶,從本地文件系統(tǒng),本地資源加載圖片枕磁。為了最大限度節(jié)省空間和CPU時間渡蜻,它含有3級緩存設計(2級內存,1級文件)计济。

    Fresco中設計有一個叫做 Drawees 模塊茸苇,方便地顯示loading圖,當圖片不再顯示在屏幕上時沦寂,及時地釋放內存和空間占用学密。Fresco 支持Android2.3(API level 9) 及其以上系統(tǒng)。

Facebook Fresco 最佳解析

Glide

在泰國舉行的谷歌開發(fā)者論壇上传藏,谷歌為我們介紹了一個名叫 Glide 的圖片加載庫腻暮,作者是bumptech。 這個庫被廣泛的運用在google的開源項目中毯侦,包括2014年google I/O大會上發(fā)布的官方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連接池试幽,減少握手次數
  擁有隊列線程池,輕松寫并發(fā)
  擁有Interceptors輕松處理請求與響應(比如透明GZIP壓縮,LOGGING)
  基于Headers的緩存策略

OkHttp3 最佳解析

Retrofit

  1. type-safe REST client for Android and Java

Retrofit 最佳解析

Volley

Android Volley是Google開發(fā)的一個網絡lib霍狰,可以讓你更加簡單并且快速的訪問網絡數據抡草。Volley庫的網絡請求都是異步的饰及,你不必擔心異步處理問題蔗坯。

Volley的優(yōu)點:
  請求隊列和請求優(yōu)先級
  請求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處理器,由阿里巴巴公司開發(fā)康震。

    1、遵循h(huán)ttp://json.org標準宾濒,為其官方網站收錄的參考實現之一腿短。
    2、功能qiang打绘梦,支持JDK的各種類型橘忱,包括基本的JavaBean、Collection卸奉、Map钝诚、Date、Enum榄棵、泛型凝颇。
    3、無依賴疹鳄,不需要例外額外的jar拧略,能夠直接跑在JDK上。
    4瘪弓、開源垫蛆,使用Apache License 2.0協(xié)議開源。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 月發(fā)布,準確來說坠狡,它是專門為移動應用所設計的數據持久化解決方案之一继找。

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依賴注入框架,由谷歌開發(fā)逃沿,最早的版本Dagger1由Square公司開發(fā)婴渡。

    依賴注入框架主要用于模塊間解耦幻锁,提高代碼的健壯性和可維護性。

    Dagger這個庫的取名不僅僅來自它的本意“匕首”边臼,同時也暗示了它的原理哄尔。

    Jake Wharton 在對 Dagger 的介紹中指出,Dagger 即DAG-er柠并,這里的 DAG 即數據結構中的 DAG——有向無環(huán)圖(Directed Acyclic Graph)岭接。

    也就是說,Dagger是一個基于有向無環(huán)圖結構的依賴注入庫臼予,因此Dagger的使用過程中不能出現循環(huán)依賴鸣戴。

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設備上繪制各種統(tǒng)計圖表粘拾,而且可以對圖表進行拖動和縮放操作窄锅,應用起來非常靈活。

MPAndroidChart同樣擁有常用的圖表類型:線 型圖缰雇、餅圖入偷、柱狀圖和散點圖。

MPAndroidChart 最佳解析

Tape

Tape是速度非快寓涨,事務性盯串,基于文件的FIFO。用于Android和Java平臺戒良。

Tape

Android Priority Job Queue

Android Priority Job Queue是一款專門為Android平臺編寫体捏,實現了Job Queue的后臺任務隊列類庫,能夠輕松的在后臺執(zhí)行定時任務糯崎,提高用戶體驗和應用的穩(wěn)定性几缭。

Android Priority Job Queue

EventBus

EventBus是一個Android端優(yōu)化的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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末纽乱,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子柴淘,更是在濱河造成了極大的恐慌迫淹,老刑警劉巖秘通,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件为严,死亡現場離奇詭異,居然都是意外死亡肺稀,警方通過查閱死者的電腦和手機第股,發(fā)現死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來话原,“玉大人夕吻,你說我怎么就攤上這事》比剩” “怎么了涉馅?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長黄虱。 經常有香客問我稚矿,道長,這世上最難降的妖魔是什么捻浦? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任晤揣,我火速辦了婚禮,結果婚禮上朱灿,老公的妹妹穿的比我還像新娘昧识。我一直安慰自己,他們只是感情好盗扒,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布跪楞。 她就那樣靜靜地躺著,像睡著了一般侣灶。 火紅的嫁衣襯著肌膚如雪甸祭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天炫隶,我揣著相機與錄音淋叶,去河邊找鬼。 笑死,一個胖子當著我的面吹牛煞檩,可吹牛的內容都是我干的处嫌。 我是一名探鬼主播,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼斟湃,長吁一口氣:“原來是場噩夢啊……” “哼熏迹!你這毒婦竟也來了?” 一聲冷哼從身側響起凝赛,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤注暗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后墓猎,有當地人在樹林里發(fā)現了一具尸體捆昏,經...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年毙沾,在試婚紗的時候發(fā)現自己被綠了骗卜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡左胞,死狀恐怖寇仓,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情烤宙,我是刑警寧澤遍烦,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站躺枕,受9級特大地震影響服猪,放射性物質發(fā)生泄漏。R本人自食惡果不足惜屯远,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一蔓姚、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧慨丐,春花似錦坡脐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至捅暴,卻和暖如春恬砂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蓬痒。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工泻骤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓狱掂,卻偏偏與公主長得像演痒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子趋惨,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內容

  • afinalAfinal是一個android的ioc鸟顺,orm框架 https://github.com/yangf...
    passiontim閱讀 15,429評論 2 45
  • 所有的事情,總得要有一個開始器虾,而我們也總在一次次的萌生出所謂重大無比且光明無限的決心以后讯嫂,習慣于跟自己說:“那么,...
    鶯鶯108閱讀 191評論 0 0
  • 我是火爆的白羊女,大家說挤悉,會一輩子起急渐裸。女兒是溫柔的水瓶女巫湘,女兒常開玩笑的念叨装悲,水瓶最需要小心的是白羊。 在我懷...
    柳回閱讀 1,879評論 0 8
  • 以前聽音樂是因為聊以慰藉尚氛,打發(fā)時間诀诊,舒緩心情。 用了網易云音樂之后阅嘶,從此走進了更廣闊浩瀚的文化世界属瓣,不再只是為了聽...
    知微素問閱讀 750評論 4 2
  • 真的偶然的機會讓我讓我認識了一個很好的女孩,這個女孩可以聽我說話讯柔,可以陪我聊天抡蛙,再過不久她就要去美術集訓了,有...
    戈北閱讀 290評論 0 1