Home | History | Annotate | Download | only in devices
      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>&lt;sdk&gt;/platforms/</code> and
     46 <code>&lt;sdk&gt;/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>&lt;sdk&gt;/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 &lt;name&gt; -t &lt;targetID&gt; [-&lt;option&gt; &lt;value&gt;] ... </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 &lt;name&gt; -t &lt;targetID&gt; --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 &mdash; 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>&lt;AVD_name&gt;.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\&lt;user&gt;\.android\</code> on Windows XP, and 
    198 <code>C:\Users\&lt;user&gt;\.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 &lt;path&gt;</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 &lt;name&gt; [-&lt;option&gt; &lt;value&gt;] ...</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: &lt;path&gt;/.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 &lt;name&gt; </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>
    370