Get started with the Surface Duo emulator

With the Surface Duo image and the Android Emulator you can test your app without access to a physical device. The emulator simulates postures, gestures, hinge angle, mimicking the seam between the two screens, and more.

See Get the Surface Duo emulator if you don't yet have the tools installed.

How to debug your app on the emulator

The Surface Duo emulator will not automatically appear in the Android Studio device list nor in AVD Manager, you should start it manually. There is a Start menu icon available on Windows, or use the run script in the install location.

  1. Open your project in Android Studio.
  2. Build your project: Build > Make Project or Ctrl+F9.
  3. Select "Virtual device" from the list of running devices (if it does not appear, you should start it directly from the file system).
  4. Run your project to deploy it to the emulator: Run > Run 'project name' or Shift+F10.
  5. To stop debugging: Run > Stop 'project name' or Ctrl+F2.

You can also debug using ADB. Visual Studio users should refer to the Xamarin instructions for the emulator.


The Surface Duo emulator runs Android 10 (also known as Android Q or API 29). Make sure your project targets at least API 29.

Span your app in the emulator

To span your app in the emulator, drag the app from the white bar at the bottom of the app screen towards the middle of the device. When the background turns white across both screens, release the app.

Steps to span an app in the Surface Duo emulator

Rotate your app in the emulator

You can rotate the emulator using these buttons in the emulator toolbox, or use Control+Left arrow and Control+Right arrow keyboard shortcuts:

Rotate buttons in the emulator tools

If the screen elements don't rotate, check that Auto-rotate is enabled. You can use Settings > Display > Auto-rotate screen or pull down from the status bar and ensure the Auto-rotate option is enabled (blue):

Ensure autorotate is enabled

Move, rotate, and preview the device posture

Open the the Extended controls window from the emulator toolbar and the select Virtual sensors item. This shows the Device Pose tab. Use the Rotate and Move radio buttons to show sliders to adjust the device's position, or click and drag in the preview window:

Device Pose preview window showing Surface Duo simulated device

You can also use the Rotation buttons to center the device and set the rotation to 0, 90, 180, or 270 degrees.

Simulate the hinge angle changing

Open the the Extended controls window from the emulator toolbar and the select Virtual sensors item. This shows the Device Pose tab which has a Fold radio button and hinge angle slider:

Hinge angle sensor slider

When the hinge angle exceeds 235 degrees the device will enter Flip mode and one screen will be turned off.

Simulate different device postures

The Surface Duo can be placed in a number of different postures, some of which will affect your app (such as if the app is spanned but the device is folded into tent or flip mode, and one screen is turned off).

Access the device posture buttons in the Extended controls window, Virtual sensors section, by choosing the Fold radio button:

Change posture buttons

These buttons will set a specific hinge angle. Use the Rotate and Move radio buttons to adjust the device position and orientation, which also affects how the app displays. You can also change the rotation of the device by dragging on the 3D posture preview.

Posture name Hinge angle range *
Closed 0 - 22.5
Tent ^ 22.5 - 107.5
Half-Open 107.5 - 125
Open 125 - 240
Flipped ^ 240 - 360

* these ranges reflect the current emulator preview behavior but are subject to change in a future release. To accurately simulate a specific posture use the hinge-angle slider.

^ both Tent and Flipped postures should only have one active screen. The second screen is disabled at angles greater than 235 degrees.

Use the camera

By default, the emulator uses an “emulated” camera image, which looks a bit cartoonish. Instead you can configure the emulator to pass through a camera attached to your computer, by first running this command to get a list of available cameras:

Platform Command
Windows %LOCALAPPDATA%\Android\Sdk\emulator\emulator -webcam-list
Mac ~/Library/Android/sdk/emulator/emulator -webcam-list
Linux ~/Android/Sdk/emulator/emulator -webcam-list

The camera names will be similar to "webcam0".

Open the config.ini file in the emulator's installation directory. The default camera values will look similar to this:

Change one of the cameras to the value returned from -webcam-list, such as the front camera in this example:

Restart the emulator for the updated camera settings to take effect.

Add files to the emulator

You can drag supported file types (such as images) into the emulator window, and they will be copied into the emulator's file system. You can also use the Device File Explorer in Android Studio.

If you drag a compatible APK into the emulator window, it will automatically be installed and ready to use.