Top 100 Android Frameworks of 2017

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:

  1. Project is open source.
  2. Number of stars on GitHub.
  3. 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
  1. 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:

  1. 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'
}

  1. 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));

  1. 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

Posted on Fri, 03 Jul 2026 16:39:40 +0000 by mabog