The Android framework has been written to make the development lifecycle quicker, so that developers can write powerful applications in less time. Much like any other framework, there are several open source libraries available, ranging from custom views to supporting third-party components. Here is my list of favourite libraries, which I believe can save you some precious time while developing applications and ensure they are good-looking and user-friendly.
This one deserves to be at the top of the list. Actionbar was introduced in API-11 of the Android SDK and the support library by Google does not provide a proper backport. This library by Jake Watson is now a part of almost every new Android application developed, and is undoubtedly on the top of my list. It works seamlessly with newer views such as NavigationDrawer, SlidingPaneLayout, Fragments, etc.
This is a simple ORM solution for your applications. It is as easy as creating objects and saving them to the SQLite database. The setup of classes makes use of Java annotations. This saves a whole lot of time on configurations, and gives the developer more time to spend on the login than on the syntaxes. Once used, you will find it hard to live without it.
Do you always forget to check for null when you getIntent().getExtras()? Do you think casting findViewById() to a TextView shouldnt be necessary? RoboGuice 2 will help you. Inject your View, Resource, System Service, or any other object, and let RoboGuice 2 take care of the details. It makes the code slimmer and reduces several common runtime errors.
This is a powerful and lightweight JSON parser, specifically for Android. If you have a Web-service returning JSON, use jsonschema2pojo.org (or some other similar tool) to generate the POJOs, and with a single line of code, you can parse the JSON using this library. Use GSON along with ActiveAndroid and you can reduce the development time considerably.
This is a neat replacement for toasts. It is nicely implemented and highly customisable. It gives your application a notification system which is cleaner and more aesthetic than native toasts, and is rightly named croutons.
This is another cool library from the developer of Actionbar. It makes the viewpager more usable and enables easier navigation between fragments. Users have a clear idea of where they have navigated.
This is one of my favourites. If you are thinking of developing live wallpapers or 3D games, this library might be very handy. One can easily export the 3D models from tools like Blender and render them on the devices using openGLES with this library. Adding animations like rotation, or scaling on user events is a cakewalk.
Universal Image Loader
Handling large bitmaps has given nightmares to many Android developers. This lightweight library saves you the effort of handling bitmaps and provides great support for caching images. One can easily figure out how to decode the bitmaps in the app. Definitely a lifesaver of a library.
This is an automation testing framework for Android. Developers and testers can generate test cases and ensure that minor changes do not introduce new bugs. It might seem to be an overhead in the early stages of development but helps keep maintenance work easy.
This quickly adds support for scanning bar codes in an Android application. Easy to configure and use. It has a high scanning efficiency.
Tesseract is a highly optimised optical character reader library available for Android. This is a cross-platform library and will require some basic knowledge of using NDK in an Android app.
This plots neat and elegant graphs in various styles. The javadocs might not be great, and it might not be all that easy to develop with only a few resources available and a large number of classes, but the output is definitely worth the effort.