Android乾貨框架集錦,搭建項目必不可少

在開發過程中我們使用過很多優秀框架,比如網絡的okhttp,圖片的Fresco,注入的Gagger2等,都是非常優秀的框架。

所以今天在此介紹下至今本人知道的一些比較流行主流且很優秀的框架。

在開發過程中我們使用過很多優秀框架,比如網絡的okhttp,圖片的Fresco,注入的Gagger2等,都是非常優秀的框架。

所以今天在此介紹下至今本人知道的一些比較流行主流且很優秀的框架。


圖片來自網絡,如有侵權,請聯繫我刪除,謝謝。

根據上圖我們依次說明:

DiskLruCache

硬盤緩存最佳方案(Google提供的一套硬盤緩存的解決方案:DiskLruCache(非Google官方編寫,但獲得官方認證))


DiskLruCachehttp://jakewharton.github.io/DiskLruCache/

最佳解析 :http://blog.csdn.net/guolin_blog/article/details/28863651?utm_source=tuicool&utm_medium=referral


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:https://github.com/nostra13/Android-Universal-Image-Loader

最佳解析:http://blog.csdn.net/xiaanming/article/details/26810303

Picasso

A powerful image downloading and caching library for Android

Picasso:https://github.com/square/picasso

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0731/1639.html

Facebook Fresco

Fresco 是一個強大的圖片加載組件。
Fresco 中設計有一個叫做 image pipeline的模塊。它負責從網絡,從本地文件系統,本地資源加載圖片。爲了最大限度節省空間和CPU時間,它含有3級緩存設計(2級內存,1級文件)。
Fresco中設計有一個叫做 Drawees 模塊,方便地顯示loading圖,當圖片不再顯示在屏幕上時,及時地釋放內存和空間佔用。Fresco 支持Android2.3(API level 9) 及其以上系統。

Facebook Fresco:https://github.com/facebook/fresco

最佳解析:http://www.fresco-cn.org/

Glide

在泰國舉行的谷歌開發者論壇上,谷歌爲我們介紹了一個名叫 Glide 的圖片加載庫,作者是bumptech。 這個庫被廣泛的運用在google的開源項目中,包括2014年google I/O大會上發佈的官方app。

Glide:https://github.com/bumptech/glide

最佳解析:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html

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 :https://github.com/loopj/android-async-http

最佳解析:http://www.cnblogs.com/angeldevil/p/3729808.html

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:https://github.com/koush/AndroidAsync

最佳解析:http://hao.jobbole.com/androidasync/

OkHttp3

OkHttp是一個高效的Http客戶端,有如下的特點:支持HTTP2/SPDY黑科技  socket自動選擇最好路線,並支持自動重連。
擁有自動維護的socket連接池,減少握手次數。擁有隊列線程池,輕鬆寫併發。
擁有Interceptors輕鬆處理請求與響應(比如透明GZIP壓縮,LOGGING)。
基於Headers的緩存策略。

OkHttp3:http://square.github.io/okhttp/

最佳解析:http://www.jianshu.com/p/aad5aacd79bf

Retrofit

A type-safe REST client for Android and Java

Retrofit :http://square.github.io/retrofit/

最佳解析 :http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0915/3460.html

Volley

Android Volley是Google開發的一個網絡lib,可以讓你更加簡單並且快速的訪問網絡數據。Volley庫的網絡請求都是異步的,你不必擔心異步處理問題。
Volley的優點:
請求隊列和請求優先級
請求Cache和內存管理
擴展性性強
可以取消請求

Volley : https://developer.android.com/training/volley/index.html

最佳解析: http://bxbxbai.github.io/2014/09/14/android-working-with-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 :https://github.com/google/gson

最佳解析 :http://www.jianshu.com/p/e740196225a4

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 :https://github.com/FasterXML/jackson/

最佳解析:http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html

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 :https://github.com/alibaba/fastjson

最佳解析:http://blog.csdn.net/glarystar/article/details/6654494

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 Parserhttp://htmlparser.sourceforge.net/

jsoup

jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。
它提供了一套非常省力的API,可通過DOM,CSS以及類似於jQuery的操作方法來取出和操作數據。

jsoup:http://www.open-open.com/jsoup/

ORMLite

暫缺,歡迎補充

ORMLite:http://www.ormlite.com/

最佳解析:http://blog.csdn.net/lmj623565791/article/details/39121377

Sugar

Insanely easy way to work with Android Databases.

Sugar:https://github.com/satyan/sugar

最佳解析:http://www.open-open.com/lib/view/open1423060633592.html

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 :https://github.com/greenrobot/greenDAO

最佳解析:http://www.open-open.com/lib/view/open1438065400878.html

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 :https://github.com/pardom/ActiveAndroid

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0104/2255.html

SQLBrite

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

SQLBrite :https://github.com/square/sqlbrite

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0306/2552.html

Realm

Realm 是一個跨平臺的移動數據庫引擎,於 2014 年 7 月發佈,準確來說,它是專門爲移動應用所設計的數據持久化解決方案之一。

Realm:https://realm.io/

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1226/3807.html?utm_source=tuicool&utm_medium=referral

Butter Knife

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

Butter Knife :http://jakewharton.github.io/butterknife/

最佳解析 :http://stormzhang.com/openandroid/android/2014/01/12/android-butterknife/

最佳解析(8.+):http://www.jianshu.com/p/0392199a682b

Dagger2

Dagger2 是一個Android依賴注入框架,由谷歌開發,最早的版本Dagger1由Square公司開發。
依賴注入框架主要用於模塊間解耦,提高代碼的健壯性和可維護性。
Dagger這個庫的取名不僅僅來自它的本意“匕首”,同時也暗示了它的原理。
Jake Wharton 在對 Dagger 的介紹中指出,Dagger 即DAG-er,這裏的 DAG 即數據結構中的 DAG——有向無環圖(Directed Acyclic Graph)。
也就是說,Dagger是一個基於有向無環圖結構的依賴注入庫,因此Dagger的使用過程中不能出現循環依賴。

Dagger2 :http://google.github.io/dagger/

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0519/2892.html

AndroidAnnotations

AndroidAnnotations is an Open Source framework that speeds up Android1,It takes care of the plumbing, and lets you concentrate   
2,what's really important. By simplifying your code, it facilitatesits maintenance.

AndroidAnnotations :http://androidannotations.org/

Wiki:https://github.com/excilys/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 :https://github.com/roboguice/roboguice

最佳解析:http://www.cnblogs.com/avenwu/archive/2013/05/30/3109455.html

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:https://github.com/diogobernardino/WilliamChart

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1011/1739.html

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:https://github.com/lecho/hellocharts-android

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1107/1930.html

MPAndroidChart

MPAndroidChart是一款基於Android的開源圖表庫,MPAndroidChart不僅可以在 Android設備上繪製各種統計圖表,而且可以對圖表進行拖動和縮放操作,應用起來非常靈活。
MPAndroidChart同樣擁有常用的圖表類型:線 型圖、餅圖、柱狀圖和散點圖。

MPAndroidChart :https://github.com/PhilJay/MPAndroidChart

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0506/1614.html

Tape

Tape是速度非快,事務性,基於文件的FIFO。用於Android和Java平臺。

Tape:http://square.github.io/tape/

Android Priority Job Queue

Android Priority Job Queue是一款專門爲Android平臺編寫,實現了Job Queue的後臺任務隊列類庫,能夠輕鬆的在後臺執行定時任務,提高用戶體驗和應用的穩定性。

Android Priority Job Queue:https://github.com/yigit/android-priority-jobqueue

EventBus

EventBus是一個Android端優化的publish/subscribe消 息總線,簡化了應用程序內各組件間、組件與後臺線程間的通信。
比如請求網絡,等網絡返回時通過Handler或Broadcast通知UI,兩個 Fragment之間需要通過Listener通信,這些需求都可以通過EventBus實現。

EventBus :https://github.com/greenrobot/EventBus

最佳解析:http://www.cnblogs.com/angeldevil/p/3715934.html

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 :https://github.com/square/otto

最佳解析:http://blog.csdn.net/zhangweiwtmdbf/article/details/49096615

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 :https://github.com/ReactiveX/RxAndroid

最佳解析:http://gank.io/post/560e15be2dca930e00da1083

RxBinding

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

RxBinding :https://github.com/JakeWharton/RxBinding

最佳解析:http://www.jianshu.com/p/c2c7c46e6b97/comments/1338430

Agera

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

Agera :https://github.com/google/agera

最佳解析:http://www.open-open.com/lib/view/open1461748167891.html

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:https://github.com/orhanobut/logger

Hugo

Annotation-triggered method call logging for your debug builds.

Hugo:https://github.com/JakeWharton/hugo

Timber

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

Timbe:https://github.com/JakeWharton/timber

Mockito

Tasty mocking framework for unit tests in Java

Mockito :https://github.com/mockito/mockito

最佳解析:http://www.oschina.net/translate/mockito-a-great-mock-framework-for-java-development

Robotium

Robotium是一款國外的Android自動化測試框架,主要針對Android平臺的應用進行黑盒自動化測試,它提供了模擬各種手勢操作(點擊、長按、滑動等)、查找和斷言機制的API,能夠對各種控件進行操作。

Robotium:http://robotium.com/

Robolectric

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

Robolectric:https://github.com/robolectric/robolectric

最佳解析:https://segmentfault.com/a/1190000002904944

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:http://facebook.github.io/stetho/

最佳解析:http://www.jianshu.com/p/03da9f91f41f

LeakCanary

A memory leak detection library for Android and Java.

LeakCanary:https://github.com/square/leakcanary

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0509/2854.html

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:https://github.com/ACRA/acra

Wiki:https://github.com/ACRA/acra/wiki/BasicSetup


圖片來自網絡,如有侵權,請聯繫我刪除,謝謝。

根據上圖我們依次說明:

DiskLruCache

硬盤緩存最佳方案(Google提供的一套硬盤緩存的解決方案:DiskLruCache(非Google官方編寫,但獲得官方認證))


DiskLruCachehttp://jakewharton.github.io/DiskLruCache/

最佳解析 :http://blog.csdn.net/guolin_blog/article/details/28863651?utm_source=tuicool&utm_medium=referral


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:https://github.com/nostra13/Android-Universal-Image-Loader

最佳解析:http://blog.csdn.net/xiaanming/article/details/26810303

Picasso

A powerful image downloading and caching library for Android

Picasso:https://github.com/square/picasso

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0731/1639.html

Facebook Fresco

Fresco 是一個強大的圖片加載組件。
Fresco 中設計有一個叫做 image pipeline的模塊。它負責從網絡,從本地文件系統,本地資源加載圖片。爲了最大限度節省空間和CPU時間,它含有3級緩存設計(2級內存,1級文件)。
Fresco中設計有一個叫做 Drawees 模塊,方便地顯示loading圖,當圖片不再顯示在屏幕上時,及時地釋放內存和空間佔用。Fresco 支持Android2.3(API level 9) 及其以上系統。

Facebook Fresco:https://github.com/facebook/fresco

最佳解析:http://www.fresco-cn.org/

Glide

在泰國舉行的谷歌開發者論壇上,谷歌爲我們介紹了一個名叫 Glide 的圖片加載庫,作者是bumptech。 這個庫被廣泛的運用在google的開源項目中,包括2014年google I/O大會上發佈的官方app。

Glide:https://github.com/bumptech/glide

最佳解析:http://jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0327/2650.html

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 :https://github.com/loopj/android-async-http

最佳解析:http://www.cnblogs.com/angeldevil/p/3729808.html

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:https://github.com/koush/AndroidAsync

最佳解析:http://hao.jobbole.com/androidasync/

OkHttp3

OkHttp是一個高效的Http客戶端,有如下的特點:支持HTTP2/SPDY黑科技  socket自動選擇最好路線,並支持自動重連。
擁有自動維護的socket連接池,減少握手次數。擁有隊列線程池,輕鬆寫併發。
擁有Interceptors輕鬆處理請求與響應(比如透明GZIP壓縮,LOGGING)。
基於Headers的緩存策略。

OkHttp3:http://square.github.io/okhttp/

最佳解析:http://www.jianshu.com/p/aad5aacd79bf

Retrofit

A type-safe REST client for Android and Java

Retrofit :http://square.github.io/retrofit/

最佳解析 :http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0915/3460.html

Volley

Android Volley是Google開發的一個網絡lib,可以讓你更加簡單並且快速的訪問網絡數據。Volley庫的網絡請求都是異步的,你不必擔心異步處理問題。
Volley的優點:
請求隊列和請求優先級
請求Cache和內存管理
擴展性性強
可以取消請求

Volley : https://developer.android.com/training/volley/index.html

最佳解析: http://bxbxbai.github.io/2014/09/14/android-working-with-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 :https://github.com/google/gson

最佳解析 :http://www.jianshu.com/p/e740196225a4

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 :https://github.com/FasterXML/jackson/

最佳解析:http://www.cnblogs.com/hoojo/archive/2011/04/22/2024628.html

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 :https://github.com/alibaba/fastjson

最佳解析:http://blog.csdn.net/glarystar/article/details/6654494

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 Parserhttp://htmlparser.sourceforge.net/

jsoup

jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。
它提供了一套非常省力的API,可通過DOM,CSS以及類似於jQuery的操作方法來取出和操作數據。

jsoup:http://www.open-open.com/jsoup/

ORMLite

暫缺,歡迎補充

ORMLite:http://www.ormlite.com/

最佳解析:http://blog.csdn.net/lmj623565791/article/details/39121377

Sugar

Insanely easy way to work with Android Databases.

Sugar:https://github.com/satyan/sugar

最佳解析:http://www.open-open.com/lib/view/open1423060633592.html

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 :https://github.com/greenrobot/greenDAO

最佳解析:http://www.open-open.com/lib/view/open1438065400878.html

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 :https://github.com/pardom/ActiveAndroid

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0104/2255.html

SQLBrite

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

SQLBrite :https://github.com/square/sqlbrite

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0306/2552.html

Realm

Realm 是一個跨平臺的移動數據庫引擎,於 2014 年 7 月發佈,準確來說,它是專門爲移動應用所設計的數據持久化解決方案之一。

Realm:https://realm.io/

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1226/3807.html?utm_source=tuicool&utm_medium=referral

Butter Knife

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

Butter Knife :http://jakewharton.github.io/butterknife/

最佳解析 :http://stormzhang.com/openandroid/android/2014/01/12/android-butterknife/

最佳解析(8.+):http://www.jianshu.com/p/0392199a682b

Dagger2

Dagger2 是一個Android依賴注入框架,由谷歌開發,最早的版本Dagger1由Square公司開發。
依賴注入框架主要用於模塊間解耦,提高代碼的健壯性和可維護性。
Dagger這個庫的取名不僅僅來自它的本意“匕首”,同時也暗示了它的原理。
Jake Wharton 在對 Dagger 的介紹中指出,Dagger 即DAG-er,這裏的 DAG 即數據結構中的 DAG——有向無環圖(Directed Acyclic Graph)。
也就是說,Dagger是一個基於有向無環圖結構的依賴注入庫,因此Dagger的使用過程中不能出現循環依賴。

Dagger2 :http://google.github.io/dagger/

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0519/2892.html

AndroidAnnotations

AndroidAnnotations is an Open Source framework that speeds up Android1,It takes care of the plumbing, and lets you concentrate   
2,what's really important. By simplifying your code, it facilitatesits maintenance.

AndroidAnnotations :http://androidannotations.org/

Wiki:https://github.com/excilys/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 :https://github.com/roboguice/roboguice

最佳解析:http://www.cnblogs.com/avenwu/archive/2013/05/30/3109455.html

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:https://github.com/diogobernardino/WilliamChart

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1011/1739.html

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:https://github.com/lecho/hellocharts-android

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1107/1930.html

MPAndroidChart

MPAndroidChart是一款基於Android的開源圖表庫,MPAndroidChart不僅可以在 Android設備上繪製各種統計圖表,而且可以對圖表進行拖動和縮放操作,應用起來非常靈活。
MPAndroidChart同樣擁有常用的圖表類型:線 型圖、餅圖、柱狀圖和散點圖。

MPAndroidChart :https://github.com/PhilJay/MPAndroidChart

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0506/1614.html

Tape

Tape是速度非快,事務性,基於文件的FIFO。用於Android和Java平臺。

Tape:http://square.github.io/tape/

Android Priority Job Queue

Android Priority Job Queue是一款專門爲Android平臺編寫,實現了Job Queue的後臺任務隊列類庫,能夠輕鬆的在後臺執行定時任務,提高用戶體驗和應用的穩定性。

Android Priority Job Queue:https://github.com/yigit/android-priority-jobqueue

EventBus

EventBus是一個Android端優化的publish/subscribe消 息總線,簡化了應用程序內各組件間、組件與後臺線程間的通信。
比如請求網絡,等網絡返回時通過Handler或Broadcast通知UI,兩個 Fragment之間需要通過Listener通信,這些需求都可以通過EventBus實現。

EventBus :https://github.com/greenrobot/EventBus

最佳解析:http://www.cnblogs.com/angeldevil/p/3715934.html

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 :https://github.com/square/otto

最佳解析:http://blog.csdn.net/zhangweiwtmdbf/article/details/49096615

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 :https://github.com/ReactiveX/RxAndroid

最佳解析:http://gank.io/post/560e15be2dca930e00da1083

RxBinding

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

RxBinding :https://github.com/JakeWharton/RxBinding

最佳解析:http://www.jianshu.com/p/c2c7c46e6b97/comments/1338430

Agera

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

Agera :https://github.com/google/agera

最佳解析:http://www.open-open.com/lib/view/open1461748167891.html

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:https://github.com/orhanobut/logger

Hugo

Annotation-triggered method call logging for your debug builds.

Hugo:https://github.com/JakeWharton/hugo

Timber

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

Timbe:https://github.com/JakeWharton/timber

Mockito

Tasty mocking framework for unit tests in Java

Mockito :https://github.com/mockito/mockito

最佳解析:http://www.oschina.net/translate/mockito-a-great-mock-framework-for-java-development

Robotium

Robotium是一款國外的Android自動化測試框架,主要針對Android平臺的應用進行黑盒自動化測試,它提供了模擬各種手勢操作(點擊、長按、滑動等)、查找和斷言機制的API,能夠對各種控件進行操作。

Robotium:http://robotium.com/

Robolectric

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

Robolectric:https://github.com/robolectric/robolectric

最佳解析:https://segmentfault.com/a/1190000002904944

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:http://facebook.github.io/stetho/

最佳解析:http://www.jianshu.com/p/03da9f91f41f

LeakCanary

A memory leak detection library for Android and Java.

LeakCanary:https://github.com/square/leakcanary

最佳解析:http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0509/2854.html

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:https://github.com/ACRA/acra

Wiki:https://github.com/ACRA/acra/wiki/BasicSetup

轉載自公衆號APP架構師

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章