Awesome Android
A curated list of awesome Android libraries and resources. For general Java libraries have a look at awesome-java.
目录
Libraries
Charts
- AChartEngine - Charting Engine.
- EazeGraph - Chart and graph library.
Dependency Injection
- RoboGuice - Dependency injection framework for Android.
- Dagger - Dependency injection framework for Java and Android.
- Butter Knife - View "injection" library for Android.
Game Development
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.
- AQuery - Android-Query (AQuery) is a light-weight library for doing asynchronous tasks and manipulating UI elements in Android.
- Flow - Library that helps with describing an app as a collection of moderately independent screens.
- Crouton - Context sensitive notifications for Android
- DragSortListView - Extension of the Android ListView that enables drag-and-drop reordering (No longer maintained).
ActionBar
- ActionBarSherlock - ActionBar for older Android versions.
- FadingActionBar - Fading action bar effect that can be seen in the new Play Music app.
Navigation
- SlidingMenu - Library to create applications with slide-in menus.
- PagerSlidingTabStrip - An interactive indicator to navigate between the different pages of a ViewPager.
- Page View indicator - Support for horizontally scrolling ViewPager.
Animations
- NineOldAndroids - Library for using the Honeycomb animation API on all versions of the platform back to 1.0.
- Rebound - Rebound is a java library that models spring dynamics.
- Android View Animations - Cute view animation collection.
Images
- android-crop - Library project for cropping images.
- CircularImageView - Custom view for circular images while maintaining the best draw performance.
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.
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.
Crash monitoring
- Crashlytics - Easy crash reporting solution.
- HockeyApp - Distribution, Crash Reports, Feedback and Analytics
Networking
- OkHttp - An HTTP+SPDY client for Android and Java applications.
- Asynchronous Http Client - An Asynchronous HTTP Library.
- RoboSpice - Library that makes writing asynchronous network requests easy.
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.
ORM
- GreeDAO - Light & fast ORM solution.
- ormLight - Lightweight ORM Java package for JDBC and Android.
- ActiveAndroid - Active record style ORM.
REST
- Retrofit - Retrofit turns your REST API into a Java interface.
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.
Tracking
- MobileAppTracking - Tracking your marketing campaigns across multiple ad networks.
- Mixpanel - Analytics platform to analyze the users.
Utility
- EventBus - EventBus is a library that simplifies communication between different parts of your application.
- Otto - Event Bus for Android.
Wireless
- SmartGattLib - Simplifies the work with Bluetooth SMART devices (a.k.a. Bluetooth Low Energy in Bluetooth 4.0).
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.
- Android Annotation framework - Using Java annotations, developers can show their intent and let AndroidAnnotations generate the plumbing code at compile time.
- Google Core Libraries - 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!
Resources
- Vogella Tutorials - Very good tutorials by Lars Vogel.
- [Android Design in Action Video series] (https://www.youtube.com/playlist?list=PLWz5rJ2EKKc8j2B95zGMb8muZvrIy-wcF) The video series by Android Design Team of Google.
- [Android Design in Action slides] (https://play.google.com/store/apps/details?id=com.astuetz.android.adia&feature=md)- The application that gives you access to the slides of the video series.
- [Android DevBytes Video Series] (https://www.youtube.com/playlist?list=PLWz5rJ2EKKc_XOgcRukSoKKjewFJZrKV0) - It is the technical counterpart of Android Design in Action series.
- Android Hive Tutorials - Very good tutorials for beginners.
- Android Weekly - Newsletter with weekly information about android.
- Android Asset Studio - Generator for icons and other assets.
- Android Action Bar Style Generator.
- Device Art Generator - Wraps app screenshots in real device artwork.
- [Android UI design resources] (http://androiduiux.com/free-design-resources/) - Gives you wide variety of design resources form a Google Developer Expert in UI/UX.
- [Pencil Project] (http://pencil.evolus.vn/) - An open source prototyping software.
More lists of libraries
- The Android Arsenal - Large list of android libraries
- DevAppsDirect - Demo Market - App that demonstrates different libraries.
- Square libraries - Multiple high quality libraries by square.
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 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.
Lua
- Corona SDK - Framework to create native iOS and Android Apps (especially Games).
Scala
- Scala on Android - Introduction to Scala on Android.
- Scaloid - Library for less painful Android development with Scala.
- Macroid - A modular functional UI language for Android.
Groovy
- Groovy on Android - Introduction to Groovy on Android.
- Groovy Language Support for Android - Gradle Plugin for Compiling Groovy for Android.
- SwissKnife - A multi-purpose Groovy library containing view injection and threading for Android using annotations.
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.