page.title=Android Debug Bridge
parent.title=Tools
parent.link=index.html
@jd:body

<div id="qv-wrapper">
<div id="qv">
  <h2>ADB quickview</h2>
  <ul>
<li>Manage the state of an emulator or device</li>
<li>Run shell commands on a device</li>
<li>Manage port forwarding on an emulator or device</li>
<li>Copy files to/from an emulator or device</li>
  </ul>

  <h2>In this document</h2>
  <ol>
<li><a href="#issuingcommands">Issuing ADB Commands</a></li>
<li><a href="#devicestatus">Querying for Emulator/Device Instances</a></li>
<li><a href="#directingcommands">Directing Commands to a Specific Emulator/Device Instance</a></li>
<li><a href="#move">Installing an Application</a></li>
<li><a href="#forwardports">Forwarding Ports</a></li>
<li><a href="#copyfiles">Copying Files to or from an Emulator/Device Instance</a></li>
<li><a href="#commandsummary">Listing of adb Commands </a></li>
<li><a href="#shellcommands">Issuing Shell Commands</a></li>
<li><a href="#logcat">Enabling logcat Logging</a></li>
<li><a href="#stopping">Stopping the adb Server</a></li>
  </ol>

  <h2>See also</h2>
  <ol>
    <li><a href="emulator.html">Emulator</a></li>
  </ol>

</div>
</div>

<p>Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an
emulator instance or connected Android-powered device. It is a client-server program that includes
three components: </p>

<ul>
  <li>A client, which runs on your development machine. You can invoke a client from a shell by issuing an adb command. Other Android tools such as the ADT plugin and DDMS also create adb clients. </li>
  <li>A server, which runs as a background process on your development machine. The server manages communication between the client and the adb daemon running on an emulator or device. </li>
  <li>A daemon, which runs as a background process on each emulator or device instance. </li>
</ul>

<p>You can find the {@code adb} tool in {@code &lt;sdk&gt;/platform-tools/}.</p>

<p>When you start an adb client, the client first checks whether there is an adb server process already running. If there isn't, it starts the server process. When the server starts, it binds to local TCP port 5037 and listens for commands sent from adb clients&mdash;all adb clients use port 5037 to communicate with the adb server. </p>

<p>The server then sets up connections to all running emulator/device instances. It locates emulator/device instances by scanning odd-numbered ports in the range 5555 to 5585, the range used by emulators/devices. Where the server finds an adb daemon, it sets up a connection to that port. Note that each emulator/device instance acquires a pair of sequential ports &mdash; an even-numbered port for console connections and an odd-numbered port for adb connections. For example: </p>

<p style="margin-left:2em">
Emulator 1, console: 5554<br/>
Emulator 1, adb: 5555<br>
Emulator 2, console: 5556<br>
Emulator 2, adb: 5557 ...
</p>

<p>As shown, the emulator instance connected to adb on port 5555 is the same as the instance whose console listens on port 5554. </p>

<p>Once the server has set up connections to all emulator instances, you can use adb commands to control and access those instances. Because the server manages connections to emulator/device instances and handles commands from multiple adb clients, you can control any emulator/device instance from any client (or from a script).</p>

<p>The sections below describe the commands that you can use to access adb capabilities and manage the state of an emulator/device. Note that if you are developing Android applications in Eclipse and have installed the ADT plugin, you do not need to access adb from the command line. The ADT plugin provides a transparent integration of adb into the Eclipse IDE. However, you can still use adb directly as necessary, such as for debugging.</p>

<a name="issuingcommands"></a>

<h2>Issuing adb Commands</h2>

<p>You can issue adb commands from a command line on your development machine or from a script. The usage is: </p>

    <pre>adb [-d|-e|-s &lt;serialNumber&gt;] &lt;command&gt; </pre>

<p>When you issue a command, the program invokes an adb client. The client is not specifically associated with any emulator instance, so if multiple emulators/devices are running, you need to use the <code>-d</code> option to specify the target instance to which the command should be directed. For more information about using this option, see <a href="#directingcommands">Directing Commands to a Specific Emulator/Device Instance</a>. </p>

<a name="devicestatus"></a>

<h2>Querying for Emulator/Device Instances</h2>

<p>Before issuing adb commands, it is helpful to know what emulator/device instances are connected to the adb server. You can generate a list of attached emulators/devices using the <code>devices</code> command: </p>

	<pre>adb devices</pre>

<p>In response, adb prints this status information for each instance:</p>

<ul>
	<li>Serial number &mdash; A string created by adb to uniquely identify an emulator/device instance by its 
        console port number. The format of the serial number is <code>&lt;type&gt;-&lt;consolePort&gt;</code>. 
        Here's an example serial number: <code>emulator-5554</code></li>
	<li>State &mdash; The connection state of the instance. Three states are supported: 
		<ul>
		<li><code>offline</code> &mdash; the instance is not connected to adb or is not responding.</li>
		<li><code>device</code> &mdash; the instance is now connected to the adb server. Note that this state does not 
                    imply that the Android system is fully booted and operational, since the instance connects to adb 
                    while the system is still booting. However, after boot-up, this is the normal operational state of 
                    an emulator/device instance.</li>
		</ul>
	</li>
</ul>

<p>The output for each instance is formatted like this: </p>

	<pre>[serialNumber] [state]</pre>

<p>Here's an example showing the <code>devices</code> command and its output:</p>

	<pre>$ adb devices
List of devices attached 
emulator-5554&nbsp;&nbsp;device
emulator-5556&nbsp;&nbsp;device
emulator-5558&nbsp;&nbsp;device</pre>

<p>If there is no emulator/device running, adb returns <code>no device</code>.</p>


<a name="directingcommands"></a>

<h2>Directing Commands to a Specific Emulator/Device Instance</h2>

<p>If multiple emulator/device instances are running, you need to specify a target instance when issuing adb commands. To so so, use the <code>-s</code> option in the commands. The usage for the <code>-s</code> option is:</p>

    <pre>adb -s &lt;serialNumber&gt; &lt;command&gt; </pre>
	
<p>As shown, you specify the target instance for a command using its adb-assigned serial number. You can use the <code>devices</code> command to obtain the serial numbers of running emulator/device instances. </p>

<p>Here is an example: </p>

	<pre>adb -s emulator-5556 install helloWorld.apk</pre>

<p>Note that, if you issue a command without specifying a target emulator/device instance using <code>-s</code>, adb generates an error. 

<a name="move"></a>

<h2>Installing an Application</h2>
<p>You can use adb to copy an application from your development computer and install it on an emulator/device instance. To do so, use the <code>install</code> command. With the command, you must specify the path to the .apk file that you want to install:</p>

<pre>adb install &lt;path_to_apk&gt;</pre>

<p>For more information about how to create an .apk file that you can install on an emulator/device
instance, see <a href="{@docRoot}guide/developing/building/index.html">Building and Running</a></p>

<p>Note that, if you are using the Eclipse IDE and have the ADT plugin installed, you do not need to use adb (or aapt) directly to install your application on the emulator/device. Instead, the ADT plugin handles the packaging and installation of the application for you. </p>


<a name="forwardports"></a>

<h2>Forwarding Ports</h2>

    <p>You can use the <code>forward</code> command to set up arbitrary port forwarding &mdash; forwarding of requests on a specific host port to a different port on an emulator/device instance. Here's how you would set up forwarding of host port 6100 to emulator/device port 7100:</p>
<pre>adb forward tcp:6100 tcp:7100</pre>
    <p>You can also use adb to set up forwarding to named abstract UNIX domain sockets, as illustrated here:</p>
<pre>adb forward tcp:6100 local:logd </pre>

<a name="copyfiles"></a>

<h2>Copying Files to or from an Emulator/Device Instance</h2>

<p>You can use the adb commands <code>pull</code> and <code>push</code> to copy files to and from an emulator/device instance's data file. Unlike the <code>install</code> command, which only copies an .apk file to a specific location, the <code>pull</code> and <code>push</code> commands let you copy arbitrary directories and files to any location in an emulator/device instance. </p>

<p>To copy a file or directory (recursively) <em>from</em> the emulator or device, use</p>
<pre>adb pull &lt;remote&gt; &lt;local&gt;</pre> 

<p>To copy a file or directory (recursively) <em>to</em> the emulator or device, use</p>
    <pre>adb push &lt;local&gt; &lt;remote&gt;</pre> 

<p>In the commands, <code>&lt;local&gt;</code> and <code>&lt;remote&gt;</code> refer to the paths to the target files/directory on your development machine (local) and on the emulator/device instance (remote).</p>

<p>Here's an example: </p>
<pre>adb push foo.txt /sdcard/foo.txt</pre>

<a name="commandsummary"></a>

<h2>Listing of adb Commands</h2>

<p>The table below lists all of the supported adb commands and explains their meaning and usage. </p>


<table>
<tr>
	<th>Category</th>
	<th>Command</th>
	<th>Description</th>
	<th>Comments</th>
</tr>

<tr>
<td rowspan="3">Options</td>
<td><code>-d</code></td>
<td>Direct an adb command to the only attached USB device.</td>
<td>Returns an error if more than one USB device is attached.</td>
</tr>

<tr>
<td><code>-e</code></td>
<td>Direct an adb command to the only running emulator instance.</td>
<td>Returns an error if more than one emulator instance is running. </td>
</tr>

<tr>
<td><code>-s&nbsp;&lt;serialNumber&gt;</code></td>
<td>Direct an adb command a specific emulator/device instance, referred to by its adb-assigned serial number (such as "emulator-5556").</td>
<td>If not specified, adb generates an error.</td>
</tr>

<tr>
<td rowspan="3">General</td>
<td><code>devices</code></td>
<td>Prints a list of all attached emulator/device instances.</td>
<td>See <a href="#devicestatus">Querying for Emulator/Device Instances</a> for more information.</td>
</tr>

<tr>
<td><code>help</code></td>
<td>Prints a list of supported adb commands.</td>
<td>&nbsp;</td>
</tr>

<tr>
<td><code>version</code></td>
<td>Prints the adb version number. </td>
<td>&nbsp;</td>
</tr>

<tr>
<td rowspan="3">Debug</td>
<td ><code>logcat&nbsp;[&lt;option&gt;] [&lt;filter-specs&gt;]</code></td>
<td>Prints log data to the screen. </td>
<td>&nbsp;</td>
</tr>

<tr>
<td><code>bugreport</code></td>
<td>Prints <code>dumpsys</code>, <code>dumpstate</code>, and <code>logcat</code> data to the screen, for the purposes of bug reporting. </td>
<td>&nbsp;</td>
</tr>

<tr>
<td><code>jdwp</code></td>
<td>Prints a list of available JDWP processes on a given device. </td>
<td>You can use the <code>forward jdwp:&lt;pid&gt;</code> port-forwarding specification to connect to a specific JDWP process. For example: <br>
    <code>adb forward tcp:8000 jdwp:472</code><br>
    <code>jdb -attach localhost:8000</code></p>
 </td>
</tr>

<tr>
<td rowspan=3">Data</td>
<td><code>install&nbsp;&lt;path-to-apk&gt;</code></td>
<td>Pushes an Android application (specified as a full path to an .apk file) to the data file of an emulator/device. </td>
<td>&nbsp;</td>
</tr>

<tr>
<td><code>pull&nbsp;&lt;remote&gt;&nbsp;&lt;local&gt;</code></td>
<td>Copies a specified file from an emulator/device instance to your development computer. </td>
<td>&nbsp;</td>
</tr>

<tr>
<td><code>push&nbsp;&lt;local&gt;&nbsp;&lt;remote&gt;</code></td>
<td>Copies a specified file from your development computer to an emulator/device instance. </td>
<td>&nbsp;</td>
</tr>

<tr>
<td rowspan="2">Ports and Networking</td>
<td><code>forward&nbsp;&lt;local&gt;&nbsp;&lt;remote&gt;</code></td>
<td>Forwards socket connections from a specified local port to a specified remote port on the emulator/device instance. </td>
<td>Port specifications can use these schemes: 
<ul><li><code>tcp:&lt;portnum&gt;</code></li>
<li><code>local:&lt;UNIX domain socket name&gt;</code></li>
<li><code>dev:&lt;character device name&gt;</code></li>
<li><code>jdwp:&lt;pid&gt;</code></li></ul>
</td>
</tr>

<tr>
<td><code>ppp&nbsp;&lt;tty&gt;&nbsp;[parm]...</code></td>
<td>Run PPP over USB.
<ul>
<li><code>&lt;tty&gt;</code> &mdash; the tty for PPP stream. For example <code>dev:/dev/omap_csmi_ttyl</code>. </li>
<li><code>[parm]... </code> &mdash; zero or more PPP/PPPD options, such as <code>defaultroute</code>, <code>local</code>, <code>notty</code>, etc.</li></ul>

<p>Note that you should not automatically start a PPP connection. </p></td>
<td></td>
</tr>

<tr>
<td rowspan="3">Scripting</td>
<td><code>get-serialno</code></td>
<td>Prints the adb instance serial number string.</td>
<td rowspan="2">See <a href="#devicestatus">Querying for Emulator/Device Instances</a> for more information. </td>
</tr>

<tr>
<td><code>get-state</code></td>
<td>Prints the adb state of an emulator/device instance.</td>
</td>
</tr>

<tr>
<td><code>wait-for-device</code></td>
<td>Blocks execution until the device is online &mdash; that is, until the instance state is <code>device</code>.</td>
<td>You can prepend this command to other adb commands, in which case adb will wait until the emulator/device instance is connected before issuing the other commands. Here's an example: 
<pre>adb wait-for-device shell getprop</pre>

Note that this command does <em>not</em> cause adb to wait until the entire system is fully booted. For that reason, you should not prepend it to other commands that require a fully booted system. As an example, the <code>install</code> requires the Android package manager, which is available only after the system is fully booted. A command such as 

<pre>adb wait-for-device install &lt;app&gt;.apk</pre>

would issue the <code>install</code> command as soon as the emulator or device instance connected to the adb server, but before the Android system was fully booted, so it would result in an error. </td>
</tr>



<tr>
<td rowspan="2">Server</td>
<td><code>start-server</code></td>
<td>Checks whether the adb server process is running and starts it, if not.</td>
<td>&nbsp;</td>
</tr>

<tr>
<td><code>kill-server</code></td>
<td>Terminates the adb server process.</td>
<td>&nbsp;</td>
</tr>



<tr>
<td rowspan="2">Shell</td>
<td><code>shell</code></td>
<td>Starts a remote shell in the target emulator/device instance.</td>
<td rowspan="2">See <a href="#shellcommands">Issuing Shell Commands</a> for more information. </td>
</tr>

<tr>
<td><code>shell&nbsp;[&lt;shellCommand&gt;]</code></td>
<td>Issues a shell command in the target emulator/device instance and then exits the remote shell.</td>
</tr>

</table>


<a name="shellcommands"></a>

<h2>Issuing Shell Commands</h2>

<p>Adb provides an ash shell that you can use to run a variety of commands on an emulator 
or device. The command binaries are stored in the file system of the emulator or device, 
in this location: </p>

<pre>/system/bin/...</pre>

<p>You can use the <code>shell</code> command to issue commands, with or without entering the adb remote shell on the emulator/device. </p>

<p>To issue a single command without entering a remote shell, use the <code>shell</code> command like this: </p>

	<pre>adb [-d|-e|-s {&lt;serialNumber&gt;}] shell &lt;shellCommand&gt;</pre>
	
<p>To drop into a remote shell on a emulator/device instance, use the <code>shell</code> command like this:</p>

	<pre>adb [-d|-e|-s {&lt;serialNumber&gt;}] shell</pre>

<p>When you are ready to exit the remote shell, use <code>CTRL+D</code> or <code>exit</code> to end the shell session. </p>

<p>The sections below provide more information about shell commands that you can use.</p>
      
<a name="sqlite" id="sqlite"></a>

<h3>Examining sqlite3 Databases from a Remote Shell</h3>

<p>From an adb remote shell, you can use the 
<a href="http://www.sqlite.org/sqlite.html">sqlite3</a> command-line program to 
manage SQLite databases created by Android applications. The 
<code>sqlite3</code> tool includes many useful commands, such as 
<code>.dump</code> to print out the contents of a table and 
<code>.schema</code> to print the SQL CREATE statement for an existing table. 
The tool also gives you the ability to execute SQLite commands on the fly.</p>

<p>To use <code>sqlite3</code>, enter a remote shell on the emulator instance, as described above, then invoke the tool using the <code>sqlite3</code> command. Optionally, when invoking <code>sqlite3</code> you can specify the full path to the database you want to explore. Emulator/device instances store SQLite3 databases in the folder <code><span chatdir="1"><span chatindex="259474B4B070F261">/data/data/<em>&lt;package_name&gt;</em>/databases</span></span>/</code>. </p>

<p>Here's an example: </p>

<pre>$ adb -s emulator-5554 shell
# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
SQLite version 3.3.12
Enter &quot;.help&quot; for instructions
<em>.... enter commands, then quit...</em>
sqlite&gt; .exit </pre>

<p>Once you've invoked <code>sqlite3</code>, you can issue <code>sqlite3</code> commands in the shell. To exit and return to the adb remote shell, use <code>exit</code> or <code>CTRL+D</code>.


<a name="monkey"></a>

<h3>UI/Application Exerciser Monkey</h3>

<p>The Monkey is a program that runs on your emulator or device and generates pseudo-random
streams of user events such as clicks, touches, or gestures, as well as a number of system-level 
events.  You can use the Monkey to stress-test applications that you are developing,
in a random yet repeatable manner.</p>

<p>The simplest way to use the monkey is with the following command, which will launch your
application and send 500 pseudo-random events to it.</p>

<pre>$ adb shell monkey -v -p your.package.name 500</pre>

<p>For more information about command options for Monkey, see the complete 
<a href="{@docRoot}guide/developing/tools/monkey.html" title="monkey">UI/Application Exerciser Monkey</a> documentation page.</p>


<a name="othershellcommands"></a>

<h3>Other Shell Commands</h3>

<p>The table below lists several of the adb shell commands available. For a complete list of commands and programs, start an emulator instance and use the <code>adb -help</code> command. </p>

<pre>adb shell ls /system/bin</pre>

<p>Help is available for most of the commands. </p>

<table>
<tr>
	<th>Shell Command</th>
	<th>Description</th>
	<th>Comments</th>
</tr>

<tr>
<td><code>dumpsys</code></td>
<td>Dumps system data to the screen.</td>
<td rowspan=4">The <a href="{@docRoot}guide/developing/debugging/ddms.html">Dalvik Debug Monitor Server</a> 
(DDMS) tool offers integrated debug environment that you may find easier to use.</td>
</tr>

<tr>
<td><code>dumpstate</code></td>
<td>Dumps state to a file.</td>
</tr>

<tr>
<td><code>logcat&nbsp;[&lt;option&gt;]...&nbsp;[&lt;filter-spec&gt;]...</code></td>
<td>Enables radio logging and prints output to the screen. </td>
</tr>

<tr>
<td><code>dmesg</code></td>
<td>Prints kernel debugging messages to the screen. </td>
</tr>

<tr>
<td><code>start</code></td>
<td>Starts (restarts) an emulator/device instance.</td>
<td>&nbsp;</td>
</tr>

<tr>
<td><code>stop</code></td>
<td>Stops execution of an emulator/device instance.</td>
<td>&nbsp;</td>
</tr>

</table>

<a name="logcat"></a>

<h2>Enabling logcat Logging</h2>

<p>The Android logging system provides a mechanism for collecting and viewing system debug output. Logs from various applications and portions of the system are collected in a series of circular buffers, which then can be viewed and filtered by the <code>logcat</code> command.</p>

<a name="usinglogcat"></a>

<h3>Using logcat Commands</h3>

<p>You can use the <code>logcat</code> command to view and follow the contents of the system's log buffers. The general usage is:</p>

<pre>[adb] logcat [&lt;option&gt;] ... [&lt;filter-spec&gt;] ...</pre>

<p>The sections below explain filter specifications and the command options. See <a href="#logcatoptions">Listing of logcat Command Options</a> for a summary of options. </p>

<p>You can use the <code>logcat</code> command from your development computer  or from a remote adb shell in an emulator/device instance. To view log output in your development computer, you use</p>

<pre>$ adb logcat</pre>

<p>and from a remote adb shell you use</p>

<pre># logcat</pre>

<a name="filteringoutput"></a>

<h3>Filtering Log Output</h3>

<p>Every Android log message has a <em>tag</em> and a <em>priority</em> associated with it. </p>

<ul>
<li>The tag of a log message is a short string indicating the system component from which the message originates (for example, "View" for the view system). </li>

<li>The priority is one of the following character values, ordered from lowest to highest priority:</li>

<ul>
    <li><code>V</code> &mdash; Verbose (lowest priority)</li>
	<li><code>D</code> &mdash; Debug</li>
	<li><code>I</code> &mdash; Info (default priority)</li>
	<li><code>W</code> &mdash; Warning</li>
	<li><code>E</code> &mdash; Error</li>
	<li><code>F</code> &mdash; Fatal</li>
	<li><code>S</code> &mdash; Silent (highest priority, on which nothing is ever printed)</li>
</ul>
</ul>

<p>You can obtain a list of tags used in the system, together with priorities, by running <code>logcat</code> and observing the first two columns 
of each message, given as <code>&lt;priority&gt;/&lt;tag&gt;</code>. </p>

<p>Here's an example of logcat output that shows that the message relates to priority level "I" and tag "ActivityManager":</p>

<pre>I/ActivityManager(  585): Starting activity: Intent { action=android.intent.action...}</pre>

<p>To reduce the log output to a manageable level, you can restrict log output using <em>filter expressions</em>. Filter expressions let you indicate to the system the tags-priority combinations that you are interested in &mdash; the system suppresses other messages for the specified tags. </p>

<p>A filter expression follows this format <code>tag:priority ...</code>, where <code>tag</code> indicates the tag of interest and <code>priority</code> indicates the <em>minimum</em> level of priority to report for that tag.  Messages for that tag at or above the specified priority are written to the log. You can supply any number of <code>tag:priority</code> specifications in a single filter expression. The series of specifications is whitespace-delimited. The default output is to show all log messages with the Info priority (*:I).</p>

<p>Here's an example of a filter expression that suppresses all log messages except those with the tag "ActivityManager", at priority "Info" or above, and all log messages with tag "MyApp", with priority "Debug" or above:</p>

<pre>adb logcat ActivityManager:I MyApp:D *:S</pre>

<p>The final element in the above expression, <code>*:S</code>, sets the priority level for all tags to "silent", thus ensuring only log messages with "View" and "MyApp" are displayed. Using <code>*:S</code> is an excellent way to ensure that log output is restricted to the filters that you have explicitly specified &mdash; it lets your filters serve as a "whitelist" for log output.</p>

<p>The following filter expression displays all log messages with priority level "warning" and higher, on all tags:</p>

<pre>adb logcat *:W</pre>

<p>If you're running <code>logcat</code> from your development computer (versus running it on a remote adb shell), you can also set a default filter expression by exporting a value for the environment variable <code>ANDROID_LOG_TAGS</code>:</p>

<pre>export ANDROID_LOG_TAGS="ActivityManager:I MyApp:D *:S"</pre>

<p>Note that <code>ANDROID_LOG_TAGS</code> filter is not exported to the emulator/device instance, if you are running <code>logcat</code> from a remote shell or using <code>adb shell logcat</code>.</p>


<a name="outputformat"></a>

<h3>Controlling Log Output Format</h3>

<p>Log messages contain a number of metadata fields, in addition to the tag and priority. You can modify the output format for messages so that they display a specific metadata field. To do so, you use the <code>-v</code> option and specify one of the supported output formats listed below. </p>

<ul>
    <li><code>brief</code> &mdash; Display priority/tag and PID of originating process (the default format).</li>
	<li><code>process</code> &mdash; Display PID only.</li>
	<li><code>tag</code> &mdash; Display the priority/tag only. </li>
	<li><code>thread</code> &mdash; Display process:thread and priority/tag only. </li>
	<li><code>raw</code> &mdash; Display the raw log message, with no other metadata fields.</li>
	<li><code>time</code> &mdash; Display the date, invocation time, priority/tag, and PID of the originating process.</li>
	<li><code>long</code> &mdash; Display all metadata fields and separate messages with a blank lines.</li>
</ul>

<p>When starting <code>logcat</code>, you can specify the output format you want by using the <code>-v</code> option:</p>

<pre>[adb] logcat [-v &lt;format&gt;]</pre>

<p>Here's an example that shows how to generate messages in <code>thread</code> output format: </p>

<pre>adb logcat -v thread</pre>

<p>Note that you can only specify one output format with the <code>-v</code> option. </p>

<a name="alternativebuffers"></a>

<h3>Viewing Alternative Log Buffers </h3>

<p>The Android logging system keeps multiple circular buffers for log messages, and not all of the log messages are sent to the default circular buffer. To see additional log messages, you can start <code>logcat</code> with the <code>-b</code> option, to request viewing of an alternate circular buffer. You can view any of these alternate buffers: </p>

<ul>
<li><code>radio</code> &mdash; View the buffer that contains radio/telephony related messages.</li>
<li><code>events</code> &mdash; View the buffer containing events-related messages.</li>
<li><code>main</code> &mdash; View the main log buffer (default)</li>
</ul>

<p>The usage of the <code>-b</code> option is:</p>

<pre>[adb] logcat [-b &lt;buffer&gt;]</pre>

<p>Here's an example of how to view a log buffer containing radio and telephony messages: </p>

<pre>adb logcat -b radio</b></pre>

<a name="stdout"></a>

<h3>Viewing stdout and stderr</h3>

<p>By default, the Android system sends <code>stdout</code> and <code>stderr</code> (<code>System.out</code> and <code>System.err</code>) output to <code>/dev/null</code>. In
processes that run the Dalvik VM, you can have the system write a copy of the output to the log file. In this case, the system writes the messages to the log using the log tags <code>stdout</code> and <code>stderr</code>, both with priority <code>I</code>. </p>

<p>To route the output in this way, you stop a running emulator/device instance and then use the shell command <code>setprop</code> to enable the redirection of output. Here's how you do it: </p>

<pre>$ adb shell stop
$ adb shell setprop log.redirect-stdio true
$ adb shell start</pre>

<p>The system retains this setting until you terminate the emulator/device instance. To use the setting as a default on the emulator/device instance, you can add an entry to <code>/data/local.prop</code>
on the device.</p>

<a name="logcatoptions"></a>

<h3>Listing of logcat Command Options</h3>

<table>
<tr>
	<th>Option</th>
	<th>Description</th>
</tr>

<tr>
<td><code>-b&nbsp;&lt;buffer&gt;</code></td>
<td>Loads an alternate log buffer for viewing, such as <code>event</code> or <code>radio</code>. The <code>main</code> buffer is used by default. See <a href="#alternativebuffers">Viewing Alternative Log Buffers</a>.</td>
</tr>

<tr>
<td><code>-c</code></td>
<td>Clears (flushes) the entire log and exits. </td>
</tr>

<tr>
<td><code>-d</code></td>
<td>Dumps the log to the screen and exits.</td>
</tr>

<tr>
<td><code>-f&nbsp;&lt;filename&gt;</code></td>
<td>Writes log message output to <code>&lt;filename&gt;</code>. The default is <code>stdout</code>.</td>
</tr>

<tr>
<td><code>-g</code></td>
<td>Prints the size of the specified log buffer and exits. </td>
</tr>

<tr>
<td><code>-n&nbsp;&lt;count&gt;</code></td>
<td>Sets the maximum number of rotated logs to <code>&lt;count&gt;</code>. The default value is 4.  Requires the <code>-r</code> option.  </td>
</tr>

<tr>
<td><code>-r&nbsp;&lt;kbytes&gt;</code></td>
<td>Rotates the log file every <code>&lt;kbytes&gt;</code> of output. The default value is 16.  Requires the <code>-f</code> option.  </td>
</tr>

<tr>
<td><code>-s</code></td>
<td>Sets the default filter spec to silent. </td>
</tr>

<tr>
<td><code>-v&nbsp;&lt;format&gt;</code></td>
<td>Sets the output format for log messages. The default is <code>brief</code> format. For a list of supported formats, see <a href="#outputformat">Controlling Log Output Format</a>.</td>
</tr>

</table>

<a name="stopping"></a>

<h2>Stopping the adb Server</h2>

<p>In some cases, you might need to terminate the adb server process and then restart it. For example, if adb does not respond to a command, you can terminate the server and restart it and that may resolve the problem. </p>

<p>To stop the adb server, use the <code>kill-server</code>. You can then restart the server by issuing any adb command. </p>


