1page.title=Managing AVDs from the Command Line 2parent.title=Managing Virtual Devices 3parent.link=index.html 4@jd:body 5 6<div id="qv-wrapper"> 7 <div id="qv"> 8 <h2>In this document</h2> 9 <ol> 10 <li><a href="#listingtargets">Listing Targets</a></li> 11 <li><a href="#AVDCmdLine">Creating AVDs</a> 12 <ol> 13 <li><a href="#CustomDensity">Customize the device resolution or density</a></li> 14 <li><a href="#DefaultLocation">Default location of AVD files</a></li> 15 <li><a href="#hardwareopts">Setting hardware emulation options</a></li> 16 </ol> 17 </li> 18 <li><a href="#moving">Moving an AVD</a></li> 19 <li><a href="#updating">Updating an AVD</a></li> 20 <li><a href="#deleting">Deleting an AVD</a></li> 21 </ol> 22 <h2>See also</h2> 23 <ol> 24 <li><a href="{@docRoot}tools/building/building-cmdline.html">Building and Running 25from the Command Line</a></li> 26 <li><a href="{@docRoot}tools/devices/emulator.html">Using the Android 27Emulator</a></li> 28 </ol> 29 </div> 30</div> 31 32 33<p>The <code>android</code> tool lets you manage AVDs on the command line. For a complete reference 34of the command line options that you can use, see the reference for the 35<a href="{@docRoot}tools/help/android.html"><code>android</code></a> tool.</p> 36 37 38 39<h2 id="listingtargets">Listing Targets</h2> 40 41<p>To generate a list of system image targets, use this command: </p> 42 43<pre>android list targets</pre> 44 45<p>The <code>android</code> tool scans the <code><sdk>/platforms/</code> and 46<code><sdk>/add-ons/</code> directories looking for valid system images and 47then generates the list of targets. Here's an example of the command output: 48</p> 49 50<pre>Available Android targets: 51id: 1 or "android-3" 52 Name: Android 1.5 53 Type: Platform 54 API level: 3 55 Revision: 4 56 Skins: QVGA-L, HVGA-L, HVGA (default), HVGA-P, QVGA-P 57id: 2 or "android-4" 58 Name: Android 1.6 59 Type: Platform 60 API level: 4 61 Revision: 3 62 Skins: QVGA, HVGA (default), WVGA800, WVGA854 63id: 3 or "android-7" 64 Name: Android 2.1-update1 65 Type: Platform 66 API level: 7 67 Revision: 2 68 Skins: QVGA, WQVGA400, HVGA (default), WVGA854, WQVGA432, WVGA800 69id: 4 or "android-8" 70 Name: Android 2.2 71 Type: Platform 72 API level: 8 73 Revision: 2 74 Skins: WQVGA400, QVGA, WVGA854, HVGA (default), WVGA800, WQVGA432 75id: 5 or "android-9" 76 Name: Android 2.3 77 Type: Platform 78 API level: 9 79 Revision: 1 80 Skins: HVGA (default), WVGA800, WQVGA432, QVGA, WVGA854, WQVGA400 81</pre> 82 83 84 85<h2 id="AVDCmdLine">Creating AVDs</h2> 86 87<p>In addition to creating AVDs with the 88<a href="{@docRoot}tools/help/avd-manager.html">AVD Manager user interface</a>, 89you can also create them by passing in command line arguments to the <code>android</code> tool. 90</p> 91 92<p>Open a terminal window and change to 93the <code><sdk>/tools/</code> directory, if needed.</p> 94 95<p>To create each AVD, you issue the command <code>android create avd</code>, 96with options that specify a name for the new AVD and the system image you want 97to run on the emulator when the AVD is invoked. You can specify other options on 98the command line also, such as the emulated SD card size, the emulator skin, or a custom 99location for the user data files.</p> 100 101<p>Here's the command-line usage for creating an AVD: </p> 102 103<pre>android create avd -n <name> -t <targetID> [-<option> <value>] ... </pre> 104 105<p>You can use any name you want for the AVD, but since you are likely to be 106creating multiple AVDs, you should choose a name that lets you recognize the 107general characteristics offered by the AVD. The target ID is an integer assigned by the 108<code>android</code> tool. The target ID is not derived from the system image name, 109version, or API Level, or other attribute, so you need to run the <code>android list targets</code> 110command to list the target ID of each system image. You should do this <em>before</em> you run 111the <code>android create avd</code> command. See the <a 112href="{@docRoot}tools/help/android.html">android</a> 113tool documentation for more information on the command line options.</p> 114 115 116<p>When you've selected the target you want to use and made a note of its ID, 117use the <code>android create avd</code> command to create the AVD, supplying the 118target ID as the <code>-t</code> argument. Here's an example that creates an 119AVD with name "my_android1.5" and target ID "2" (the standard Android 1.5 120system image in the list above): </p> 121 122<pre>android create avd -n my_android1.5 -t 2</pre> 123 124<p>If the target you selected was a standard Android system image ("Type: 125platform"), the <code>android</code> tool next asks you whether you want to 126create a custom hardware profile. </p> 127<pre>Android 1.5 is a basic Android platform. 128Do you wish to create a custom hardware profile [no]</pre> 129 130<p>If you want to set custom hardware emulation options for the AVD, enter 131"yes" and set values as needed. If you want to use the default hardware 132emulation options for the AVD, just press the return key (the default is "no"). 133The <code>android</code> tool creates the AVD with name and system image mapping you 134requested, with the options you specified. For more information, see <a href="#hardwareopts"> 135Setting Hardware Emulation Options</a>. 136 137<p class="note"><strong>Note:</strong> If you are creating an AVD whose target is an SDK add-on, the 138<code>android</code> tool does not allow you to set hardware emulation options. 139It assumes that the provider of the add-on has set emulation options 140appropriately for the device that the add-on is modeling, and so prevents you 141from resetting the options. </p> 142 143 144<h3 id="CustomDensity">Customize the device resolution or density</h3> 145 146<p>When testing your application, we recommend that you test your application in several different 147AVDs, using different screen configurations (different combinations of size and density). In 148addition, you should set up the AVDs to run at a physical size that closely matches an actual 149device.</p> 150 151<p>To set up your AVDs for a specific resolution or density, follow these steps:</p> 152 153<ol> 154 <li>Use the <code>create avd</code> command to create a new AVD, specifying 155the <code>--skin</code> option with a value that references either a default 156skin name (such as "WVGA800") or a custom skin resolution (such as 240x432). 157Here's an example: 158 <pre>android create avd -n <name> -t <targetID> --skin WVGA800</pre> 159 </li> 160 <li>To specify a custom density for the skin, answer "yes" when asked whether 161you want to create a custom hardware profile for the new AVD.</li> 162 <li>Continue through the various profile settings until the tool asks you to 163specify "Abstracted LCD density" (<em>hw.lcd.density</em>). Enter an appropriate 164value, such as "120" for a low-density screen, "160" for a medium density screen, 165or "240" for a high-density screen.</li> 166 <li>Set any other hardware options and complete the AVD creation.</li> 167</ol> 168 169<p>In the example above (WVGA medium density), the new AVD will emulate a 5.8" 170WVGA screen.</p> 171 172<p>As an alternative to adjusting the emulator skin configuration, you can use 173the emulator skin's default density and add the <code>-dpi-device</code> option 174to the <a href="{@docRoot}tools/help/emulator.html">emulator</a> command line when 175starting the AVD. For example:</p> 176 177<pre>emulator -avd WVGA800 -scale 96dpi -dpi-device 160</pre> 178 179 180 181<h3 id="DefaultLocation">Default location of AVD files</h3> 182 183<p>When you create an AVD, the <code>android</code> tool creates a dedicated directory for it 184on your development computer. The directory contains the AVD configuration file, 185the user data image and SD card image (if available), and any other files 186associated with the device. Note that the directory does not contain a system 187image — instead, the AVD configuration file contains a mapping to the 188system image, which it loads when the AVD is launched. </p> 189 190<p>The <code>android</code> tool also creates an <code><AVD_name>.ini</code> file for the AVD at the 191root of the <code>.android/avd/</code> directory on your computer. The file specifies the 192location of the AVD directory and always remains at the root the .android 193directory.</p> 194 195<p>By default, the <code>android</code> tool creates the AVD directory inside 196<code>~/.android/avd/</code> (on Linux/Mac), <code>C:\Documents and 197Settings\<user>\.android\</code> on Windows XP, and 198<code>C:\Users\<user>\.android\</code> on Windows 7 and Vista. 199If you want to use a custom location for the AVD directory, you 200can do so by using the <code>-p <path></code> option when 201you create the AVD: </p> 202 203<pre>android create avd -n my_android1.5 -t 2 -p path/to/my/avd</pre> 204 205<p>If the .android directory is hosted on a network drive, we recommend using 206the <code>-p</code> option to place the AVD directory in another location. 207The AVD's .ini file remains in the .android directory on the network 208drive, regardless of the location of the AVD directory. 209 210 211<h3 id="hardwareopts">Setting hardware emulation options</h3> 212 213<p>When you are creating a new AVD that uses a standard Android system image ("Type: 214platform"), the <code>android</code> tool lets you set hardware emulation 215options for virtual device. The table below lists the options available and the 216default values, as well as the names of properties that store the emulated 217hardware options in the AVD's configuration file (the config.ini file in the 218AVD's local directory). </p> 219 220<p class="table-caption"><strong>Table 1.</strong> Available hardware profile options for AVDs and 221the default values </p> 222 223<table> 224<tr> 225<th>Characteristic</th> 226<th>Description</th> 227<th>Property</th> 228</tr> 229 230<tr> 231<td>Device ram size</td> 232<td>The amount of physical RAM on the device, in megabytes. Default value is "96". 233<td>hw.ramSize</td> 234</tr> 235 236<tr> 237<td>Touch-screen support</td> 238<td>Whether there is a touch screen or not on the device. Default value is "yes".</td> 239<td>hw.touchScreen 240 241<tr> 242<td>Trackball support </td> 243<td>Whether there is a trackball on the device. Default value is "yes".</td> 244<td>hw.trackBall</td> 245</tr> 246 247<tr> 248<td>Keyboard support</td> 249<td>Whether the device has a QWERTY keyboard. Default value is "yes".</td> 250<td>hw.keyboard</td> 251</tr> 252 253<tr> 254<td>DPad support</td> 255<td>Whether the device has DPad keys. Default value is "yes".</td> 256<td>hw.dPad</td> 257</tr> 258 259<tr> 260<td>GSM modem support</td> 261<td>Whether there is a GSM modem in the device. Default value is "yes".</td> 262<td>hw.gsmModem</td> 263</tr> 264 265<tr> 266<td>Camera support</td> 267<td>Whether the device has a camera. Default value is "no".</td> 268<td>hw.camera</td> 269</tr> 270 271<tr> 272<td>Maximum horizontal camera pixels</td> 273<td>Default value is "640".</td> 274<td>hw.camera.maxHorizontalPixels</td> 275</tr> 276 277<tr> 278<td>Maximum vertical camera pixels</td> 279<td>Default value is "480".</td> 280<td>hw.camera.maxVerticalPixels</td> 281</tr> 282 283<tr> 284<td>GPS support</td> 285<td>Whether there is a GPS in the device. Default value is "yes".</td> 286<td>hw.gps</td> 287</tr> 288 289<tr> 290<td>Battery support</td> 291<td>Whether the device can run on a battery. Default value is "yes".</td> 292<td>hw.battery</td> 293</tr> 294 295<tr> 296<td>Accelerometer</td> 297<td>Whether there is an accelerometer in the device. Default value is "yes".</td> 298<td>hw.accelerometer</td> 299</tr> 300 301<tr> 302<td>Audio recording support</td> 303<td>Whether the device can record audio. Default value is "yes".</td> 304<td>hw.audioInput</td> 305</tr> 306 307<tr> 308<td>Audio playback support</td> 309<td>Whether the device can play audio. Default value is "yes".</td> 310<td>hw.audioOutput</td> 311</tr> 312 313<tr> 314<td>SD Card support</td> 315<td>Whether the device supports insertion/removal of virtual SD Cards. Default value is "yes".</td> 316<td>hw.sdCard</td> 317</tr> 318 319<tr> 320<td>Cache partition support</td> 321<td>Whether we use a /cache partition on the device. Default value is "yes".</td> 322<td>disk.cachePartition</td> 323</tr> 324 325<tr> 326<td>Cache partition size</td> 327<td>Default value is "66MB".</td> 328<td>disk.cachePartition.size </td> 329</tr> 330 331<tr> 332<td>Abstracted LCD density</td> 333<td>Sets the generalized density characteristic used by the AVD's screen. Default value is "160".</td> 334<td>hw.lcd.density </td> 335</tr> 336 337<tr> 338<td>Trackball support</td> 339<td>Whether there is a trackball present.</td> 340<td>hw.trackBall </td> 341</tr> 342</table> 343 344 345<h2 id="moving">Moving an AVD</h2> 346 347<p>If you want to move or rename an AVD, you can do so using this command:</p> 348 349<pre>android move avd -n <name> [-<option> <value>] ...</pre> 350 351<h2 id="updating">Updating an AVD</h2> 352 353<p>If, for any reason, the platform/add-on root folder has its name changed (maybe because the user has installed an update of the platform/add-on) then the AVD will not be able to load the system image that it is mapped to. In this case, the <code>android list targets</code> command will produce this output: 354 355<pre>The following Android Virtual Devices could not be loaded: 356Name: foo 357Path: <path>/.android/avd/foo.avd 358Error: Invalid value in image.sysdir. Run 'android update avd -n foo' </pre> 359 360<p>To fix this error, use the <code>android update avd</code> command to recompute the path to the system images.</p> 361 362<h2 id="deleting">Deleting an AVD</h2> 363 364<p>You can use the <code>android</code> tool to delete an AVD. Here is the command usage:</p> 365 366<pre>android delete avd -n <name> </pre> 367 368<p>When you issue the command, the <code>android</code> tool looks for an AVD matching the 369specified name deletes the AVD's directory and files. </p> 370