Many excellent frameworks have been used in the development process, such as okhttp of network, fresco of image, gagger2 of injection, etc., which are all excellent frameworks.
So today I will introduce some popular mainstream and excellent frameworks that I know so far.
According to the figure above, we will explain in turn:
DiskLruCache
Best solution of hard disk cache (a set of hard disk cache solution provided by Google: disklrucache (not officially written by Google, but officially certified))
DiskLruCache The best analysis
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 The best analysis
Picasso
A powerful image downloading and caching library for Android
Facebook Fresco
Fresco is a powerful image loading component.
A module called image pipeline is designed in fresco. It is responsible for loading images from network, local file system and local resources. In order to save space and CPU time to the greatest extent, it contains 3-level cache design (2-level memory, 1-level file).
There is a module called drawings in fresco, which can easily display the loading graph. When the picture is no longer displayed on the screen, it can release the memory and space in time. Fresco supports Android 2.3 (API level 9) and above.
Facebook Fresco The best analysis
Glide
At the Google Developer Forum held in Thailand, Google introduced us to an image loading library named glide, written by bumptech. This library is widely used in Google's open source projects, including the official app released at the 2014 Google I / O conference.
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 The best analysis
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 The best analysis
OkHttp3
Okhttp is an efficient HTTP client
Support http2 / spdy black Technology
Socket automatically selects the best route and supports automatic reconnection
With automatic maintenance of socket connection pool, reduce the number of handshakes
Have queue thread pool, easy to write concurrent
Have interceptors to handle requests and responses easily (such as transparent gzip compression, logging)
Cache strategy based on headers
Retrofit
A type-safe REST client for Android and Java
Volley
Android volley is a web lib developed by Google, which allows you to access network data more easily and quickly. The network requests of Volley library are asynchronous, so you don't have to worry about asynchronous processing.
Volley's advantages:
Request queue and request priority
Request cache and memory management
Strong expansibility
You can cancel the request
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.
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.
fastjson
Fastjson is a JSON processor written in Java language, developed by Alibaba company.
1. Follow http://json.org Standard, for its official website included one of the reference implementation.
2. It supports various types of JDK, including basic JavaBean, collection, map, date, enum and generics.
3. No dependency, no exception, no extra jar, can run directly on JDK.
4. Open source, using Apache license 2.0 protocol. http://code.alibabatech.com/wiki/display/FastJSON/Home
5. With super high performance, no other JSON Library in the Java world can compare with 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.
jsoup
Jsoup is a Java HTML parser, which can directly parse a URL address and HTML text content.
It provides a set of very labor-saving API, which can extract and operate data through DOM, CSS and operation methods similar to jQuery.
ORMLite
It's not available. Please add
Sugar
Insanely easy way to work with Android Databases.
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.
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 The best analysis
SQLBrite
A lightweight wrapper around SQLiteOpenHelper and ContentResolver which introduces reactive stream semantics to queries.
Realm
Realm is a cross platform mobile database engine, which was released in July 2014. To be exact, it is one of the data persistence solutions specially designed for mobile applications.
Butter Knife
Field and method binding for Android views which uses annotation processing to generate boilerplate code for you.
Butter Knife The best analysis Best resolution (8. +)
Dagger2
Dagger2 is an Android dependency injection framework developed by Google, and the earliest version dagger1 was developed by square.
Dependency injection framework is mainly used for decoupling between modules to improve the robustness and maintainability of code.
Dagger's name not only comes from its original intention of "dagger", but also implies its principle.
Jake Wharton pointed out in his introduction to dagger that dagger is DAG Er, and DAG here is DAG in data structure -- directed acyclic graph.
In other words, dagger is a dependency annotation based on the structure of directed acyclic graph, so there can be no cyclic dependency in the use of dagger.
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.
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.
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 The best analysis
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 The best analysis
MPAndroidChart
Mpandroidchart is an open source chart Library Based on Android. Mpandroidchart can not only draw various statistical charts on Android devices, but also drag and zoom the charts, which is very flexible in application.
Mpandroidchart also has common chart types: line chart, pie chart, column chart and scatter chart.
MPAndroidChart The best analysis
Tape
Tape is a non fast, transactional, file based FIFO. For Android and Java platforms.
Android Priority Job Queue
Android priority job queue is a kind of background task queue class library specially written for Android platform. It can easily perform scheduled tasks in the background and improve the user experience and application stability.
EventBus
Eventbus is an Android optimized publish / subscribe message bus, which simplifies the communication between components in the application and between components and background threads.
For example, request the network and notify the UI through the handler or broadcast when the network returns. The two fragments need to communicate through the listener. These requirements can be realized through the 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.
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.
RxBinding
RxJava binding APIs for Android UI widgets from the platform and support libraries.
Agera
Agera is a set of classes and interfaces to help write functional, asynchronous, and reactive applications for Android.
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
Hugo
Annotation-triggered method call logging for your debug builds.
Timber
This is a logger with a small, extensible API which provides utility on top of Android's normal Log class.
Mockito
Tasty mocking framework for unit tests in Java
Robotium
Robotium is a foreign Android automation testing framework, mainly for the application of Android platform for black box automation testing, it provides the simulation of a variety of gesture operations (click, long press, slide, etc.), search and assertion mechanism API, can operate on a variety of controls.
Robolectric
Robolectric is a testing framework that de-fangs the Android SDK so you can test-drive the development of your Android app.
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.
LeakCanary
A memory leak detection library for Android and Java.
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.
At this point, the end, if there are any mistakes or questions, welcome to reply, I will reply as soon as I see it.
by anonymous