Android Emulator
In this document
See also
The Android SDK includes a mobile device emulator — a virtual mobile device that runs on your computer. The emulator lets you develop and test Android applications without using a physical device.
This document is a reference to the available command line options and the keyboard mapping to device keys. For a complete guide to using the Android Emulator, see Using the Android Emulator.
Keyboard Commands
Table 1 summarizes the mappings between the emulator keys and the keys of your keyboard.
Table 1. Emulator keyboard mapping
Emulated Device Key | Keyboard Key |
---|---|
Home | HOME |
Menu (left softkey) | F2 or Page-up button |
Star (right softkey) | Shift-F2 or Page Down |
Back | ESC |
Call/dial button | F3 |
Hangup/end call button | F4 |
Search | F5 |
Power button | F7 |
Audio volume up button | KEYPAD_PLUS, Ctrl-F5 |
Audio volume down button | KEYPAD_MINUS, Ctrl-F6 |
Camera button | Ctrl-KEYPAD_5, Ctrl-F3 |
Switch to previous layout orientation (for example, portrait, landscape) | KEYPAD_7, Ctrl-F11 |
Switch to next layout orientation (for example, portrait, landscape) | KEYPAD_9, Ctrl-F12 |
Toggle cell networking on/off | F8 |
Toggle code profiling | F9 (only with -trace startup option) |
Toggle fullscreen mode | Alt-Enter |
Toggle trackball mode | F6 |
Enter trackball mode temporarily (while key is pressed) | Delete |
DPad left/up/right/down | KEYPAD_4/8/6/2 |
DPad center click | KEYPAD_5 |
Onion alpha increase/decrease | KEYPAD_MULTIPLY(*) / KEYPAD_DIVIDE(/) |
Command Line Parameters
The emulator supports a variety of options that you can specify when launching the emulator, to control its appearance or behavior. Here’s the command-line syntax of the options available to the emulator program:
Table 2. Emulator command line parameters
Category | Option | Description | Comments | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
AVD | -avd or @ | Required. Specifies the AVD to load for this emulator instance. | You must create an AVD configuration before launching the emulator. For information, see Managing AVDs with AVD Manager. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Disk Images | -cache | Use as the working cache partition image. | An absolute or relative path to the current working directory. If no cache file is specified, the emulator’s default behavior is to use a temporary file instead. For more information on disk images, use -help-disk-images . | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-data | Use as the working user-data disk image. | Optionally, you can specify a path relative to the current working directory. If -data is not used, the emulator looks for a file named userdata-qemu.img in the storage area of the AVD being used (see -avd ). | Search for the user-data disk image specified in -data in | is a path relative to the current working directory. If you do not specify -datadir , the emulator looks for the user-data image in the storage area of the AVD being used (see -avd ) For more information on disk images, use -help-disk-images . —> -image | Use as the system image. | Optionally, you can specify a path relative to the current working directory. Default is /system.img. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-initdata | When resetting the user-data image (through -wipe-data ), copy the contents of this file to the new user-data disk image. By default, the emulator copies the /userdata.img . | Optionally, you can specify a path relative to the current working directory. See also -wipe-data . For more information on disk images, use -help-disk-images . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-nocache | Start the emulator without a cache partition. | See also -cache . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-ramdisk | Use as the ramdisk image. | Default value is /ramdisk.img . Optionally, you can specify a path relative to the current working directory. For more information on disk images, use -help-disk-images . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-sdcard | Use as the SD card image. | Default value is /sdcard.img . Optionally, you can specify a path relative to the current working directory. For more information on disk images, use -help-disk-images . | Search for system, ramdisk and user data images in . | is a directory path relative to the current working directory. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-wipe-data | Reset the current user-data disk image (that is, the file specified by -datadir and -data , or the default file). The emulator deletes all data from the user data image file, then copies the contents of the file at -inidata data to the image file before starting. | See also -initdata . For more information on disk images, use -help-disk-images . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Debug | -debug | Enable/disable debug messages for the specified debug tags. | is a space/comma/column-separated list of debug component names. Use -help-debug-tags to print a list of debug component names that you can use. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-debug- | Enable/disable debug messages for the specified debug tag. | Use -help-debug-tags to print a list of debug component names that you can use in . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-debug-no- | Disable debug messages for the specified debug tag. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-logcat | Enable logcat output with given tags. | If the environment variable ANDROID_LOG_TAGS is defined and not empty, its value will be used to enable logcat output by default. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-shell | Create a root shell console on the current terminal. | You can use this command even if the adb daemon in the emulated system is broken. Pressing Ctrl-c from the shell stops the emulator instead of the shell. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-shell-serial | Enable the root shell (as in -shell and specify the QEMU character device to use for communication with the shell. | must be a QEMU device type. See the documentation for ‘-serial dev‘ at http://wiki.qemu.org/download/qemu-doc.html for a list of device types. Here are some examples:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-show-kernel | Display kernel messages. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-trace | Enable code profiling (press F9 to start), written to a specified file. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-verbose | Enable verbose output. | Equivalent to -debug-init . You can define the default verbose output options used by emulator instances in the Android environment variable ANDROID_VERBOSE. Define the options you want to use in a comma-delimited list, specifying only the stem of each option: -debug- . Here’s an example showing ANDROID_VERBOSE defined with the -debug-init and -debug-modem options: For more information about debug tags, use . | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Media | -audio | Use the specified audio backend. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-audio-in | Use the specified audio-input backend. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-audio-out | Use the specified audio-output backend. | Use device or WAV file for audio input. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-noaudio | Disable audio support in the current emulator instance. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-radio | Redirect radio modem interface to a host character device. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-useaudio | Enable audio support in the current emulator instance. | Enabled by default. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Network | -dns-server | Use the specified DNS server(s). | The value of must be a comma-separated list of up to 4 DNS server names or IP addresses. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-http-proxy | Make all TCP connections through a specified HTTP/HTTPS proxy | The value of can be one of the following: The http:// prefix can be omitted. If the -http-proxy command is not supplied, the emulator looks up the http_proxy environment variable and automatically uses any value matching the format described above. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-netdelay | Set network latency emulation to . | Default value is none . See the table in Network Delay Emulation for supported values. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-netfast | Shortcut for -netspeed full -netdelay none | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-netspeed | Set network speed emulation to . | Default value is full . See the table in Network Speed Emulation for supported values. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-port | Set the console port number for this emulator instance to . | The console port number must be an even integer between 5554 and 5584, inclusive. +1 must also be free and will be reserved for ADB. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-report-console | Report the assigned console port for this emulator instance to a remote third party before starting the emulation. | must use one of these formats: to view more information about this topic. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
System | -cpu-delay | Slow down emulated CPU speed by | Supported values for are integers between 0 and 1000. Note that the does not correlate to clock speed or other absolute metrics — it simply represents an abstract, relative delay factor applied non-deterministically in the emulator. Effective performance does not always scale in direct relationship with values. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-gps | Redirect NMEA GPS to character device. | Use this command to emulate an NMEA-compatible GPS unit connected to an external character device or socket. The format of must be QEMU-specific serial device specification. See the documentation for ‘serial -dev’ at http://wiki.qemu.org/download/qemu-doc.html. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-nojni | Disable JNI checks in the Dalvik runtime. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-qemu | Pass arguments to the qemu emulator software. |
Command | Description | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
start [options] | Start an Activity specified by . Options are:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
startservice [options] | Start the Service specified by . Options are:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
force-stop | Force stop everything associated with (the app’s package name). | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kill [options] | Kill all processes associated with (the app’s package name). This command kills only processes that are safe to kill and that will not impact the user experience. Options are:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
kill-all | Kill all background processes. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
broadcast [options] | Issue a broadcast intent. Options are:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
instrument [options] | Start monitoring with an Instrumentation instance. Typically the target is the form / . Options are:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
profile start | Start profiler on , write results to . | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
profile stop | Stop profiler on . | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
dumpheap [options] | Dump the heap of Options are:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
set-debug-app [options] | Set application Options are:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
clear-debug-app | Clear the package previous set for debugging with set-debug-app . | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
monitor [options] | Start monitoring for crashes or ANRs. Options are:
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
screen-compat [on|off] | Control screen compatibility mode of | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
display-size [reset| ] | Override emulator/device display size. This command is helpful for testing your app across different screen sizes by mimicking a small screen resolution using a device with a large screen, and vice versa. Example: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
display-density | Override emulator/device display density. This command is helpful for testing your app across different screen densities on high-density screen environment using a low density screen, and vice versa. Example: | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
to-uri | Print the given intent specification as a URI. See the Specification for arguments. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
to-intent-uri | Print the given intent specification as an intent: URI. Specification for argumentsFor activity manager commands that take a argument, you can specify the intent with the following options: -a Specify the intent action, such as «android.intent.action.VIEW». You can declare this only once. -d Specify the intent data URI, such as «content://contacts/people/1». You can declare this only once. -t Specify the intent MIME type, such as «image/png». You can declare this only once. -c Specify an intent category, such as «android.intent.category.APP_CONTACTS». -n Specify the component name with package name prefix to create an explicit intent, such as «com.example.app/.ExampleActivity». -f Add flags to the intent, as supported by setFlags() . —esn Add a null extra. This option is not supported for URI intents. -e|—es Add string data as a key-value pair. —ez Add boolean data as a key-value pair. —ei Add integer data as a key-value pair. —el Add long data as a key-value pair. —ef Add float data as a key-value pair. —eu Add URI data as a key-value pair. —ecn Add a component name, which is converted and passed as a ComponentName object. —eia [, Add an array of integers. —ela [, Add an array of longs. —efa [, Add an array of floats. —grant-read-uri-permission Include the flag FLAG_GRANT_READ_URI_PERMISSION . —grant-write-uri-permission Include the flag FLAG_GRANT_WRITE_URI_PERMISSION . —debug-log-resolution Include the flag FLAG_DEBUG_LOG_RESOLUTION . —exclude-stopped-packages Include the flag FLAG_EXCLUDE_STOPPED_PACKAGES . —include-stopped-packages Include the flag FLAG_INCLUDE_STOPPED_PACKAGES . —activity-brought-to-front Include the flag FLAG_ACTIVITY_BROUGHT_TO_FRONT . —activity-clear-top Include the flag FLAG_ACTIVITY_CLEAR_TOP . —activity-clear-when-task-reset Include the flag FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET . —activity-exclude-from-recents Include the flag FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS . —activity-launched-from-history Include the flag FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY . —activity-multiple-task Include the flag FLAG_ACTIVITY_MULTIPLE_TASK . —activity-no-animation Include the flag FLAG_ACTIVITY_NO_ANIMATION . —activity-no-history Include the flag FLAG_ACTIVITY_NO_HISTORY . —activity-no-user-action Include the flag FLAG_ACTIVITY_NO_USER_ACTION . —activity-previous-is-top Include the flag FLAG_ACTIVITY_PREVIOUS_IS_TOP . —activity-reorder-to-front Include the flag FLAG_ACTIVITY_REORDER_TO_FRONT . —activity-reset-task-if-needed Include the flag FLAG_ACTIVITY_RESET_TASK_IF_NEEDED . —activity-single-top Include the flag FLAG_ACTIVITY_SINGLE_TOP . —activity-clear-task Include the flag FLAG_ACTIVITY_CLEAR_TASK . —activity-task-on-home Include the flag FLAG_ACTIVITY_TASK_ON_HOME . —receiver-registered-only Include the flag FLAG_RECEIVER_REGISTERED_ONLY . —receiver-replace-pending Include the flag FLAG_RECEIVER_REPLACE_PENDING . —selector Requires the use of -d and -t options to set the intent data and type. You can directly specify a URI, package name, and component name when not qualified by one of the above options. When an argument is unqualified, the tool assumes the argument is a URI if it contains a «:» (colon); it assumes the argument is a component name if it contains a «/» (forward-slash); otherwise it assumes the argument is a package name. Using package manager (pm)Within an adb shell, you can issue commands with the package manager ( pm ) tool to perform actions and queries on application packages installed on the device. While in a shell, the syntax is: You can also issue a package manager command directly from adb without entering a remote shell. For example: Table 3. Available package manager commands.
Taking a device screenshotThe screencap command is a shell utility for taking a screenshot of a device display. While in a shell, the syntax is: To use the screencap from the command line, type the following: Here’s an example screenshot session, using the adb shell to capture the screenshot and the pull command to download the file from the device: Recording a device screenThe screenrecord command is a shell utility for recording the display of devices running Android 4.4 (API level 19) and higher. The utility records screen activity to an MPEG-4 file. Note: Audio is not recorded with the video file. A developer can use this file to create promotional or training videos. While in a shell, the syntax is: To use screenrecord from the command line, type the following: Stop the screen recording by pressing Ctrl-C, otherwise the recording stops automatically at three minutes or the time limit set by —time-limit . To begin recording your device screen, run the screenrecord command to record the video. Then, run the pull command to download the video from the device to the host computer. Here’s an example recording session: The screenrecord utility can record at any supported resolution and bit rate you request, while retaining the aspect ratio of the device display. The utility records at the native display resolution and orientation by default, with a maximum length of three minutes. There are some known limitations of the screenrecord utility that you should be aware of when using it:
Table 4. screenrecord options
Other shell commandsFor a list of all the available shell programs, use the following command: Help is available for most of the commands. Table 5 lists some of the more common adb shell commands. Table 5. Some other adb shell commands Источник |