Verwenden des Surface Duo-EmulatorsUse the Surface Duo emulator

Wichtig

In diesem Artikel werden Funktionen und Anleitungen beschrieben, die sich in der öffentlichen Vorschau befinden und vor der allgemeinen Verfügbarkeit noch wesentlich geändert werden können.This article describes functionality and guidance that is in public preview and may be substantially modified before it's generally available. Microsoft übernimmt keine Garantie, weder ausdrücklich noch stillschweigend, für die hier bereitgestellten Informationen.Microsoft makes no warranties, express or implied, with respect to the information provided here.

Mit dem Surface Duo-Image und dem Android-Emulator kannst du deine App testen, ohne auf ein physisches Gerät zugreifen zu müssen.With the Surface Duo image and the Android Emulator you can test your app without access to a physical device. Der Emulator simuliert Gerätehaltungen, Gesten und Scharnierwinkel, ahmt die Naht zwischen den beiden Bildschirmen nach und vieles mehr.The emulator simulates postures, gestures, hinge angle, mimicking the seam between the two screens, and more. Wir werden im Laufe der Zeit weitere Funktionen hinzufügen.We'll continue to add functionality over time.

Lies Abrufen des Surface Duo-Emulators, wenn du die Tools noch nicht installiert hast.See Get the Surface Duo emulator if you don't yet have the tools installed.

Debuggen deiner App im EmulatorHow to Debug your App on the emulator

Direkt in Android StudioDirectly in Android Studio

  • Öffne dein Projekt in Android Studio.Open your project in Android Studio.
  • Kompiliere dein Projekt: Build > Projekt erstellen oder STRG+F9.Build your project: Build > Make Project or Ctrl+F9.
  • Wähle in der Liste mit ausgeführten Geräten Microsoft SurfaceDuoEmulator API 29 aus.Select "Microsoft SurfaceDuoEmulator API 29" from the list of Running Devices.
  • Führe dein Projekt aus, um es im Emulator bereitzustellen: Ausführen > Projektname ausführen oder UMSCHALTTASTE+F10.Run your project to deploy it to the emulator: Run > Run 'project name' or Shift+F10.
  • So beendest du das Debuggen Ausführen > Projektname beenden oder UMSCHALTTASTE+F2.To stop debugging: Run > Stop 'project name' or Ctrl+F2.

Verwenden der ADB-BefehleUsing ADB commands

Führe diese Schritte zum Debuggen mithilfe von ADB-Befehlen aus.Follow these steps to debug using ADB commands.

  1. Ermittle die Emulator-Geräte-ID.Find your emulator device ID

    Führe C:\>adb devices aus.Run C:\>adb devices.

    emulator-5554   device
    
  2. Wähle das Paket aus, das du debuggen möchtest.Find the package you want to debug.

    Führen Sie adb shell pm list packages aus.Run adb shell pm list packages.

    package:com.android.managedprovisioning
    package:com.android.smspush
    package:com.android.wallpaper.livepicker
    package:com.android.storagemanager
    package:com.android.bookmarkprovider
    package:com.android.settings
    package:com.android.calculator2
    package:com.android.vpndialogs
    package:com.android.email
    package:com.android.music
    
  3. Lege die App so fest, dass das Debuggen beim Start erfolgt (beachte das „-w“).Set the app to debug at startup (note the -w)

    Führen Sie adb shell am set-debug-app -w com.microsoft.device.display.samples.masterdetail aus.Run adb shell am set-debug-app -w com.microsoft.device.display.samples.masterdetail.

  4. Starte die App im Emulator.Start the app in the emulator.

    Ein Popup informiert dich, dass die App auf das Anfügen eines Debuggers wartet.You will get a popup that the app is waiting for a debug to attach. Du musst das festgelegte Debuggen jedes Mal wiederholen (oder die Option „--persistent“ verwenden).You will need to re-run the set debug each time (or use --persistent option).

  5. Herstellen der Verbindung mit dem Android Studio-DebuggerConnect Android Studio Debugger

    Wähle in den Android Studio-Menüoptionen Ausführen -> Debugger an Android-Prozess anhängen aus.In Android Studio menu options, select Run->Attach debugger. Emulator und Prozess sollten aufgeführt sein.The emulator and process should be listed.

  6. Zeige auf den Quellcode, und lege Haltepunkte fest.Point to source code and set breakpoints.

Die App im Emulator beide Bildschirme einnehmen lassenSpan your app in the emulator

Um die App im Emulator beide Bildschirme einnehmen zu lassen, ziehe die App von der weißen Leiste unten auf dem App-Bildschirm in Richtung Mitte des Geräts.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. Wenn der Hintergrund auf beiden Bildschirmen weiß wird, gib die App frei.When the background turns white across both screens, release the app.

Schritte, um eine App im Surface Duo-Emulator beide Bildschirme einnehmen zu lassen

Drehen deiner App im EmulatorRotate your app in the emulator

Du kannst den Emulator mithilfe dieser Schaltflächen in der Emulator-Toolbox drehen, oder du verwendest die Tastenkombinationen STRG+NACH-LINKS-TASTE bzw. STRG+NACH-RECHTS-TASTE:You can rotate the emulator using these buttons in the emulator toolbox, or use Control+Left arrow and Control+Right arrow keyboard shortcuts:

Schaltflächen zum Drehen in den Emulatortools

Wenn sich die Bildschirmelemente nicht drehen, überprüfe, ob Automatisch drehen aktiviert ist.If the screen elements don't rotate, check that Auto-rotate is enabled. Du kannst Einstellungen > Anzeige > Bildschirm automatisch drehen verwenden oder von der Statusleiste nach unten ziehen und sicherstellen, dass die Option Automatisch drehen aktiviert ist (blau):You can use Settings > Display > Auto-rotate screen or pull down from the status bar and ensure the Auto-rotate option is enabled (blue):

Sicherstellen, dass „Automatisch drehen“ aktiviert ist

Wenn sich der Inhalt immer noch nicht dreht, tritt hier möglicherweise ein Kompatibilitätsproblem auf. Hilfe findest du im Problembehandlungsabschnitt.If you still don't see the content rotating, you maybe hitting a compatibility issue - check the Troubleshooting section for help.

Simulieren der Änderung des ScharnierwinkelsSimulate the hinge angle changing

Die aktuelle Emulatorvorschau verfügt über kein dediziertes Steuerelement für den Scharnierwinkel.The current emulator preview does not have a dedicated hinge angle control. Stattdessen haben wir das Sensorsteuerelement Druck (hPa) umgewidmet, sodass es nun Scharnierwinkel-Änderungsereignisse sendet.Instead we have re-purposed the Pressure (hPa) sensor control to send hinge angle change events.

Du kannst auf das Druck-Steuerelement über das Fenster Erweiterte Steuerelemente (die Schaltfläche ... (Auslassungspunkte) am unteren Rand der Emulator-Toolbox) zugreifen.You can access the pressure control from the Extended controls window (the ... ellipsis button at the bottom of the emulator toolbox). Wähle dann die Registerkarte Virtuelle Sensoren > Zusätzliche Sensoren aus, und verschiebe den Schieberegler, oder bearbeite das Textfeld für Druck (hPa) mit Werten zwischen 0 und 360.Then choose Virtual sensors > Additional sensors tab, and move the slider or edit the text box for Pressure (hPa) with values between 0 and 360.

Drucksensor im Fenster „Zusätzliche virtuelle Sensoren“

Weitere Informationen sowie ein Beispiel findest du im Blogbeitrag zum Scharnierwinkel.See this hinge angle blog post for more details and a sample.

Simulieren verschiedener GerätepositionenSimulate different device postures

Das Surface Duo kann in einer Reihe unterschiedlicher Positionen platziert werden, von denen sich manche auf deine App auswirken (z. B. wenn die App übergreifend ist, das Gerät aber im Zelt- oder Flip-Modus gefaltet und ein Bildschirm ausgeschaltet ist).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).

Die aktuelle Emulatorvorschau verfügt über kein dediziertes Steuerelement für die Geräteposition.The current emulator preview does not have a dedicated device posture control. Stattdessen haben wir das Sensorsteuerelement Relative Luftfeuchtigkeit (%) umgewidmet, sodass es nun Positionsänderungsereignisse sendet.Instead we have re-purposed the Relative humidity (%) sensor control to send posture change events.

Du kannst auf das Druck-Steuerelement über das Fenster Erweiterte Steuerelemente (die Schaltfläche ... (Auslassungspunkte) am unteren Rand der Emulator-Toolbox) zugreifen.You can access the pressure control from the Extended controls window (the ... ellipsis button at the bottom of the emulator toolbox). Wähle dann die Registerkarte Virtuelle Sensoren > Zusätzliche Sensoren aus, und bearbeite das Textfeld für Relative Luftfeuchtigkeit (%) mit Werten zwischen 0 und 16 (vermeide die Verwendung des Schiebereglers, da sich damit exakte Werte nur schwer auswählen lassen).Then choose Virtual sensors > Additional sensors tab, edit the text box for Relative humidity (%) with values between 0 and 16 (avoid using the slider since it's hard to pick precise values).

„Relative Luftfeuchtigkeit“-Sensor im Fenster „Zusätzliche virtuelle Sensoren“

Die Werte entsprechen diesen Positionen:The values correspond to these postures:

PositionsnamePosture name WertValue
GeschlossenClosed 00
Peek (rechts)Peek (Right) 11
Peek (links)Peek (Left) 22
BuchBook 33
PalettePalette 44
Flach (DPM)Flat (DPM) 55
Flach (DLM)Flat (DLM) 66
Broschüre (rechts)Brochure (Right) 77
Broschüre (links)Brochure (Left) 1313
Zelt (rechts)Tent (Right) 88
Zelt (links)Tent (Left) 1414
Rampe (rechts)Ramp (Right) 1515
Rampe (links)Ramp (Left) 1616
Flip-P (rechts)Flip-P (Right) 99
Flip-L (rechts)Flip-L (Right) 1010
Flip-P (links)Flip-P (Left) 1111
Flip-L (rechts)Flip-L (Left) 1212

Bei den Werten 8 bis 14 (Zelt und Flip) ist zu erwarten, dass einer der Bildschirme deaktiviert wird.Values 8 through 14 (tent and flip) can be expected to turn off one of the screens.

Verwenden der KameraUse the camera

Verwende diesen Befehl, um die auf dem Computer verfügbaren Webcams aufzulisten:Use this command to list the webcams available on the machine:

~/Android/Sdk/emulator/emulator -webcam-list

Ändere ggf. den Pfad entsprechend der lokalen Installation.If necessary, change the path to match your local installation.

Kopiere den Namen der gewünschten Kamera, und öffne die Datei „config.ini“.Copy the camera name you want to use, and open the config.ini file. Diese enthält in etwas Folgendes:In there you will see something like this:

 hw.camera.back=virtualscene
 hw.camera.front=emulated

Beispielsweise kannst du die Frontkamera so ändern, dass die Webcam des Hostcomputers verwendet wird.For example, you can change the front camera to use the host machine's webcam.

 hw.camera.back=virtualscene
 hw.camera.front=webcam0