Introduction
The ranking includes four categories:
Single function framework: frameworks that provide only routing, network layer, UI layer, communication layer, or other single functionality.
Hybrid development framework: frameworks that provide capabilities for hybrid app, H5 and WebView integration, and web app.
Enterprise-level open source projects: standalone apps with high learning value and reference significance.
Book-type open source projects: navigation projects like Open-sourc-project; large companies' Android course learning tips.
Ranking criteria:
- Project is open source.
- Number of stars on GitHub.
- The strength of the development team and author.
To ensure the diversity of the list, similar frameworks are not repeated (e.g., multiple ListView enhancement frameworks).
Target audience:
- Beginners and junior Android developers: Read the book navigation project list, practice regularly to improve progress; compile and run the case in the enterprise-level open source projects, which can enhance the ability to develop complete projects; skim through the top 100 framework list to expand your horizons and understand current popular terminology.
- Junior to mid-level Android developers: Master and quickly write the cases in the enterprise-level open source projects you are interested in, which can increase confidence in writing code and improve overall project design capability; deeply study the principles of the top-ranked frameworks in the top 100 framework list, which can give you more capital to show off at family, colleagues, and classmates gatherings; if you can skillfully use the frameworks mentioned in the top 100 framework list, you will be close to the mid-level engineer.
- Mid-level, senior, and expert engineers: Understanding the usage and integration of popular terms and concepts in the top 100 framework list will allow you to continuously move between these levels; consciously merge multiple similar frameworks in the list to compensate for the shortcomings of a single framework, such as combining Volley and OkHttp for different scenarios; consciously perform secondary development and modify the source code to extend the large frameworks mentioned in the list; have the ability to promote and deploy certain frameworks within the development team - for example, persuading the leader and project members of a new team to use hot updates, plug-in development, componentization, hybrid development, etc. - do you have this ability?
The higher the rank of the framework, the higher the priority of using it, the more insights you get from studying its principles, and the greater the value of inspiration for readers.
Top 100 Framework List
Quick Index
| **Framework Name** | **Key Words** |
|---|---|
| 1.Retrofit | Network |
| 2.okhttp | Network |
| 3.Butter Knife | Code Template |
| 4.MPAndroidChart | Chart |
| 5.glide | Image |
| 6.leakcanary | Memory |
| 7.Android-Universal-Image-Loader | Image |
| 8.EventBus | Event Message |
| 9.zxing | Barcode Scanning |
| 10.picasso | Image |
| 11.lottie-android | Animation |
| 12.fresco | Image |
| 13.RxAndroid | Asynchronous |
| 14.SlidingMenu | Menu |
| 15.PhotoView | Image |
| 16.material-dialogs | UI |
| 17.droid-async-http | Network |
| 18.androidannotations | Annotation |
| 19.fastjson | Json |
| 20.Material-Animations | Animation |
| 21.tinker | Hot Fix |
| 22.ViewPagerIndicator | UI |
| 23.Android-CleanArchitecture | Architecture |
| 24.Android-PullToRefresh | Refresh |
| 25.flexbox-layout | UI |
| 26.AndroidSwipeLayout | UI |
| 27.realm-java | Database |
| 28.greenDAO | Data |
| 29.stetho | Debug |
| 30.BaseRecyclerViewAdapterHelper | UI |
| 31.AndroidViewAnimations | Animation |
| 32.MaterialDrawer | Menu |
| 33.Android-ObservableScrollView | UI |
| 34.CircleImageView | Image |
| 35.logger | Debug |
| 36.agera | Asynchronous |
| 37.BottmBar | Menu |
| 38.Calligraphy | Font |
| 39.AndroidSlidingUpPanel | UI |
| 40.AppIntro | UI |
| 41.recyclerview-animators | Animation |
| 42.dagger | Dependency Injection |
| 43.Android-Bootstarp | UI |
| 44.RxBinding | Responsive |
| 45.ListViewAnimations | Animation |
| 46.UItimateRecyclerView | UI |
| 47.uCrop | Image |
| 48.RxJava-Android-Samples | Examples |
| 49.AndroidAutoLayout | Adaptation |
| 50.EffectiveAndroidUI | Performance |
| 51.Luban | Image |
| 52.DroidPlugin | Plugin |
| 53.otto | Responsive |
| 54.u2020 | Examples |
| 55.buck | Build |
| 56.PermissionsDispatcher | Permissions |
| 57.android-gif-drawable | GIF |
| 58.Apktool | Decompile |
| 59.dynamic-load-apk | Plugin |
| 60.atlas | Plugin |
| 61.volley | Network |
| 62.androidmvp | Examples |
| 63.SwipeBackLayout | Gesture |
| 64.FlycoTabLayout | UI |
| 65.android-testing | Testing |
| 66.FileDownloader | Download |
| 67.JieCaoVideoPlayer | Media |
| 68.glide-transformations | Image |
| 69.android-gpuimage | Image |
| 70.RxPermissions | Permissions |
| 71.freeline | Compilation |
| 72.RxLifecycle | Lifecycle |
| 73.classyshark | Decompile |
| 74.acra | Crash Log |
| 75.DiskLruCache | File |
| 76.dexposed | Hot Fix |
| 77.Litho | Performance |
| 78.mosby | MVP |
| 79.AndResGuard | Obfuscation |
| 80.StatusBarUtil | Status Bar |
| 81.robolectric | Testing |
| 82.Fragmentation | Nested |
| 83.Small | Plugin |
| 84.JsBridge | Hybrid |
| 85.richeditor-android | UI |
| 86.Transitions-Everywhere | Animation |
| 87.android-viewbadger | Badge |
| 88.AndroidWiFiADB | Debug |
| 89.emojicon | Emoji |
| 90.packer-ng-plugin | Multi-channel |
| 91.android-priority-jobqueue | Multi-threaded |
| 92.Android-Debug-Database | Debug |
| 93.conceal | Encryption |
| 94.ARouter | Page Routing |
| 95.MagicaSakura | Theme |
| 96.CustomActivityOnCrash | Crash |
| 97.XhsEmoticonsKeyboard | Keyboard |
- Retrofit
One sentence introduction: Retrofit is a type-safe network framework based on HTTP protocol, serving Android and Java languages.
Reason for listing: Retrofit has 21.8k stars on GitHub and ranks first in the Android section of GitHub, which is well-deserved.
Official website http://square.github.io/retrofit/
GitHub https://github.com/square/retrofit
Author: Square team
Usage:
compile 'com.squareup.retrofit2:retrofit:2.3.0'
2.okhttp
One sentence introduction: okhttp is a network framework based on HTTP and HTTP2.0 protocol, serving java and android clients.
Reason for listing: With 20.4k stars on GitHub, it ranks second in the Android section of GitHub. Large companies like Taobao also use okhttp. Retrofit 2.0 now includes okhttp internally, with Retrofit focusing on encapsulating interfaces to complete business needs and okhttp focusing on secure and efficient network requests. I separate them to help later learners distinguish between the two frameworks to avoid confusion when learning their principles.
Official website http://square.github.io/okhttp/
GitHub https://github.com/square/okhttp
Author: Square team
Usage:
compile 'com.squareup.okhttp3:okhttp:3.8.0'
3.Butter Knife
One sentence introduction: Butter Knife provides the ability to generate template code using annotations, binding views, methods, and parameters.
Reason for listing: It has 16.5K stars on GitHub. Combined with the Butter Knife plugin provided by Android Studio, it helps developers avoid the hassle of frequetnly calling findViewById. The latest version of Butter Knife also provides onclick binding and string initialization. Beginners can further learn about Butter Knife and the Butter Knife plugin!
Official website: http://jakewharton.github.io/butterknife/
GitHub: https://github.com/JakeWharton/butterknife
Author: Jake Wharton, also a member of the Square team.
Usage:
dependencies {
compile 'com.jakewharton:butterknife:8.6.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'
}
4.MPAndroidChart
One sentence introduction: MPAndroidChart is a chart framework.
Reason for listing: It has 16.1K stars on GitHub and is known for its speed, simplicity, and power.
Official website https://github.com/PhilJay/MPAndroidChart
GitHub https://github.com/PhilJay/MPAndroidChart
Author: PhilJay
Usage:
- Add Gradle dependency in AS:
- Add to the root directory's
build.gradle: -
allprojects { repositories { maven { url "https://jitpack.io" } } }
- Add to the app's build.gradle:
- ```
dependencies {
compile 'com.github.PhilJay:MPAndroidChart:v3.0.2'
}
- glide
One sentence introduction: glide is an image loading and caching framework focused on providing smooth scrolling capabilities.
Reason for listing: With 15.9k stars, it is the top image loading framework. Google demonstrated a camera app based on the glide framework at the 2014 Developer Conference.
GitHub https://github.com/bumptech/glide
Author Bump Technologies team
Usage:
repositories {
mavenCentral()
}
dependencies {
compile 'com.github.bumptech.glide:glide:3.8.0'
compile 'com.android.support:support-v4:19.1.0'
}
6.leakcanary
One sentence introduction: A memory detection framework for Java and Android clients.
Reason for listing: Convenience and simplicity are the biggest features of leakcanary. Just integrate it into the application's apllication, and you can use it directly; 15.5k stars show how popular it is.
GitHub https://github.com/square/leakcanary
Author square team
Usage:
dependencies {
debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.1'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.1'
}
In Application:
public class ExampleApplication extends Application {
@Override public void onCreate() {
super.onCreate();
if (LeakCanary.isInAnalyzerProcess(this)) {
// This process is dedicated to LeakCanary for heap analysis.
// You should not init your app in this process.
return;
}
LeakCanary.install(this);
// Normal app init code...
}
}
7.Android-Universal-Image-Loader
One sentence introduction: The former king of image loading frameworks, Android developers have used it.
Reason for listing: It is the elder brother of Android image loading frameworks, with 15.3k stars proving its popularity. UIL differs from Glide in that it is customizable, providing a wide range of configuration options, image loading status callbacks (success, failure, in progress), loading animations, and a three-level cache strategy for mobile image loading frameworks. Notably, UIL hasn't been updated in two years, but I still recommend using it!
GitHub https://github.com/nostra13/Android-Universal-Image-Loader
Author nostra13
Usage:
Download address universal-image-loader-1.9.5.jar
8.EventBus
One sentence introduction: EventBus is a local component communication framework.
Reason for listing: The number of stars for component communication frameworks is first: 14.8k, and it is widely used in large projects across Activities, fragments, threads, services. Although EventBus has some limitations in passing events to uncreated components, it is still active in various large projects and scenarios.
Official website http://greenrobot.org/eventbus/documentation/how-to-get-started/
GitHub https://github.com/greenrobot/EventBus
Author greenrobot
Usage:
compile 'org.greenrobot:eventbus:3.0.0'
9.zxing
One sentence introduction: Barcode image processing library.
Reason for listing: If you have used a QR code, you have indirectly used the famous zxing. 13.9K stars make it rank ninth on this list, which is well-deserved. If you have a need to understand QR codes, you can start by understanding and modifying its source code.
GitHub https://github.com/zxing/zxing
Author Sean Owen
10.picasso
One sentence introduction: A powerful image download and caching framework.
Reason for listing: This is the third image framework on the list. Unlike Picasso, it emphasizes image downloads. You can integrate Picasso into your project, and you can also combine it with Glide and UIL, and use them together in your project as needed.
Official website http://square.github.io/picasso/
GitHub https://github.com/square/picasso
Author square team
Usage:
compile 'com.squareup.picasso:picasso:2.5.2'
Or download
jar package
11.lottie-android
One sentence introduction: A framework that can quickly display Adobe After Effects (AE) tool animations on Android.
Reason for listing: Animation framework first place, 13.3k stars on GitHub prove its superiority. Using JSON files to quickly realize animation effects is its biggest convenience, and this JSON file is also created by the Adobe After Effects (AE) tool. Install the Bodymovin plugin in AE and use this plugin to finally generate the JSON file, which can be parsed and generated into a beautiful animation effect by LottieAnimationView. It also supports cross-platform.
GitHub https://github.com/airbnb/lottie-android
Author: Airbnb team
12.fresco
One sentence introduction: A framework that manages image memory.
Reason for listing: 12.8k stars on GitHub, fourth place in the image category, Facebook's origin proves that it is not a duplicate wheel. It has its own territory in managing image memory, with progressive loading and GIF support being unique features compared to the top three.
Official website: https://www.fresco-cn.org/
GitHub https://github.com/facebook/fresco
Author facebook
Usage:
dependencies {
// Other dependencies
compile 'com.facebook.fresco:fresco:0.12.0'
}
The following dependencies need to be added according to requirements:
dependencies {
// For API < 14 machines supporting WebP, add
compile 'com.facebook.fresco:animated-base-support:0.12.0'
// Support GIF animation, add
compile 'com.facebook.fresco:animated-gif:0.12.0'
// Support WebP (static + animated), add
compile 'com.facebook.fresco:animated-webp:0.12.0'
compile 'com.facebook.fresco:webpsupport:0.12.0'
// Only support static WebP, add
compile 'com.facebook.fresco:webpsupport:0.12.0'
}
13.RxAndroid
One sentence introduction: An asynchronous communication framework for Android client components.
Reason for listing: 12.7k stars on GitHub, second place in the component communication framework. It is only after EventBus. If you ask the difference between the two, EventBus is to replace the cumbersome interface between components, while RxAndroid is to replace AsyncTask, and they are not conflicting. Of course, the advantages of RxAndroid are not limited to this, and more elegant implementations can be found on the official website!
GitHub https://github.com/ReactiveX/RxAndroid
Author Jake Wharton
Usage:
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.1.0'
14.SlidingMenu
One sentence introduction: Side sliding menu framework.
Reason for listing: Along with Userval-Image-loader, it is an ancient god framework - providing side sliding menu functionality for your app; GitHub has 10.5k stars, proving its enduring popularity, even after Google released NavigationDrawer, it has not reduced the developer's enthusiasm for SlidingMenu. Classics always withstand the test of time. This ancient god has not been updated for four years; too many apps have used it, which can be seen in the software's open source license!
GitHub https://github.com/jfeinstein10/SlidingMenu
Author Jeremy Feinstein
Usage:
Fork the source code on GitHub and integrate it into the project.
15.PhotoView
One sentence introduction: An ImageView display framework that supports zooming and gesture response.
Reason for listing: 10.3k stars, located fifth in the image framework rankings. Unlike the previous four, PhotoView brings image display capabilities. You must wonder how WeChat's profile picture click enlargement is implemented, and how many apps implement image display gesture response. Understanding PhotoView will make you happy! (The author will not tell you that the image view click enlargement effect is also present in Android samples!)
GitHub https://github.com/chrisbanes/PhotoView
Author: chrisbanes
Usage:
In the app root directory's build.gradle add:
allprojects {
repositories {
maven { url "https://jitpack.io" }
}
}
In the app module directory's build.gradle add:
dependencies {
compile 'com.github.chrisbanes:PhotoView:latest.release.here'
}
Usage
<com.github.chrisbanes.photoview.PhotoView
android:id="@+id/photo_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/><br></br><br></br>
PhotoView photoView = (PhotoView) findViewById(R.id.photo_view);
photoView.setImageResource(R.drawable.image);
16.material-dialogs
One sentence introduction: A custom dialog framework.
Reason for listing: 9.9k stars, it is the third custom View framework after PhotoView and SlidingMenu. Perhaps you are still a newcomer to custom View and not very familiar with Dialog usage. You can improve your Dialog usage ability through it.
GitHub https://github.com/afollestad/material-dialogs
Author: Aidan Follestad
Usage:
dependencies {
// ... other dependencies here
compile 'com.afollestad.material-dialogs:core:0.9.4.5'<br></br>}
17.droid-async-http
One sentence introduction: A network framework based on the HTTP protocol for asynchronous requests,
Reason for listing: Although you have countless reasons to use retrofit + okhttp, 9.8k stars prove that it is still worth learning deeply. It is worth noting that it has not been updated for two years, so you can take it as an excuse for laziness!
GitHub https://github.com/loopj/android-async-http
Author: James Smith
Usage:
repositories {
maven {
url 'https://oss.sonatype.org/content/repositories/snapshots/'
}
}
dependencies {
compile 'com.loopj.android:android-async-http:1.5.0-SNAPSHOT'
}
18.androidannotations
One sentence introduction: A rapid develpoment framework based on annotations.
Reason for listing: Like Butterknife, it uses annotations to quickly complete the initialization of views. Unlike Butterknife, androidannotations provides more capabilities: simple thread models. I have only used Butterknife, so I cannot further describe the advantages of androidannotations. If you want to deeply understand the magic of annotations, you can try exploring it!
Official website http://androidannotations.org/
GitHub https://github.com/androidannotations/androidannotations
Author: WonderCsabo
19.fastjson
One sentence introduction: A framework for parsing and generating JSON.
Reason for listing: From its name, it is clear that speed is its biggest feature. The origin from Alibaba ensures the quality and excellence of the code. 9.4k stars on GitHub, making it the first Chinese open-source framework on the list. All apps involving networks will use JSON, and fastjson is worth being your first choice!
GitHub https://github.com/alibaba/fastjson
Author: alibaba
Usage:
compile 'com.alibaba:fastjson:1.1.58.android'
20.Material-Animations
One sentence introduction: A framework that provides scene transition and transition capabilities.
Reason for listing: Second in the Android animation framework rankings, 9.3k stars. Unlike lottie-android, which provides scene transition animation effects, Material-Animations provides scene transition animation effects. Android's official sample already provides some Transition (scene transition) displays, and as a beginner, it is difficult to quickly expand to your project. The examples of Material-Animations save developers from this trouble, allowing them to directly copy and apply them to their own apps.
github https://github.com/lgvalle/Material-Animations
Author: Luis G. Valle
Usage:
download source code, modify and learn
21.tinker
One sentence introduction: It is the Android hot patch solution used by WeChat's official website.
Reason for listing: 9.1k stars, the hot patch solution used by WeChat.心动不如行动
Official website http://www.tinkerpatch.com/Docs/intro
GitHub https://github.com/Tencent/tinker
Author: Tencent
22.ViewPagerIndicator
One sentence introduction: An open source framework for page indicators based on ViewPager.
Reason for listing: An ancient god, although it has not been updated for five years, you can still see its use in Taobao and other apps. 8.9K stars let it stand quietly in the list.
Official website http://viewpagerindicator.com/
GitHub https://github.com/JakeWharton/ViewPagerIndicator
Author: JakeWharton
Usage:
Download address https://github.com/JakeWharton/Android-ViewPagerIndicator/zipball/master
23.Android-CleanArchitecture
One sentence introduction: A demo explaining the design framework.
Reason for listing: It is not a framework, you can regard it as a book, which will teach you how to design a clean architecture. The project has a sample app, combined with图文 explanation, you will have a deeper understanding of the architecture of Android clients. 8.8k stars prove that it is a "good book".
GitHub https://github.com/android10/Android-CleanArchitecture
Author: Fernando Cejas
24..Android-PullToRefresh
One sentence introduction: A view framework that provides refresh UI for common views.
Reason for listing: 8.2K stars make it the top refresh UI framework. Strong compatibility, the framework supports ListView, GrdiView, WebViewScrollView, ViewPager and many other Views to add refresh capabilities. If you have a need for pull-to-refresh and pull-to-load, you should consider it!
GitHub https://github.com/chrisbanes/Android-PullToRefresh
Author: Chris Banes
Usage:
GitHub fork source code, integrate into the project
25.flexbox-layout
One sentence introduction: A flexible layout
Reason for listing: 8.1k stars, a blessing for front-end H5 developers transitioning to Android development. FlexboxLayout as a replacement for LinearLayout and RelativeLayout, is worth trying. It was released along with ConstraintLayout.
GitHub https://github.com/google/flexbox-layout
Author: Google
Usage:
dependencies {
compile 'com.google.android:flexbox:0.3.0-alpha3'
}
26.AndroidSwipeLayout
One sentence introduction: A very powerful swipe layout
Reason for listing: Swipe deletion is a common requirement in domestic apps, and the need for upward and downward swiping in product details is also commonly encountered by developers. AndroidSwipeLayout has 8K stars on GitHub, proving that it has passed the test. It is definitely worth trying.
GitHub https://github.com/daimajia/AndroidSwipeLayout
Author: daimajia
Usage:
dependencies {
compile 'com.android.support:recyclerview-v7:21.0.0'
compile 'com.android.support:support-v4:20.+'
compile "com.daimajia.swipelayout:library:1.2.0@aar"
}
Or download
AndroidSwipeLayout-v1.1.8.jar
27.realm-java
One sentence introduction: Realm is a mobile database framework.
Reason for listing: The core data engine is built in C++, which is much faster than the ordinary SQLite database. I guess that's why Realm has 7892 stars, placing it ahead of the famous database framework GreenDao (7877).
Official website: https://realm.io/cn/
GitHub https://github.com/realm/realm-java
Author: Realm team
Usage: https://realm.io/docs/java/latest/
28.greenDAO
One sentence introduction: greenDAO is an efficient and fast SQLite database.
Reason for listing: The star count of greenDAO is comparable to Realm, and it is developed and maintained by the greenrobot team, same as EventBus. The quality is guaranteed, but if I were to question the advantages of Realm and greenDao, it would require specific situations and high-intensity testing to make a judgment, so I can't say it in one sentence. I'm sorry for the inconvenience.
Official website: http://greenrobot.org/greendao/
GitHub https://github.com/greenrobot/greenDAO
Usage:
buildscript {
repositories {
jcenter()
mavenCentral() // add repository
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'org.greenrobot:greendao-gradle-plugin:3.2.2' // add plugin
}
}
-----
apply plugin: 'com.android.application'
apply plugin: 'org.greenrobot.greendao' // apply plugin
dependencies {
compile 'org.greenrobot:greendao:3.2.2' // add library
}
29.stetho
One sentence introduction: An open source framework that provides debugging capabilities for Android apps in Chrome developer tools.
Reason for listing: In the old days, Android programmers had to debug local databases by entering the Android Device Monitor to find the /data/data/com.xxx.xxx/databases db file, exporting it to the PC, and using the PC data tool to view. Now, using stetho saves the trouble. Now, Android programmers who want to debug network request responses need to add log statements in the request, printing one information at a time, which is very tedious. Now, please use stetho to save such troubles! 7.8K stars, a blessing for Android developers' debugging, you deserve it!
Author: FaceBook
Official website: http://facebook.github.io/stetho/
GitHub https://github.com/facebook/stetho
Usage:
compile 'com.facebook.stetho:stetho:1.5.0'
30.BaseRecyclerViewAdapterHelper
One sentence introduction: A powerful and smooth RecyclerView general adapter.
Reason for listing: If you are a fan of RecyclerView, you must experience this adapter specifically serving this view. 7.7K stars make this guy rank first in the GitHub Android adapter rankings, and there are many surprises waiting for you to explore!
Official website: http://www.recyclerview.org/
Author: Chen Yuming and his partners
Usage:
allprojects {
repositories {
...
maven { url "https://jitpack.io" }
}
}
dependencies {
compile 'com.github.CymChad:BaseRecyclerViewAdapterHelper:VERSION_CODE'
}
31.AndroidViewAnimations
One sentence introduction: A framework that provides a collection of cute animations.
Reason for listing: As the author said, it encompasses all animation effects needed during the development process, and integrates them into this concise and cute animation framework. 7.6K stars prove its combat power in the animation framework field, letting it rank third behind lottie-android and Material-Animations, the two major animation framework lords.
GitHub https://github.com/daimajia/AndroidViewAnimations
Author: daimajia
Usage:
dependencies {
compile 'com.android.support:support-compat:25.1.1'
compile 'com.daimajia.easing:library:2.0@aar'
compile 'com.daimajia.androidanimations:library:2.2@aar'
}
Sample:
YoYo.with(Techniques.Tada)
.duration(700)
.repeat(5)
.playOn(findViewById(R.id.edit_area));
- MaterialDrawer
One sentence introduction: A powerful plastic-style drawer framework.
Reason for listing: 7.6K stars, the author's continuous update status, if you are still hesitating about the SlidingMenu encountering bugs without support, then you can take it as your drawer layout.
GitHub https://github.com/mikepenz/MaterialDrawer
Author: Mike Penz
Usage:
compile('com.mikepenz:materialdrawer:5.9.2@aar') {
transitive = true
}
new DrawerBuilder().withActivity(this).build();
33.Android-ObservableScrollView
One sentence introduction: A scrollable framework that makes the view more visually appealing.
Reason for listing: 7.5K stars prove its past value. GitHub provides 12 types of scroll effects, which you can use to make up for the shortcomings of other frameworks and improve your App experience!
GitHub https://github.com/ksoichiro/Android-ObservableScrollView
Author: Soichiro Kashima
Usage:
compile com.github.ksoichiro:android-observablescrollview
34.CircleImageView
One sentence introduction: Rounded ImageView
Reason for listing: Maybe you have heard of numerous ways to display rounded images, but if you don't try CircleImageView, your knowledge base will be diminished. Sometimes completing a requirement is the priority for developers, and the performance differences of different implementation methods are worth thinking about. If you are willing to delve into image performance, CircleImageView will not disappoint you. Finally, don't forget to check Romain Guy's advice.
GitHub https://github.com/hdodenhof/CircleImageView
Author: Henning Dodenhof
Usage:
dependencies {
...
compile 'de.hdodenhof:circleimageview:2.1.0'
}
<de.hdodenhof.circleimageview.CircleImageView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/profile_image"
android:layout_width="96dp"
android:layout_height="96dp"
android:src="@drawable/profile"
app:civ_border_width="2dp"
app:civ_border_color="#FF000000"/>
35.logger
One sentence introduction: A framework that elegantly displays log information.
Reason for listing: logger, as a debugging framework, does not provide powerful capabilities. Its biggest highlight is to elegantly output log information and supports multiple formats: thread, Json, Xml, List, Map, etc. If you are addicted to the ocean of log information and can't get out, logger is your guiding light! 6.6k stars make it rank second in the debugging framework, just after Facebook's stetho.
GitHub https://github.com/orhanobut/logger
Author: Orhan Obut
Usage:
compile 'com.orhanobut:logger:2.1.1'
Logger.d(MAP);
Logger.d(SET);
Logger.d(LIST);
Logger.d(ARRAY);
Logger.json(JSON_CONTENT);
Logger.xml(XML_CONTENT);
36.agera
One sentence introduction: A reactive programming framework for the Android platform.
Reason for listing: Google has specially launched a reactive programming framework for Android developers. Compared to the top reactive programming framework RxJava RxAndroid, it is lighter. The biggest difference between the two is that agera is based on push event, pull data (VS Rx series push data).
GitHub https://github.com/google/agera
Author: Google
Usage:
compile 'com.google.android.agera:agera:1.3.0'
Expansion capability
compile 'com.google.android.agera:content:1.3.0'
compile 'com.google.android.agera:database:1.3.0'
compile 'com.google.android.agera:net:1.3.0'
compile 'com.google.android.agera:rvadapter:1.3.0'
compile 'com.google.android.agera:rvdatabinding:1.3.0'
37.BottmBar
One sentence introduction: A bottom navigation bar view framework.
Reason for listing: The king framework of the bottom bar, 6.3K stars prove its excellence. It fully follows the material design specification, and it is very easy to use. If there are any drawbacks, it cannot set the spacing between icons and titles, nor can it customize the size of the view. However, these can be resolved by modifying the source code. The author has also modified a bottom navigation framework suitable for domestic developers, which is about to be open-sourced.
GitHub https://github.com/roughike/BottomBar
Author: Iiro Krankka
Usage:
compile 'com.roughike:bottom-bar:2.3.1'
38.Calligraphy
One sentence introduction: A custom font framework.
Reason for listing: If you are still troubled by the need to change the font style of all text views in your app, 6.3K stars of Calligraphy is worth having. It can change the font of the entire project's TextViews, and also individually set the font of a certain TextView. What are you waiting for? Come and try it!
GitHub https://github.com/chrisjenx/Calligraphy
Author: Christopher Jenkins
Usage:
dependencies {
compile 'uk.co.chrisjenx:calligraphy:2.3.0'
}
39.AndroidSlidingUpPanel
One sentence introduction: A draggable sliding panel view framework.
Reason for listing: If your project needs a draggable sliding panel (to display certain detailed information, play music, map information, etc.), then it is recommended that you use it. 6.3k stars, from the startup company umano's work, proves that it is a carefully crafted masterpiece.
GitHub https://github.com/umano/AndroidSlidingUpPanel
Author: umano
Usage:
repositories {
mavenCentral()
}
compile 'com.sothree.slidinguppanel:library:3.3.1'
40.AppIntro
One sentence introduction: A framework that provides quick creation of welcome pages.
Reason for listing: I never planned to include a welcome page framework in the ranking list. As a domestic developer, ViewPager development of the app's welcome page is a matter of course. Why would an open-source welcome page framework have 6.3k stars on GitHub? Maybe you look down on it, but sometimes opportunities slip away right under our nose.
GitHub https://github.com/apl-devs/AppIntro
Author: Paolo Rotolo
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
dependencies {
compile 'com.github.apl-devs:appintro:v4.2.0'
}
41.recyclerview-animators
One sentence introduction: A framework that provides extended animation capabilities for Recyclerview.
Reason for listing: There is an old saying: if one day you lose interest in new things, it means you are getting old. Recyclerview has been around for nearly three years, and people still using listview may have gradually become old; don't be discouraged, quickly add the recyclerview-animators framework to your project to add fresh blood and energy! (Note from the author: 6.2K stars)
GitHub https://github.com/wasabeef/recyclerview-animators
Author; it noreferrer