Android乾貨框架集錦,搭建專案必不可少
在開發過程中我們使用過很多優秀框架,比如網路的okhttp,圖片的Fresco,注入的Gagger2等,都是非常優秀的框架。
所以今天在此介紹下至今本人知道的一些比較流行主流且很優秀的框架。
在開發過程中我們使用過很多優秀框架,比如網路的okhttp,圖片的Fresco,注入的Gagger2等,都是非常優秀的框架。
所以今天在此介紹下至今本人知道的一些比較流行主流且很優秀的框架。
圖片來自網路,如有侵權,請聯絡我刪除,謝謝。
根據上圖我們依次說明:
DiskLruCache
硬碟快取最佳方案(Google提供的一套硬碟快取的解決方案:DiskLruCache(非Google官方編寫,但獲得官方認證))
DiskLruCache:http://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 pr
ovide a p
owerful, 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 Parser:http://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.