Editing Android virtual device properties
This article explains how to use the Android Device Manager (AVD) to edit the profile properties of an Android virtual device. For more information about Android virtual devices, see Create and manage virtual devices on developer.android.com.
Android Device Manager on Windows
The Android Device Manager supports the editing of individual Android virtual device profile properties. The New Device and Device Edit screens list the properties of the virtual device in the first column, with the corresponding values of each property in the second column (as seen in this example):
When you select a property, a detailed description of that property is displayed on the right. You can modify hardware profile properties and AVD properties. Hardware profile properties (such as hw.ramSize
and hw.accelerometer
) describe the physical characteristics of the emulated device. These characteristics include screen size, the amount of available RAM, whether or not an accelerometer is present. AVD properties specify the operation of the AVD when it runs. For example, AVD properties can be configured to specify how the AVD uses your development computer's graphics card for rendering.
You can change properties by using the following guidelines:
To change a boolean property, click the check mark to the right of the boolean property:
To change an enum (enumerated) property, click the down-arrow to the right of the property and choose a new value.
To change a string or integer property, double-click the current string or integer setting in the value column and enter a new value.
The following table provides a detailed explanation of the properties listed in the New Device and Device Editor screens:
Property | Description | Options |
---|---|---|
abi.type |
ABI type – Specifies the ABI (application binary interface) type of the emulated device. The x86 option is for the instruction set commonly referred to as "x86" or "IA-32." The x86_64 option is for the 64-bit x86 instruction set. The armeabi-v7a option is for the ARM instruction set with v7-a ARM extensions. The arm64-v8a option is for the ARM instruction set that supports AArch64. | x86, x86_64, armeabi-v7a, arm64-v8a |
disk.cachePartition |
Cache partition – Determines whether the emulated device uses a /cache partition on the device. The /cache partition (which is initially empty) is the location where Android stores frequently accessed data and app components. If set to no, the emulator doesn't use a /cache partition and the other disk.cache settings are ignored. |
yes, no |
disk.cachePartition.path |
Cache partition path – Specifies a cache partition image file on your development computer. The emulator uses this file for the /cache partition. Enter an absolute path or a path relative to the emulator's data directory. If not set, the emulator creates an empty temporary file called cache.img on your development computer. If the file doesn't exist, it's created as an empty file. This option is ignored if disk.cachePartition is set to no. |
|
disk.cachePartition.size |
Cache partition size – The size of the cache partition file (in bytes). Normally you don't need to set this option unless the app will download very large files that are larger than the default cache size of 66 megabytes. This option is ignored if disk.cachePartition is set to no. If this value is an integer, it specifies the size in bytes. You can also specify the size in kilobytes, megabytes, and gigabytes by appending K, M, or G to the value. The minimum size is 9M and the maximum size is 1023G. |
|
disk.dataPartition.initPath |
Initial path to the data partition – Specifies the initial contents of the data partition. After wiping user data, the emulator copies the contents of the specified file to user data (by default, userdata-qemu.img) instead of using userdata.img as the initial version. | |
disk.dataPartition.path |
Path to the data partition – Specifies the user data partition file. To configure a persistent user data file, enter a filename and a path on your development computer. If the file doesn't exist, the emulator creates an image from the default file userdata.img, stores it in the filename specified by disk.dataPartition.path , and persists user data to it when the emulator shuts down. If you don't specify a path, the default file is named userdata-qemu.img. The special value <temp> causes the emulator to create and use a temporary file. If disk.dataPartition.initPath is set, its content is copied to the disk.dataPartition.path file at boot time. This option can't be left blank. |
|
disk.dataPartition.size |
Data partition size – Specifies the size of the user data partition in bytes. If this value is an integer, it specifies the size in bytes. You can also specify the size in kilobytes, megabytes, and gigabytes by appending K, M, or G to the value. The minimum size is 9M and the maximum size is 1023G. | |
disk.ramdisk.path |
Ramdisk path – Path to the boot partition (ramdisk) image. The ramdisk image is a subset of the system image that's loaded by the kernel before the system image is mounted. The ramdisk image typically contains boot-time binaries and initialization scripts. If this option isn't specified, the default is ramdisk.img in the emulator system directory. | |
disk.snapStorage.path |
Snapshot storage path – Path to the snapshot storage file where all snapshots are stored. All snapshots made during execution are saved to this file. Only snapshots that are saved to this file can be restored during the emulator run. If this option isn't specified, the default is snapshots.img in the emulator data directory. | |
disk.systemPartition.initPath |
System partition init path – Path to the read-only copy of the system image file; specifically, the partition containing the system libraries and data corresponding to the API level and any variant. If this path isn't specified, the default is system.img in the emulator system directory. | |
disk.systemPartition.path |
System partition path – Path to the read/write system partition image. If this path isn't set, a temporary file is created and initialized from the contents of the file specified by disk.systemPartition.initPath . |
|
disk.systemPartition.size |
System partition size – The ideal size of the system partition (in bytes). The size is ignored if the actual system partition image is larger than this setting; otherwise, it specifies the maximum size that the system partition file can grow to. If this value is an integer, it specifies the size in bytes. You can also specify the size in kilobytes, megabytes, and gigabytes by appending K, M, or G to the value. The minimum size is 9M and the maximum size is 1023G. | |
hw.accelerometer |
Accelerometer – Determines whether the emulated device contains an accelerometer sensor. The accelerometer helps the device determine orientation (used for autorotation). The accelerometer reports the acceleration of the device along three sensor axes. | yes, no |
hw.audioInput |
Audio recording support – Determines whether the emulated device can record audio. | yes, no |
hw.audioOutput |
Audio playback support – Determines whether the emulated device can play audio. | yes, no |
hw.battery |
Battery support – Determines whether the emulated device can run on a battery. | yes, no |
hw.camera |
Camera support – Determines whether the emulated device has a camera. | yes, no |
hw.camera.back |
Back-facing camera – Configures the back-facing camera (the lens faces away from the user). If you're using a webcam on your development computer to simulate the back-facing camera on the emulated device, this value must be set to webcamn, where n selects the webcam (if you have only one webcam, choose webcam0). If set to emulated , the emulator simulates the camera in software. To disable the back-facing camera, set this value to none . If you enable the back-facing camera, be sure to also enable hw.camera . |
emulated, none, webcam0 |
hw.camera.front |
Front-facing camera – Configures the front-facing camera (the lens faces towards the user). If you're using a webcam on your development computer to simulate the front-facing camera on the emulated device, this value must be set to webcamn, where n selects the webcam (if you have only one webcam, choose webcam0). If set to emulated , the emulator simulates a camera in software. To disable the front-facing camera, set this value to none . If you enable the front-facing camera, be sure to also enable hw.camera . |
emulated, none, webcam0 |
hw.camera.maxHorizontalPixels |
Maximum horizontal camera pixels – Configures the maximum horizontal resolution of the emulated device's camera (in pixels). | |
hw.camera.maxVerticalPixels |
Maximum vertical camera pixels – Configures the maximum vertical resolution of the emulated device's camera (in pixels). | |
hw.cpu.arch |
CPU architecture – The CPU architecture to be emulated by the virtual device. To simulate an ARM CPU, select arm for 32-bit or select arm64 for a 64-bit ARM CPU. Keep in mind that ARM-based virtual devices run much slower than devices that are x86-based because hardware acceleration isn't available for ARM. | x86, x86_64, arm, arm64 |
hw.cpu.model |
CPU model – This value is normally left unset (it will be set to a value that is derived from hw.cpu.arch if it isn't explicitly set). However, it can be set to an emulator-specific string for experimental use. |
|
hw.dPad |
DPad keys – Determines whether the emulated device supports directional pad (DPad) keys. A DPad typically has four keys to indicate directional control. | yes, no |
hw.gps |
GPS support – Determines whether the emulated device has a GPS (Global Positioning System) receiver. | yes, no |
hw.gpu.enabled |
GPU emulation – Determines whether the emulated device supports GPU emulation. When enabled, GPU emulation uses Open GL for Embedded Systems (OpenGL ES) for rendering both 2D and 3D graphics on the screen, and the associated GPU Emulation Mode setting determines how the GPU emulation is implemented. | yes, no |
hw.gpu.mode |
GPU emulation mode – Determines how GPU emulation is implemented by the emulator. If you select auto, the emulator chooses hardware and software acceleration based on your development computer setup. If you select host, the emulator uses your development computer's graphics processor to perform GPU emulation for faster rendering. If your GPU isn't compatible with the emulator and you are on Windows, you can try angle instead of host. The angle mode uses DirectX to provide performance similar to host. If you select mesa, the emulator uses the Mesa 3D software library to render graphics. Select mesa if you have problems rendering via your development computer's graphics processor. The swiftshader mode can be used to render graphics in software with slightly less performance than using your computer's GPU. The off option (disable graphics hardware emulation) is a deprecated option that can cause improper rendering for some items and is therefore not recommended. | auto, host, mesa, angle, swiftshader, off |
hw.gsmModem |
GSM modem support – Determines whether the emulated device includes a modem that supports the GSM (Global System for Mobile Communications) telephony radio system. | yes, no |
hw.initialOrientation |
Initial screen orientation – Configures the initial orientation of the screen on the emulated device (portrait or landscape mode). In portrait mode, the screen is taller than it is wide. In landscape mode, the screen is wider than it is tall. When running the emulated device, you can change the orientation if both portrait and landscape are supported in the device profile. | portrait, landscape |
hw.keyboard |
Keyboard support – Determines whether the emulated device supports a QWERTY keyboard. | yes, no |
hw.keyboard.charmap |
Keyboard charmap name – The name of the hardware charmap for this device. NOTE: This should always be the default qwerty2 unless you've modified the system image accordingly. This name is sent to the kernel at boot time. Using an incorrect name will result in an unusable virtual device. | |
hw.keyboard.lid |
Keyboard lid support – If keyboard support is enabled, this setting determines whether the QWERTY keyboard can be closed/hidden or opened/visible. This setting is ignored if hw.keyboard is set to false. NOTE: the default value is false if the emulated device targets API level 12 or higher. | yes, no |
hw.lcd.backlight |
LCD backlight – Determines whether an LCD backlight is simulated by the emulated device. | yes, no |
hw.lcd.density |
LCD density – The density of the emulated LCD display, measured in density-independent pixels, or dp (dp is a virtual pixel unit). When the setting is 160 dp, each dp corresponds to one physical pixel. At runtime, Android uses this value to select and scale the appropriate resources/assets for correct display rendering. | 120, 160, 240, 213, 320 |
hw.lcd.depth |
LCD color depth – The color bit-depth of the emulated framebuffer that holds the bitmap for driving the LCD display. This value can be 16 bits (65,536 possible colors) or 32 bits (16,777,216 colors plus transparency). The 32-bit setting can make the emulator run slightly slower but with better color accuracy. | 16, 32 |
hw.lcd.height |
LCD pixel height – The number of pixels that make up the vertical dimension of the emulated LCD display. | |
hw.lcd.width |
LCD pixel width – The number of pixels that make up the horizontal dimension of the emulated LCD display. | |
hw.mainKeys |
Hardware Back/Home keys – Determines whether the emulated device supports hardware Back and Home navigation buttons. You can set this value to yes if the buttons are implemented only in software. If hw.mainKeys is set to yes, the emulator doesn't display navigation buttons on the screen, but you can use the emulator side panel to "press" these buttons. |
yes, no |
hw.ramSize |
Device RAM Size – The amount of physical RAM on the emulated device, in megabytes. The default value is computed from the screen size or the skin version. Increasing the size can provide faster emulator operation, but at the expense of demanding more resources from your development computer. | |
hw.screen |
Touch screen type – Defines the type of screen on the emulated device. A multi-touch screen can track two or more fingers on the touch interface. A touch screen can detect only single-finger touch events. A no-touch screen doesn't detect touch events. | touch, multi-touch, no-touch |
hw.sdCard |
SDCard support – Determines whether the emulated device supports insertion and removal of virtual SD (Secure Digital) cards. The emulator uses mountable disk images stored on your development computer to simulate the partitions of actual SD card devices (see hw.sdCard.path). | yes, no |
sdcard.size |
SDCard size – Specifies the size of the virtual SD card file at the location specified by hw.sdCard.path . available on the device (in bytes). If this value is an integer, it specifies the size in bytes. You can also specify the size in kilobytes, megabytes, and gigabytes by appending K, M, or G to the value. The minimum size is 9M and the maximum size is 1023G. |
|
hw.sdCard.path |
SDCard Image Path – Specifies the filename and path to an SD card partition image file on your development computer. For example, this path could be set to C:\sd\sdcard.img on Windows. | |
hw.sensors.magnetic_field |
Magnetic Field Sensor – Determines whether the emulated device supports a magnetic field sensor. The magnetic field sensor (also known as magnetometer) reports the ambient geomagnetic field as measured along three sensor axes. Enable this setting for apps that need access to a compass reading. For example, a navigation app might use this sensor to detect which direction the user faces. | yes, no |
hw.sensors.orientation |
Orientation Sensor – Determines whether the emulated device provides orientation sensor values. The orientation sensor measures degrees of rotation that a device makes around all three physical axes (x, y, z). The orientation sensor was deprecated as of Android 2.2 (API level 8). | yes, no |
hw.sensors.proximity |
Proximity Sensor – Determines whether the emulated device supports a proximity sensor. This sensor measures the proximity of an object relative to the view screen of a device. This sensor is typically used to determine whether a handset is being held up to a person's ear. | yes, no |
hw.sensors.temperature |
Temperature Sensor – Determines whether the emulated device supports a temperature sensor. This sensor measures the temperature of the device in degrees Celsius (°C). | yes, no |
hw.touchScreen |
Touch-screen support – Determines whether the emulated device supports a touch screen. The touch screen is used for direct manipulation of objects on the screen. | yes, no |
hw.trackBall |
Trackball support – Determines whether the emulated device supports a trackball. | yes, no |
hw.useext4 |
EXT4 file system support – Determines whether the emulated device uses the Linux EXT4 file system for partitions. Because the file system type is now autodetected, this option is deprecated and ignored. | no |
kernel.newDeviceNaming |
Kernel new device naming – Used to specify whether the kernel requires a new device naming scheme. A new naming scheme is typically used with Linux 3.10 kernels and later. If set to autodetect, the emulator automatically detects whether the kernel requires a new device naming scheme. | autodetect, yes, no |
kernel.parameters |
Kernel parameters – Specifies the string of Linux kernel boot parameters. By default, this setting is left blank. | |
kernel.path |
Kernel path – Specifies the path to the Linux kernel. If this path isn't specified, the emulator looks in the emulator system directory for kernel-ranchu. | |
kernel.supportsYaffs2 |
YAFFS2 partition support – Determines whether the kernel supports YAFFS2 (Yet Another Flash File System 2) partitions. Typically, this support applies only to kernels before Linux 3.10. If set to autodetect, the emulator automatically detects whether the kernel can mount YAFFS2 file systems. | autodetect, yes, no |
skin.name |
Skin name – The name for an Android emulator skin. A skin is a collection of files that defines the visual and control elements of an emulator display; it describes what the window of the AVD will look like on your development computer. A skin describes screen size, buttons, and the overall design, but it doesn't affect the operation of your app. | |
skin.path |
Skin path – Path to the directory that contains the emulator skin files specified in skin.name This directory contains hardware.ini layout files, and image files for the display elements of the skin. | |
skin.dynamic |
Skin dynamic – Whether or not the skin is dynamic. The emulator skin is a dynamic skin if the emulator is to construct a skin of a given size based on a specified width and height. | no |
For more information about these properties, see Hardware Profile Properties.