Awesome Android

About
A curated list of awesome Android libraries
and resources. For general Java libraries have
a look at awesome-java.
Supported with ❤️ by Instabug
Understand
How Your Android App is Doing with Real-Time Contextual Insights From
Your Users
>Instabug helps Android developers and
product teams easily collect bugs and feedback from beta testers and
users to iterate faster and ship quality apps. Instabug automatically
attaches screenshots, device details, network logs, repro steps, and
tons of other critical insights needed to resolve issues and prioritize
product backlogs. > Mobile teams accelerate their workflows by
seamlessly integrating with third-party tools like Github, Jira, Slack,
Zendesk and much more. Instabug
is offering Awesome Android community an exclusive 15% discount on all
paid plans. Get Started! 
How to Use
Awesome-Android is an amazing list for people who need a certain
feature on their app, so the best ways to use are: - Simply press
command + F to search for a keyword - Go through our Content Menu
Content
Emulators
Libraries
Charts
- AChartEngine -
Charting Engine.
- EazeGraph -
Chart and graph library.
- WilliamChart
- Chart library with good motion capabilities.
- HelloCharts -
Chart and graph library with support for scaling, scrolling and
animations.
- MPAndroidChart - An
Android chart and graph library supporting scaling and dragging by
gesture.
- ArcChartView -
Draw Creative Statistic Arc Charts.
- AnyChart
- Data visualization library, Interactive charts.
Cloud Services
- CloudRail - Unified API Library
for: Cloud Storage, Social Profiles, Payment, Email, SMS &
POIs.
Data binding
- Anvil - A small
library to create reactive UI components, inspired by React. Provides
data binding and event listener binding, fits well for MVVM.
- Data
Binding Library - Official Android Data Binding Library to write
declarative layouts and minimize the glue code necessary to bind
application logic and layouts.
Dependency Injection
- Dagger 2 - A fast
dependency injector for Android and Java.
- Butter Knife
- View “injection” library for Android.
- ActivityStarter
- Android Library that provide simpler way to start the Activities with
multiple arguments.
- AndroidAnnotations
- Java annotations with dependency injection at compile time.
- Toothpick
- A scope tree based Dependency Injection (DI) library for Java.
Android Services
- Remoter - An
alternative to Android AIDL for Android Remote IPC services using plain
java interfaces.
- Service
Connector - Bind Android services and callbacks to fields and
methods.
Game Development
- Libgdx -
Cross-platform game engine and SDK. Open Source
- Vuforia - Augmented Reality
library.
- Unity
- Cross-platform game creation system.
- Rajawali -
Android OpenGL ES 2.0/3.0 Engine
- Cocos2d-x - Cross-platform 2d
game framework.
- JustWeEngine -
An easy open source Android Native Game FrameWork.
Security
- libsignal-protocol-java
- A ratcheting forward secrecy protocol that works in synchronous and
asynchronous messaging environments.
- Themis -
Multi-language framework for making typical encryption schemes easy to
use: data at rest, authenticated data exchange, transport protection,
authentication, and so on.
GUI
- Pull
to refresh - A swipe refresh layout is available in the v4 support
library.
- Cardslib
- Android Library to build a UI Card.
- AndroidStaggeredGrid
- Grid view which supports multiple columns with rows of varying
sizes.
- Flow - Library that
helps with describing an app as a collection of moderately independent
screens.
- SortableTableView
- An Android library containing a simple TableView and an advanced
SortableTableView providing a lot of customisation possibilities to fit
all needs.
- MaterialProgressBar
- Material design ProgressBar with consistent appearance.
- AndroidFillableLoaders
- Fillable progress view working with SVG paths. Nice option too for
creating interesting app logos.
- NexusDialog -
Allows you to easily and quickly create forms in Android with little
code.
- Snap
RecyclerView Utils - Populate Single or multiple Layout RecyclerView
without creating an Adapter.
- MultiSnapRecyclerView
- Android library for multiple snapping of RecyclerView
- SwipeableCard
- Implementation of swipe card like StreetView!!
- ElasticProgressBar
- Beautiful loading bar.
- EntryScreenManager
- Intro/Entry/Walkthrough/Starting Screens.
- EasyIntro - The
flexible, easy to use, all in one app intro library for your Android
project.
- Material-Calendar-View
- Material Design Calendar compatible with API 8+
- CrunchyCalendar
- A material calendar widget with infinite scrolling, date range
selection and color customization.
- SmoothOverscrollableScrollView
- Small custom view with smooth overscroll. You can add header with
scale background
- SectionedRecyclerViewAdapter
- An Adapter that allows a RecyclerView to be split into Sections with
headers and/or footers.
- DragListView -
Drag and drop to reorder items in a list, grid or board.
- Animated
Expanding ListView - Animated Expanding ListView provides a fancy
animation on expanding or collapsing the content of a listview
item.
- TastyToast -
Toasts with icons and color.
- DotLoader - A
customizable loading animation with Dots.
- PodSlider - A
customizable slider widget adhering to material design specs.
- TapTargetView - An
implementation of tap targets from the Material Design guidelines for
feature discovery.
- ShowCaseView -
The ShowcaseView library is designed to highlight and showcase specific
parts of apps to the user with a attractive and flat overlay.
- MaterialIntroScreen
- Material Intro Screen implementation with easily extensible API.
- FloatingView
- FloatingView can make the target view floating above the anchor view
with cool animation.
- Timecon -
Easy-to-use animated clock icon
- Audiogram -
Lightweight audiowave progressbar
- Bubbles
for Android - Facebook like chat bubble library
- Litho (By Facebook)
- A declarative framework for building efficient UIs on Android.
- MultiViewAdapter
- Recyclerview Adapter library to create composable view holders.
- LGSnackbar - An
easy to use and customisable wrapper of the native Android Snackbar
which stays visible across multiple activities.
- ShimmerLayout
- Memory efficient shimmering effect for Android applications.
- CircleProgressBar
- A simple library for creating circular progressbars for Android.
- Easy-Signature-Android
- An simple ui library that provides a plugable signature view.
- Flashbar - A
highly customizable, powerful and easy-to-use alerting library for
Android.
- YuanaItemSettingView
- Customizable Item Setting View for Android.
- Gradients - A
curated collection of splendid gradients.
- OneAdapter -
RecyclerView Adapter with multiple modules and hooks to simplify and
enhance the use while preventing common mistakes.
Paginate
ActionBar
Navigation
Animations
- Rebound - Rebound
is a Java library that models spring dynamics.
- Android
View Animations - Cute view animation collection.
- Android-Transition
- Allows the easy creation of view transitions that react to user
inputs.
- Android-View-Actions
- Makes creating complex animations for views easy.
- Swipper - Android
library for swipeable gestures to control volume , brightness and seek
.
- Spotlight -
Android Library that lights items for tutorials or walk-throughs
etc…
Images
- Crescento -
Explore new style in material design by adding curve below image
view.
- android-crop -
Library project for cropping images.
- CircularImageView
- Custom view for circular images while maintaining the best draw
performance.
- Android-Image-Filter
- Library project for applying image filters easily.
- Compressor -
Compressor is a lightweight and powerful android image compression
library.
- ShapeImageView
- Library to display images in different shapes.
- FloatingLabel
- FloatingLabel Allows you to create a blow kind of EditText.
Doesn’t have Gradle or Maven Support.
- MaterialEditText
- Supporting Floating Labels, Single Line Ellipsis, Max/Min Characters,
Helper Text and Error Text with Custom Colors.
- EmojiCompat
- Adds emoticons to your app
- MaterialSearchBar
- Material Design Search Bar for Android
- InputMask -
Pattern-based user input formatter, parser and validator.
- SweetPassword
- Password EditText that allows to custom toggle button
- VoiceOverlay
- An overlay that gets your user’s voice permission and input as text in
a customizable UI.
Loading Images
- Picasso - A powerful
image downloading and caching library for Android.
- Universal
Image Loader - Asynchronous, out of the box loading and caching of
images.
- Glide - An image
loading and caching library for Android focused on smooth scrolling,
Recommended by Google.
- Fresco - An Android
library for managing images and the memory they use.
- Glide
Bitmap Pool - Glide Bitmap Pool is a memory management library for
reusing the bitmap memory.
- Coil - Image loading
for Android backed by Kotlin Coroutines.
- MediaPicker -
Android Library that lets you to select multiple images, video or voice
for Android
- Android
Image Picker - A library that makes images and videos selection from
gallery feels easy. It also support GIF and simple camera action
Video
- ijkplayer -
Android/iOS video player based on FFmpeg n3.2, with MediaCodec,
VideoToolbox support.
- Exoplayer -
ExoPlayer is an application level media player for Android, allow
playing audio and video both locally and over the Internet. Supports
features like Dynamic adaptive streaming over HTTP (DASH),
SmoothStreaming and Common Encryption
- VideoPlayView
- Custom Android view with video player, play/stop, loader and
placeholder image.
Camera
- MagicalCamera -
Simple way to take or select photos of your gallery, with other features
for manage pictures.
- Camera - Use
Android camera to take pictures and videos, based on camera2 api.
Field Validation
- Convalida
- A simple and annotation-based way to validate your input fields.
JSON
Gson - Gson is a
Java library used for serializing and deserializing Java objects from
and into JSON.
Jackson JSON
Processor - High-performance JSON processor.
Moshi - A modern
JSON library for Android and Java. ### Crash monitoring
Fabric Crashlytics - Easy
crash reporting solution.
HockeyApp -
Distribution, Crash Reports, Feedback and Analytics
Splunk MINT - Monitoring,
Crash Reports, Real time data, Statistic.
Bugsnag - Cross platform
error monitoring. Free tier. Support for SDK & NDK. Error reports
include data on device, release, user, and allows arbitrary
data.
Catcho - No
Force Close any more.
Apteligent - Cross
platform crash reporting/analytics solution. Supports NDK log.
Instabug - Bug reporting,
Crash Reporting, In-app Feedback.
Networking
- Ion - Good networking
library for android.
- OkHttp - An HTTP+SPDY
client for Android and Java applications.
- RoboSpice
- Library that makes writing asynchronous network requests easy.
- IceNet - Fast,
Simple and Easy Networking for Android
- Android
Volley - Official Android HTTP library that makes networking for
easier and faster.
- IceSoap -
Easy, asynchronous, annotation-based SOAP for Android.
- node-android -
Run Node.js on Android.
- HappyDns -
A Dns library, user can use custom dns server, dnspod httpdns. Only
support A record.
- RESTMock - HTTP
Web server for mocking API responses in Android Instrumentation
tests.
- Fast-Android-Networking
- A Complete Fast Android Networking Library that also support
HTTP/2.
Logger
- logger - Simple,
pretty and powerful logger for android
- timber - A
logger with a small, extensible API which provides utility on top of
Android’s normal Log class.
- LoggingInterceptor
- An OkHttp interceptor which pretty logs request and response
data.
- Bugfender
- Upload your logs and check them online, specially made for mobile
- EzyLogger -
Simple Lightweight logger
- Logback
Android - Logback port to Android which provides a highly
configurable logging framework for Android apps.
Notifications
Database
- Cupboard -
Access the sqlite easily via direct database access or through the
ContentProvider framework.
- DbInspector -
Provides a simple way to view the contents of the in-app database for
debugging purposes.
- SQLite
Asset Helper - manage database creation and version management using
an application’s raw asset files.
- Realm - The
alternative to SQLite and ORMs: Simple, modern and fast! Object oriented
API and multi platform support.
- Realm
Asset Helper - Copies a realm database from the apk assets folder.
Efficiently handles versioning of read-only realm databases.
- RestorableSQLiteDatabase
- A wrapper to replicate android’s SQLiteDatabase with restoring
capability.
- Nitrite
Database - A NoSQL embedded document store for Android with MongoDb
like API.
ORM
- requery - Compile
time ORM and SQL query library for Java & Android.
- GreenDAO - Light &
fast ORM solution.
- ORMLite -
Lightweight ORM Java package for JDBC and Android.
- ActiveAndroid - Active
record style ORM.
- Sugar ORM - Insanely
easy way to work with Android Databases.
- DBFlow - Fast and
powerful ORM with compile-time annotation processing.
- NexusData -
Object graph and persistence framework for Android.
- SimpleNoSQL - A
simple NoSQL client for Android. Meant as a document store using
key/value pairs and some rudimentary querying. Useful for avoiding the
hassle of SQL code.
- RxSimpleNoSQL -
Reactive extensions for SimpleNoSQL. Manipulate entities using
Observables.
REST
Testing
- Robotium -
Test automation framework for black-box UI tests.
- Roboletric - Unit test
framework to run tests inside the JVM on your workstation, not in the
emulator.
- AssertJ
Android - AssertJ assertions geared towards Android.
- Green
Coffee - Run your Cucumber tests in your Android instrumentation
tests.
Tracking
- MobileAppTracking - Tracking
your marketing campaigns across multiple ad networks.
- Mixpanel - Analytics platform to
analyze the users.
- Countly - Open source mobile &
web analytics, push notifications and crash reporting platform, based on
Node.js, MongoDB and Linux.
- CleverTap - Analytics platform
and user-engagement platform with 1 million free events
Maps
- Google-Directions-Android
- Allows you to calculate the direction between two locations and
display the route on a Google Map using the Google Directions API.
- Android Maps
Extensions - Extending capabilities of Google Maps Android API v2,
adding marker clustering among other things
- MapScaleView -
Scale bar for Google Maps Android API
- GLMap - Crossplatform offline
vector map with MapCSS styling. Offline search and offline navigation
are included.
Utility
- Conceal
SharedPreferences - Secured Preferences using Facebook Secure
Encryption called Conceal.
- EventBus -
EventBus is a library that simplifies communication between different
parts of your application.
- Otto - Event Bus for
Android.
- Weak
handler - Memory safer implementation of android.os.Handler.
- Byte Buddy - Runtime code
generation library with support for Android.
- Secure
Preference Manager - Secure Preference Manager for android. It uses
various Encryption to protect your application’s Shared
Preferences.
- LeakCanary -
Catch memory leaks as they occur.
- Drekkar - An Android
event bus for WebView and JS.
- Androl4b - A vm for
assessing android applications.
- DroidMVP -
Android library to help you incorporate MVP along with Passive View and
Presentation Model patterns into your app.
- EasyDeviceInfo -
Get device information in a super easy way.
- Shutter-Android
- Capture photos/videos from device camera or get photos/video from
gallery app with no runtime permissions needed.
- Validator -
An utilities class to validate text inside TextInputLayout.
- Keyboard
Visibility Event - A DSL to handle soft keyboard visibility change
event.
- TimeIt - A
stopwatch library for android which makes it easy to start, pause,
display and maintain multiple stopwatches in an app.
- Reactor - Reactor
is a fast and secure key-value library for Android.
- Linx - Show logcat
inside the device for debug builds
- Scalpel - View
the entire hierarchy in 3d in the phone.
- Stetho - Debug
hierarchy and network from chrome.
- Android
Debug Database - Android Debug Database is a powerful library for
debugging databases and shared preferences in Android applications.
- Android
Debug Bridge - ADB - a command-line tool to assist in debugging
Android-powered devices
- ADB Enhanced -
a command-line wrapper around ADB for developers, so that, developers
don’t have to remember esoteric version-dependent commands
- Pidcat - a
colored command-line ADB wrapper that only shows log entries for a
specific application package
- AppSpector - Remote Android and
iOS debugging and data collection service. You can debug networking,
logs, SQLite and mock device’s geo location.
Wireless
- SmartGattLib
- Simplifies the work with Bluetooth SMART devices (a.k.a. Bluetooth Low
Energy in Bluetooth 4.0).
Chat & Messaging
- Applozic
Android Chat SDK - Android Chat and Messaging SDK for adding real
time chat and in-app messaging into your android application.
- Qiscus
SDK - Qiscus SDK is a lightweight and powerful android chat library.
Qiscus SDK will allow you to easily integrating Qiscus engine with your
apps to make cool chatting application.
- Kommunicate
Live Chat SDK - Kommunicate provides open source live chat sdk in
android. Kommunicate lets you add real time live chat and in-app
messaging in your mobile (android, iOS) applications and website for
customer support.
- CometChat
Voice, Video and Text Chat SDK with UI - Add voice, video and text
chat to your app (and website) in minutes using CometChat. CometChat’s
SDK includes a complete ready UI so that you don’t have to spend any
time building one! That’s not all, CometChat has out-of-the-box support
for real-time translation, whiteboards, screen sharing, friends sync,
role based access control, credits deduction and more.
- Build
a one-on-one Android chat app using Kotlin - Build a one-one-one
Android chat app in Kotlin within few minutes using CometChat Pro. This
tutorial discusses the features such as login, getting list of contacts,
user presence indicators, sending/receiving messages etc.
- Stream
Chat - Comprehensive SDK & Components for real-time chat,
powered by Stream.
- Add
Push Notifications to Your Android Chat App Using Kotlin - Add push
notifications in your Android chat apps in Kotlin with the help of
CometChat Pro and Firebase Cloud Messaging (FCM).
Custom Dialog
- MediaRecorderDialog
- Custom Dialog to record audio, store it and play it in your
phone.
- HijriDatePicker
- offers a hijri (Islamic Calendar) Date Picker designed on Google’s
Material Design Principals For Pickers.
- Noty - A simple
library for creating animated alerts/dialogs/warnings.
Version Checking
- AppUpdater
- comprehensive and feature rich library, including support for checks
at Amazon and FDroid.
- Gandalf -
comprehensive features and a “companion” iOS solution.
- Siren - focused
feature set that mimicks the popular iOS library of the same name.
Supports Play and Amazon.
- Fit - version
checking callback framework with no UI.
Date & Time
Runtime Permissions
- Permission
Dispatcher - Simple annotation-based API to handle runtime
permissions.
- RxPermissions -
Android runtime permissions powered by RxJava.
- NoPermission -
Simple Android library for permissions request. Consists of only one
class.
- Ask-Permission
- Simple RunTime permission manager.
- Gota - Simplifying
Android Permissions.
- EasyPermissions
- EasyPermissions is a wrapper library to simplify basic system
permissions logic when targeting Android M or higher.
Payments
Other
- Android
Support library - The Android Support Library package is a set of
code libraries that provide backward-compatible versions of Android
framework API.
- Google Play
Services - Library to access Google services, such as account
syncing, Google+ (sharing, single sign-on), Google Maps, Location APIs,
Google Play Games, Cloud Messaging, Android Device Manager, and
others.
- Tape - A lightning
fast, transactional, file-based FIFO for Android and Java.
- Guava: Google Core
Libraries for Java - Collections, caching, primitives support,
concurrency libraries, common annotations, string processing, I/O, and
so forth.
- Android Scripting
- Allows to run scripting languages on Android.
- Android
Priority Job Queue - Implementation of a Job Queue to easily
schedule jobs (tasks) that run in the background, improving UX and
application stability.
- RateMeMaybe - Asks
the user if (s)he wants to open the Play Store to rate your
application.
- Easy
Rating Dialog - Lib provides a simple way to display an alert dialog
for rating app.
- ZXing
Android-Integration - Integration with Barcode Scanner via
Intent.
- Gradle
Retrolambda Plugin - Java 8 Lambdas on Android!
- RxJava- RxJava –
Reactive Extensions for the JVM – a library for composing asynchronous
and event-based programs using observable sequences for the Java
VM.
- RxAndroid -
Adds minimum RxJava bindings for easy writing of reactive Android java
code.
- RxBinding-
RxBinding – RxJava binding APIs for Android UI widgets from the platform
and support libraries.
- Caffeine - A
collection of utility classes that help make Android development
faster.
- AboutLibraries -
Automatically generates an About this app section, with a list of used
libraries.
- AudioPlayerView
- A view that loads audio from an url and have basic playback
tools.
- andle - command line
tool help you sync dependencies, sdk or build tool version.
- Typography -
An Android library that makes it easy to use custom fonts in views.
- Calligraphy -
Custom fonts in Android an OK way.
- transai - command
line tool help you manage localization string files.
- Android-Link-Preview
- It makes a preview from an url, grabbing all the information such as
title, relevant texts and images.
- Sensey - Detecting
gestures in a snap.
- UserAwareVideoView
- A customized video view that will automatically pause video is user is
not looking at device screen!
- Flexbox
Layout - FlexboxLayout is a library which brings the similar
capabilities of CSS Flexible Box Layout Module to Android.
- Agile
Boiler Plate - The boiler plate is based on MVP architecture and it
is fully based on Dependency Injection design pattern using
Dagger2.
- Gradle
buildSrcVersions - A kotlin dsl to simplify dependencies
management
- Teller
- Teller facilitates the downloading, saving, and reading of the cached
data of your app. Keep your user’s data fresh and remove those annoying
loading screens!
Resources
Code examples
Podcasts
- Fragmented is the
Android developer podcast where Donn Felker and Kaushik Gopal talk about
building good software and becoming better Android developers.
- Android Developers
Backstage is a podcast by and for Android developers. Hosted by
developers from the Android engineering team, this show covers topics of
interest to Android programmers, with in-depth discussions and
interviews with engineers on the Android team at Google.
- Android
Dialogs is a video based podcast, where they have bite-sized
conversations with people from the Android community.
- The
Context a podcast about Android Development with Hannes Dorfmann,
Artem Zinnatullin and wonderful guests!
- Talking Kotlin - A Podcast
on Kotlin and more.
- Android
Authority is a weekly Android podcast hosted by Adam Doud, Joe
Hindy, and Jonathan Feist from the Android Authority team.
- Android Central
- is a weekly Android podcast hosted by the Android Central team.
More lists of libraries
Development Alternatives
My personal recommendation is (for now) to use the android api to
build a native app. Scala can help to build this native apps with
cleaner code but it adds to many methods (Multidex required). Kotlin is
a modern language with 100% interoperatibility with java projects
without multidex. But there are also use cases where
alternatives like cross-platform development can be useful.
C#
- Xamarin -
Framework to create native iOS, Android, Mac and Windows apps in
C#.
HTML, CSS and Javascript
- PhoneGap - Open source framework
by Adobe to create cross platform mobile apps using HTML, CSS, and
JavaScript.
- Titanium
- Open-source framework to create ‘native’ cross platform apps using
JavaScript.
- NativeScript - An
open-source framework to build native iOS and Android apps with
JavaScript from a single code base.
- React Native
- A framework for building native apps with React by Facebook.
- Ionic Framework - A
framework to build hybrid apps with mobile-optimized HTML, CSS and JS
with AngularJS.
- Apache
Cordova - Cordova based applications are, at the core, applications
written with web technology: HTML, CSS and JavaScript.
- Capacitor -
Build cross-platform Native Progressive Web Apps for iOS, Android, and
the web. Very promising Cordova alternative.
Lua
- Corona SDK - Framework
to create native iOS and Android Apps (especially Games).
Scala
- Scaloid - Library
for less painful Android development with Scala.
- Macroid - A modular
functional UI language for Android.
Groovy
Kotlin
- Anko - DSL for Android
written in Kotlin by JetBrains.
- Kotterknife
- Android view injection written in Kotlin based on ButterKnife
- Android
Kotlin Samples - Some basic Android code samples written in
Kotlin.
- Kotlin
coding puzzles - Set of programming challenges thats helps to
improve whiteboard coding and problem-solving skills.
- KAndroid -
Lightweight library providing useful extensions to eliminate boilerplate
code in Android SDK.
- RxKotlin/Pocket -
This app help user to save links easily, and can export to Evernote as
weekly.
- Android
Clean Architecture - Kotlin - A base project using the Uncle Bob’s
clean architecture with Kotlin language and the latest Android
technologies.
- Koin - Lightweight dependency
injection framework for Kotlin
Flutter
- Flutter - Google’s mobile app SDK
for high-quality native interfaces for Android and iOS in very quick
time.
- awesome-android-performance
- A list of awesome Android tutorials, videos and tools for performance
optimization.
- Booster - Booster is
an optimization toolkit for Android applications.
Other Awesome Lists
Other amazingly awesome lists can be found in the awesome-awesomeness
list.
Contributing
Your contributions are always welcome! Please read the contribution guidelines first.
android.md
Github