Awesome Android

awesome Build Status PRs Welcome

About

A curated list of awesome Android libraries and resources. For general Java libraries have a look at awesome-java14k 3k .

Supported with ❤️ by Instabug

android

Instabug SDK allows Android developers to receive detailed bug reports from users and testers directly from inside the app. It attaches screenshots, screen recordings, network requests, and reproduce steps with each bug report. This minimizes debugging time and helps developers in tracing weird bugs. Learn more.🚀

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

  • AChartEngine405 198 - Charting Engine.
  • EazeGraph664 80 - Chart and graph library.
  • WilliamChart3k 751 - Chart library with good motion capabilities.
  • HelloCharts4k 1k - Chart and graph library with support for scaling, scrolling and animations.
  • MPAndroidChart18k 6k - An Android chart and graph library supporting scaling and dragging by gesture.
  • ArcChartView - Draw Creative Statistic Arc Charts.

Cloud Services

  • CloudRail - Unified API Library for: Cloud Storage, Social Profiles, Payment, Email, SMS & POIs.

Data binding

  • Anvil978 72 - 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 211k 1k - A fast dependency injector for Android and Java.
  • Butter Knife - View "injection" library for Android.
  • ActivityStarter315 19 - Android Library that provide simpler way to start the Activities with multiple arguments.
  • AndroidAnnotations1k 293 - Java annotations with dependency injection at compile time.
  • Toothpick430 75 - 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.
  • Rajawali1k 376 - Android OpenGL ES 2.0/3.0 Engine
  • Cocos2d-x - Cross-platform 2d game framework.
  • JustWeEngine715 123 - 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.

GUI

  • Pull to refresh - A swipe refresh layout is available in the v4 support library.
  • Cardslib5k 2k - Android Library to build a UI Card.
  • AndroidStaggeredGrid5k 1k - Grid view which supports multiple columns with rows of varying sizes.
  • Flow3k 293 - Library that helps with describing an app as a collection of moderately independent screens.
  • SortableTableView777 189 - An Android library containing a simple TableView and an advanced SortableTableView providing a lot of customisation possibilities to fit all needs.
  • MaterialProgressBar1k 215 - Material design ProgressBar with consistent appearance.
  • AndroidFillableLoaders2k 250 - Fillable progress view working with SVG paths. Nice option too for creating interesting app logos.
  • NexusDialog19 3 - Allows you to easily and quickly create forms in Android with little code.
  • Snap RecyclerView Utils75 13 - Populate Single or multiple Layout RecyclerView without creating an Adapter.
  • MultiSnapRecyclerView - Android library for multiple snapping of RecyclerView
  • SwipeableCard611 108 - Implementation of swipe card like StreetView!!
  • ElasticProgressBar279 39 - Beautiful loading bar.
  • EntryScreenManager27 10 - Intro/Entry/Walkthrough/Starting Screens.
  • EasyIntro67 18 - The flexible, easy to use, all in one app intro library for your Android project.
  • Material-Calendar-View102 31 - Material Design Calendar compatible with API 8+
  • SectionedRecyclerViewAdapter598 175 - An Adapter that allows a RecyclerView to be split into Sections with headers and/or footers.
  • DragListView330 119 - Drag and drop to reorder items in a list, grid or board.
  • Animated Expanding ListView126 48 - Animated Expanding ListView provides a fancy animation on expanding or collapsing the content of a listview item.
  • TastyToast1k 248 - Toasts with icons and color.
  • DotLoader87 18 - A customizable loading animation with Dots.
  • PodSlider82 24 - A customizable slider widget adhering to material design specs.
  • TapTargetView3k 332 - An implementation of tap targets from the Material Design guidelines for feature discovery.
  • ShowCaseView24 6 - The ShowcaseView library is designed to highlight and showcase specific parts of apps to the user with a attractive and flat overlay.
  • MaterialIntroScreen2k 247 - Material Intro Screen implementation with easily extensible API.
  • FloatingView1k 178 - FloatingView can make the target view floating above the anchor view with cool animation.
  • Timecon - Easy-to-use animated clock icon
  • Audiogram40 12 - Lightweight audiowave progressbar
  • Bubbles for Android1k 216 - Facebook like chat bubble library
  • Litho (By Facebook)6k 449 - A declarative framework for building efficient UIs on Android.
  • MultiViewAdapter273 43 - Recyclerview Adapter library to create composable view holders.
  • LGSnackbar13 2 - An easy to use and customisable wrapper of the native Android Snackbar which stays visible across multiple activities.
  • ShimmerLayout793 74 - 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.

Paginate

  • NoPaginate33 6 - Simple Android pagination library

ActionBar

Navigation

  • SlidingMenu7k 4k - Library to create applications with slide-in menus.
  • SlidingTutorial2k 205 - Simple library that helps to create awesome sliding android app tutorials.
  • PagerSlidingTabStrip3k 1k - An interactive indicator to navigate between the different pages of a ViewPager.
  • Page View indicator - Support for horizontally scrolling ViewPager.
  • RecyclerTabLayout914 169 - An efficient TabLayout library implemented with RecyclerView.
  • MaterialDrawer9k 2k - Simple take on a material design navigation drawer.
  • Debug-Artist - Debug menu to enable leakcanary, scalpel and others easy.
  • Floating-Navigation-View791 126 - A simple Floating Action Button that shows an anchored Navigation View.

Animations

  • Rebound5k 888 - Rebound is a Java library that models spring dynamics.
  • Android View Animations8k 2k - Cute view animation collection.
  • Android-Transition579 79 - 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 .
  • Spotlight923 55 - Android Library that lights items for tutorials or walk-throughs etc...

Images

  • Crescento9 1 - Explore new style in material design by adding curve below image view.
  • android-crop4k 1k - Library project for cropping images.
  • CircularImageView1k 287 - Custom view for circular images while maintaining the best draw performance.
  • Android-Image-Filter539 188 - Library project for applying image filters easily.
  • Compressor - Compressor is a lightweight and powerful android image compression library.

Inputs

  • FloatingLabel246 63 - FloatingLabel Allows you to create a blow kind of EditText. Doesn't have Gradle or Maven Support.
  • MaterialEditText4k 971 - Supporting Floating Labels, Single Line Ellipsis, Max/Min Characters, Helper Text and Error Text with Custom Colors.
  • Emojicon3k 878 - Adds emoticons to your app
  • MaterialSearchBar1k 156 - Material Design Search Bar for Android
  • InputMask385 38 - Pattern-based user input formatter, parser and validator.

Loading Images

  • Picasso15k 4k - A powerful image downloading and caching library for Android.
  • Universal Image Loader17k 8k - Asynchronous, out of the box loading and caching of images.
  • Glide20k 4k - An image loading and caching library for Android focused on smooth scrolling, Recommended by Google.
  • Fresco15k 4k - An Android library for managing images and the memory they use.
  • Glide Bitmap Pool239 38 - Glide Bitmap Pool is a memory management library for reusing the bitmap memory.
  • MediaPicker62 23 - Android Library that lets you to select multiple images, video or voice for Android

Video

  • ijkplayer17k 5k - Android/iOS video player based on FFmpeg n3.2, with MediaCodec, VideoToolbox support.
  • Exoplayer10k 3k - 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
  • Easy-Video-Player857 203 - Easy Video Player is very simple and easy to use in our app.
  • VideoPlayView42 5 - Custom Android view with video player, play/stop, loader and placeholder image.

Camera

  • MagicalCamera200 44 - Simple way to take or select photos of your gallery, with other features for manage pictures.

Field Validation

  • Convalida11 2 - A simple and annotation-based way to validate your input fields.

JSON

  • Gson10k 3k - Gson is a Java library used for serializing and deserializing Java objects from and into JSON.
  • Jackson JSON Processor725 311 - High-performance JSON processor.
  • Moshi4k 322 - 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.
  • Catcho14 3 - No Force Close any more.
  • Apteligent - Cross platform crash reporting/analytics solution. Supports NDK log.
  • Instabug - Bug reporting, Crash Reporting, In-app Feedback.

Networking

  • Ion6k 1k - Good networking library for android.
  • OkHttp27k 7k - An HTTP+SPDY client for Android and Java applications.
  • Asynchronous Http Client11k 5k - An Asynchronous HTTP Library.
  • RoboSpice2k 423 - Library that makes writing asynchronous network requests easy.
  • IceNet32 6 - Fast, Simple and Easy Networking for Android
  • Android Volley - Official Android HTTP library that makes networking for easier and faster.
  • IceSoap74 23 - Easy, asynchronous, annotation-based SOAP for Android.
  • node-android486 55 - Run Node.js on Android.
  • HappyDns126 37 - A Dns library, user can use custom dns server, dnspod httpdns. Only support A record.
  • RESTMock569 38 - HTTP Web server for mocking API responses in Android Instrumentation tests.
  • Packetzoom - SDK for optimizing HTTP requests and free analytics service for networking.
  • Fast-Android-Networking1k 239 - A Complete Fast Android Networking Library that also support HTTP/2.

Logger

  • logger7k 1k - Simple, pretty and powerful logger for android
  • timber4k 543 - A logger with a small, extensible API which provides utility on top of Android's normal Log class.
  • LoggingInterceptor637 38 - An OkHttp interceptor which pretty logs request and response data.
  • Bugfender - Upload your logs and check them online, specially made for mobile
  • EzyLogger2 1 - Simple Lightweight logger

Notifications

Database

  • Cupboard - Access the sqlite easily via direct database access or through the ContentProvider framework.
  • DbInspector785 97 - Provides a simple way to view the contents of the in-app database for debugging purposes.
  • SQLite Asset Helper952 244 - manage database creation and version management using an application's raw asset files.
  • Realm10k 2k - The alternative to SQLite and ORMs: Simple, modern and fast! Object oriented API and multi platform support.
  • Realm Asset Helper20 2 - Copies a realm database from the apk assets folder. Efficiently handles versioning of read-only realm databases.
  • RestorableSQLiteDatabase15 1 - A wrapper to replicate android's SQLiteDatabase with restoring capability.
  • Nitrite Database81 10 - A NoSQL embedded document store for Android with MongoDb like API.

ORM

  • requery2k 211 - 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.
  • DBFlow4k 694 - Fast and powerful ORM with compile-time annotation processing.
  • NexusData27 8 - Object graph and persistence framework for Android.
  • SimpleNoSQL424 55 - 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.
  • RxSimpleNoSQL34 1 - 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 Android2k 191 - AssertJ assertions geared towards Android.
  • Green Coffee168 20 - 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-Android685 304 - Allows you to calculate the direction between two locations and display the route on a Google Map using the Google Directions API.
  • Android Maps Extensions370 122 - Extending capabilities of Google Maps Android API v2, adding marker clustering among other things
  • MapScaleView35 11 - Scale bar for Google Maps Android API

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.
  • Otto5k 1k - Event Bus for Android.
  • Weak handler1k 229 - Memory safer implementation of android.os.Handler.
  • Byte Buddy - Runtime code generation library with support for Android.
  • Secure Preference Manager73 17 - Secure Preference Manager for android. It uses various Encryption to protect your application's Shared Preferences.
  • LeakCanary19k 3k - Catch memory leaks as they occur.
  • Drekkar16 1 - An Android event bus for WebView and JS.
  • Androl4b380 112 - A vm for assessing android applications.
  • DroidMVP217 26 - Android library to help you incorporate MVP along with Passive View and Presentation Model patterns into your app.
  • Gota42 7 - Simplifying Android Permissions.
  • EasyDeviceInfo1k 154 - Get device information in a super easy way.
  • Ask-Permission8 5 - Simple RunTime permission manager.
  • Shutter-Android - Capture photos/videos from device camera or get photos/video from gallery app with no runtime permissions needed.
  • Validator15 3 - An utilities class to validate text inside TextInputLayout.

Debugging Tools

  • Linx579 71 - Show logcat inside the device for debug builds
  • Scalpel898 80 - View the entire hierarchy in 3d in the phone.
  • Stetho8k 856 - Debug hierarchy and network from chrome.
  • Android Debug Database3k 275 - Android Debug Database is a powerful library for debugging databases and shared preferences in Android applications.
  • Android Debug Bridge - ADB3k 560 - 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
  • Pidcat3k 384 - a colored command-line ADB wrapper that only shows log entries for a specific application package

Wireless

  • SmartGattLib233 73 - Simplifies the work with Bluetooth SMART devices (a.k.a. Bluetooth Low Energy in Bluetooth 4.0).

Chat & Messaging

  • Applozic Android Chat SDK450 203 - Android Chat and Messaging SDK for adding real time chat and in-app messaging into your android application.
  • Qiscus SDK122 48 - 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.

Custom Dialog

  • MediaRecorderDialog40 5 - Custom Dialog to record audio, store it and play it in your phone.
  • HijriDatePicker34 18 - 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

  • AppUpdater935 186 - comprehensive and feature rich library, including support for checks at Amazon and FDroid.
  • Gandalf268 34 - comprehensive features and a "companion" iOS solution.
  • Siren69 14 - focused feature set that mimicks the popular iOS library of the same name. Supports Play and Amazon.
  • Fit38 2 - version checking callback framework with no UI.

Date & Time

  • ThreeTen Android Backport2k 57 - An adaptation of the JSR-310 backport for Android.
  • Joda-Time Android2k 167 - Joda-Time library with Android specialization.
  • True Time498 44 - Android NTP time library. Get the true current time impervious to device clock time changes.

Runtime Permissions

  • Permission Dispatcher1k 178 - Simple annotation-based API to handle runtime permissions.
  • RxPermissions4k 483 - Android runtime permissions powered by RxJava.
  • NoPermission67 11 - Simple Android library for permissions request. Consists of only one class.

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.
  • Tape2k 298 - A lightning fast, transactional, file-based FIFO for Android and Java.
  • Guava: Google Core Libraries for Java24k 6k - Collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.
  • Android Scripting1k 595 - Allows to run scripting languages on Android.
  • Android Priority Job Queue2k 291 - 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 Dialog95 25 - Lib provides a simple way to display an alert dialog for rating app.
  • ZXing Android-Integration15k 8k - Integration with Barcode Scanner via Intent.
  • Gradle Retrolambda Plugin5k 511 - Java 8 Lambdas on Android!
  • RxJava34k 7k - RxJava – Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.
  • RxBinding6k 746 - RxBinding – RxJava binding APIs for Android UI widgets from the platform and support libraries.
  • Caffeine439 43 - A collection of utility classes that help make Android development faster.
  • AboutLibraries2k 322 - Automatically generates an About this app section, with a list of used libraries.
  • AudioPlayerView81 14 - A view that loads audio from an url and have basic playback tools.
  • andle43 7 - command line tool help you sync dependencies, sdk or build tool version.
  • Typography41 3 - An Android library that makes it easy to use custom fonts in views.
  • Calligraphy7k 919 - Custom fonts in Android an OK way.
  • transai44 4 - command line tool help you manage localization string files.
  • Android-Link-Preview220 61 - It makes a preview from an url, grabbing all the information such as title, relevant texts and images.
  • Sensey2k 175 - Detecting gestures in a snap.
  • UserAwareVideoView42 14 - A customized video view that will automatically pause video is user is not looking at device screen!
  • Flexbox Layout11k 1k - 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.

Resources

Podcast

  • 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.
  • Android Intelligence features in-depth interviews with interesting people from the Android world.
  • The Context488 26 a podcast about Android Development with Hannes Dorfmann, Artem Zinnatullin and wonderful guests!

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 Native69k 18k - 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 Cordova2k 1k - Cordova based applications are, at the core, applications written with web technology: HTML, CSS and JavaScript.
  • Capacitor327 14 - 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

  • Scaloid2k 197 - Library for less painful Android development with Scala.
  • Macroid210 25 - A modular functional UI language for Android.

Groovy

Kotlin

  • Anko6k 517 - DSL for Android written in Kotlin by JetBrains.
  • Kotterknife1k 116 - Android view injection written in Kotlin based on ButterKnife
  • Android Kotlin Samples186 32 - Some basic Android code samples written in Kotlin.
  • KAndroid614 74 - Lightweight library providing useful extensions to eliminate boilerplate code in Android SDK.
  • RxKotlin/Pocket12 2 - This app help user to save links easily, and can export to Evernote as weekly.

Performance

Other Awesome Lists

Other amazingly awesome lists can be found in the awesome-awesomeness20k 3k list.

Contributing

Your contributions are always welcome! Please read the contribution guidelines first.