| Scott Main | 50e990c | 2012-06-21 17:14:39 -0700 | [diff] [blame] | 1 | page.title=Managing AVDs from the Command Line |
| 2 | parent.title=Managing Virtual Devices |
| 3 | parent.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 |
| 25 | from the Command Line</a></li> |
| 26 | <li><a href="{@docRoot}tools/devices/emulator.html">Using the Android |
| 27 | Emulator</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 |
| 34 | of 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 |
| 47 | then generates the list of targets. Here's an example of the command output: |
| 48 | </p> |
| 49 | |
| 50 | <pre>Available Android targets: |
| 51 | id: 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 |
| 57 | id: 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 |
| 63 | id: 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 |
| 69 | id: 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 |
| 75 | id: 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/devices/managing-avds-cmdline.html">AVD Manager user interface</a>, |
| 89 | you 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 |
| 93 | the <code><sdk>/tools/</code> directory, if needed.</p> |
| 94 | |
| 95 | <p>To create each AVD, you issue the command <code>android create avd</code>, |
| 96 | with options that specify a name for the new AVD and the system image you want |
| 97 | to run on the emulator when the AVD is invoked. You can specify other options on |
| 98 | the command line also, such as the emulated SD card size, the emulator skin, or a custom |
| 99 | location 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 |
| 106 | creating multiple AVDs, you should choose a name that lets you recognize the |
| 107 | general 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, |
| 109 | version, or API Level, or other attribute, so you need to run the <code>android list targets</code> |
| 110 | command to list the target ID of each system image. You should do this <em>before</em> you run |
| 111 | the <code>android create avd</code> command. See the <a |
| 112 | href="{@docRoot}tools/help/android.html">android</a> |
| 113 | tool 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, |
| 117 | use the <code>android create avd</code> command to create the AVD, supplying the |
| 118 | target ID as the <code>-t</code> argument. Here's an example that creates an |
| 119 | AVD with name "my_android1.5" and target ID "2" (the standard Android 1.5 |
| 120 | system 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: |
| 125 | platform"), the <code>android</code> tool next asks you whether you want to |
| 126 | create a custom hardware profile. </p> |
| 127 | <pre>Android 1.5 is a basic Android platform. |
| 128 | Do 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 |
| 132 | emulation options for the AVD, just press the return key (the default is "no"). |
| 133 | The <code>android</code> tool creates the AVD with name and system image mapping you |
| 134 | requested, with the options you specified. For more information, see <a href="#hardwareopts"> |
| 135 | Setting 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. |
| 139 | It assumes that the provider of the add-on has set emulation options |
| 140 | appropriately for the device that the add-on is modeling, and so prevents you |
| 141 | from 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 |
| 147 | AVDs, using different screen configurations (different combinations of size and density). In |
| 148 | addition, you should set up the AVDs to run at a physical size that closely matches an actual |
| 149 | device.</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 |
| 155 | the <code>--skin</code> option with a value that references either a default |
| 156 | skin name (such as "WVGA800") or a custom skin resolution (such as 240x432). |
| 157 | Here'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 |
| 161 | you 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 |
| 163 | specify "Abstracted LCD density" (<em>hw.lcd.density</em>). Enter an appropriate |
| 164 | value, such as "120" for a low-density screen, "160" for a medium density screen, |
| 165 | or "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" |
| 170 | WVGA screen.</p> |
| 171 | |
| 172 | <p>As an alternative to adjusting the emulator skin configuration, you can use |
| 173 | the emulator skin's default density and add the <code>-dpi-device</code> option |
| 174 | to the <a href="{@docRoot}tools/help/emulator.html">emulator</a> command line when |
| 175 | starting 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 |
| 184 | on your development computer. The directory contains the AVD configuration file, |
| 185 | the user data image and SD card image (if available), and any other files |
| 186 | associated with the device. Note that the directory does not contain a system |
| 187 | image — instead, the AVD configuration file contains a mapping to the |
| 188 | system 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 |
| 191 | root of the <code>.android/avd/</code> directory on your computer. The file specifies the |
| 192 | location of the AVD directory and always remains at the root the .android |
| 193 | directory.</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 |
| 197 | Settings\<user>\.android\</code> on Windows XP, and |
| 198 | <code>C:\Users\<user>\.android\</code> on Windows 7 and Vista. |
| 199 | If you want to use a custom location for the AVD directory, you |
| 200 | can do so by using the <code>-p <path></code> option when |
| 201 | you 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 |
| 206 | the <code>-p</code> option to place the AVD directory in another location. |
| 207 | The AVD's .ini file remains in the .android directory on the network |
| 208 | drive, 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: |
| 214 | platform"), the <code>android</code> tool lets you set hardware emulation |
| 215 | options for virtual device. The table below lists the options available and the |
| 216 | default values, as well as the names of properties that store the emulated |
| 217 | hardware options in the AVD's configuration file (the config.ini file in the |
| 218 | AVD's local directory). </p> |
| 219 | |
| 220 | <p class="table-caption"><strong>Table 1.</strong> Available hardware profile options for AVDs and |
| 221 | the 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: |
| 356 | Name: foo |
| 357 | Path: <path>/.android/avd/foo.avd |
| 358 | Error: 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 |
| 369 | specified name deletes the AVD's directory and files. </p> |