Android Studio enables you to debug apps running on the emulator or on an Android device.With Android Studio, you can:
R.java is very important in android application development. It is used to identify all resources data such as id, layout, image, drawable resource etc. R.java is generated by android studio automatically. But it is sometime confused for developer to use it. This article will help you to resolve these problems about R.java you may encounter. In both Android Studio and Eclipse you can easily suppress lint issues directly without having to write the annotation yourself. Just invoke the quickfix for the warning, and one of the options will be to ignore the issue with an annotation; this will annotate either the local declaration, or the method, or the class, or the field, depending on. You can easily search for unused resources from Android Studio. Just press CtrlAltShiftiand type 'unused resources' (without quotes). That will execute lint. Super easy way to run lint commands (and other stuff from IDE). If you are searching for a class named “ItemDetailFragment”, you can actually type “IDF” and it will find it. Imagine that your colleague just told you that the juicy part is in ExcitingClass at line 23. You can open the file directly by appending a “:” to the class name in the Open Class dialog.
To debug your app, Android Studio builds a debuggable version of your app, connectsto a device or to the emulator, installs the app and runs it. The IDE shows the system logwhile your app is running and provides debugging tools to filter log messages, work withbreakpoints, and control the execution flow.
Figure 1. The Choose Device window enables you to select a physical Android device or a virtual device to debug your app.
To run your app in debug mode, you build an APK signed with a debug key and install it on aphysical Android device or on the Android emulator.To set up an Android device for development, see UsingHardware Devices. For more information about the emulator provided by the Android SDK, seeUsing the Emulator.
To debug your app in Android Studio:
Figure 1 shows the Choose Device window. The list shows all the Android devicesconnected to your computer. Select Launch Emulator to use an Android virtual deviceinstead. Click the ellipsis to open theAndroid Virtual Device Manager.
Android Studio opens the Debug tool window when you debug your app. To open theDebug window manually, click Debug.This window shows threads and variables in the Debugger tab, the device status in theConsole tab, and the system log in the Logcat tab. The Debug toolwindow also provides other debugging tools covered in the following sections.
Figure 2. The Debug tool window in Android Studio showingthe current thread and the object tree for a variable.
The system log shows system messages while you debug your app. These messages includeinformation from apps running on the device. If you want to use thesystem log to debug your app, make sure your code writes log messages and prints the stacktrace for exceptions while your app is in the development phase.
To write log messages in your code, use the Log
class. Log messageshelp you understand the execution flow by collecting the system debug output while you interactwith your app. Log messages can tell you what part of your application failed. For moreinformation about logging, see Reading and Writing Logs.
The following example shows how you might add log messages to determine if previous stateinformation is available when your activity starts:
During development, your code can also catch exceptions and write the stack trace to the systemlog:
Note: Remove debug log messages and stack trace print calls fromyour code when you are ready to publish your app. You could do this by setting a DEBUG
flag and placing debug log messages inside conditional statements.
Both the Android DDMS (Dalvik Debug Monitor Server) and the Debug tool windowsshow the system log; however, the Android DDMS tool window lets you view only log messagesfor a particular process. To view the system log on the Android DDMS tool window:
Figure 4. The system log in the Android DDMS toolwindow.
The Android DDMS tool window gives you access to some DDMS features from Android Studio.For more information about DDMS, see Using DDMS.
The system log shows messages from Android services and other Android apps. To filter the logmessages to view only the ones you are interested in, use the tools in the Android DDMSwindow:
Breakpoints enable you to pause the execution of your app at a particular line of code, examinevariables, evaluate expressions, and continue the execution line by line. Use breakpoints todetermine the causes of run-time errors that you can't fix by looking at your code only. To debugyour app using breakpoints:
Android Studio pauses the execution of your app when it reaches the breakpoint. You can thenuse the tools in the Debug tool window to identify the cause of the error.
Figure 5. A red dot appears next to the line when you seta breakpoint.
To view all the breakpoints and configure breakpoint settings, click ViewBreakpoints on the left side of the Debug toolwindow. The Breakpoints window appears, as shown in figure 6.
Figure 6. The Breakpoints window lists all the currentbreakpoints and includes behavior settings for each.
The Breakpoints window lets you enable or disable each breakpoint from thelist on the left. If a breakpoint is disabled, Android Studio does not pause your app whenit hits that breakpoint. Select a breakpoint from the list to configure its settings.You can configure a breakpoint to be disabled at first and have the system enable it after adifferent breakpoint is hit. You can also configure whether a breakpoint should be disabled afterit is hit. To set a breakpoint for any exception, select Exception Breakpointsin the list of breakpoints.
After you set breakpoints in your code, click Rerun to start the app again. When a breakpoint ishit, Android Studio pauses the app and highlights the breakpoint in the source code. TheDebug tool window lets you examine variables and control the execution step bystep:
To examine the object tree for a variable, expand it in the Variables view. If the Variables view is not visible, click Restore Variables View .
To evaluate an expression at the current execution point, click Evaluate Expression .
To advance to the next line in the code (without entering a method), click Step Over .
To advance to the first line inside a method call, click Step Into .
To advance to the next line outside the current method, click Step Out .
To continue running the app normally, click Resume Program .
Figure 7. The Variables view in the Debug tool window.
Android Studio lets you track objects that are being allocated on the Java heap and see whichclasses and threads are allocating these objects. This allows you to see the list of objectsallocated during a period of interest. This information is valuable for assessing memory usagethat can affect application performance.
To track memory allocation of objects:
Android Studio shows the objects that the system allocated with the following information:
Figure 8. Object allocation tracking in Android Studio.
Even if your application does not generate runtime errors, this does not mean it is free ofproblems. You should also consider the following issues:
The Android Device Monitor is a stand-alone tool with a graphical user interface for serveralAndroid application debugging and analysis tools, including the Dalvik Debug Monitor Server (DDMS).You can use the Android Device Monitor to analyze memory usage, profile methods,monitor network traffic and simulate incoming calls and messages.
To open the Android Device Monitor from Android Studio, clickMonitor on the toolbar. The Android Device Monitoropens in a new window.
For more information about the Android Device Monitor and DDMS, seeDevice Monitor andUsing DDMS.
Android Studio enables you to capture a screenshot or a short video of the device screenwhile your app is running. Screenshots and videos are useful as promotional materials for yourapp, and you can also attach them to bug reports that you send to your development team.
To take a screenshot of your app:
To take a video recording of your app: