Debugging an Android application is a science that a developer needs to be able to master. Most debugging tools have a learning curve in order to be able to play with them efficiently, and to know which one needs to be used in a particular situation. Android provides a set of tools that take some time to get to know, and due to the particular nature of Android as a mobile platform, some tools require specific knowledge of debugging, such as threading and memory management.
After reading this chapter, the user will be aware of all the problems that can happen when we are developing an Android application (ANRs, memory leaks, incorrect threading, and so on) and which tool must be used in order to analyze it, and then solve it. Using advanced techniques, such as profiling, will help us to find bugs, memory leaks, and incorrect threading on our application; these things cannot be easily seen by merely using the application.