| page.title=Using the Dev Tools App |
| parent.title=Debugging |
| parent.link=index.html |
| @jd:body |
| |
| <p>The Dev Tools application is installed by default on all system images included with the SDK, |
| so you can use it with the Android Emulator. With the Dev Tools application, you can enable a |
| number of settings on your device that will make it easier to test and debug your applications.</p> |
| |
| <p> The Dev Tools application relies on a number of permissions that are not available for |
| third party applications. If you'd like to install the Dev Tools application |
| on a real development device, you'd have to build a system image for that device and sign |
| the Dev Tools application with the same key as used for the system image.</p> |
| |
| <p>To get started, launch the Dev Tools application and select <strong>Development Settings</strong>. This will |
| open the Development Settings page with the following options (among others):</p> |
| |
| <dl> |
| <dt><strong>Debug app</strong></dt> |
| |
| <dd> |
| Lets you select the application to debug. You do not need to set this to attach a debugger, |
| but setting this value has two effects: |
| |
| <ul> |
| <li>It will prevent Android from throwing an error if you pause on a breakpoint for a long |
| time while debugging.</li> |
| |
| <li>It will enable you to select the <em>Wait for Debugger</em> option to pause application |
| startup until your debugger attaches (described next).</li> |
| </ul> |
| </dd> |
| |
| <dt><strong>Wait for debugger</strong></dt> |
| |
| <dd>Blocks the selected application from loading until a debugger attaches. This way you can |
| set a breakpoint in {@link android.app.Activity#onCreate onCreate()}, |
| which is important to debug the startup process of an Activity. |
| When you change this option, any currently running instances of the selected application will |
| be killed. In order to check this box, you must have selected a debug application as described |
| in the previous option. You can do the same thing by adding {@link |
| android.os.Debug#waitForDebugger()} to your code.</dd> |
| |
| <dt><strong>Show screen updates</strong></dt> |
| |
| <dd>Flashes a momentary pink rectangle on any screen sections that are being redrawn. This is |
| very useful for discovering unnecessary screen drawing.</dd> |
| |
| <dt><strong>Immediately destroy activities</strong></dt> |
| |
| <dd>Tells the system to destroy an activity as soon as it is stopped (as if Android had to |
| reclaim memory). This is very useful for testing the {@link |
| android.app.Activity#onSaveInstanceState} / {@link |
| android.app.Activity#onCreate(android.os.Bundle)} code path, which would otherwise be difficult |
| to force. Choosing this option will probably reveal a number of problems in your application |
| due to not saving state. For more information about saving an activity's state, see the |
| <a href="{@docRoot}guide/components/activities.html#SavingActivityState">Activities</a> |
| document.</dd> |
| |
| <dt><strong>Show CPU usage</strong></dt> |
| |
| <dd>Displays CPU meters at the top of the screen, showing how much the CPU is being used. The |
| top red bar shows overall CPU usage, and the green bar underneath it shows the CPU time spent |
| in compositing the screen. |
| <p class="note">Note: You cannot turn this feature off once it is on, without |
| restarting the emulator.</p></dd> |
| |
| <dt><strong>Show background</strong></dt> |
| |
| <dd>Displays a background pattern when no activity screens are visible. This typically does not |
| happen, but can happen during debugging.</dd> |
| </dl> |
| |
| <p>These settings will be remembered across emulator restarts.</p> |
| |
| |
| |