Instalace Surface Duo emulátoru a SDK

Microsoft právě oznámil vydání prvního preview emulátoru Surface Duo a SDK. Podívejme se na to, jak je zprovoznit, abychom mohli začít vyvíjet naše první dual-screen Xamarin.Android aplikace!

Z hlavní stránky Docs pro vývoj dual-screen aplikací klikneme na odkaz Get the Surface Duo SDK Preview:

Get the Surface Duo SDK Preview
Get the Surface Duo SDK Preview

Tím se dostaneme do Download Center s velkým červeným tlačítkem Download, na které klikneme, aby se začal hutný download (cca 800 MB).

Instalace

Ujistěte se, že máte nainstalované Visual Studio s Xamarin workloadem (je podporován i nativní vývoj v Android Studiu, viz. Docs). Ujistěte se, že máte aktuální stabilní verzi Android SDK a především Android Emulátoru. Můžete to udělat přes Android SDK Manager ve Visual Studiu.

Up-to-date emulator
Up-to-date emulator

Extrahujeme stažený soubor .zip a otevřeme .exe instalátor. Instalace chvíli potrvá, takže se pohodlně usaďte a odpočiňte si.

Spuštění emulátoru

Po dokončení instalace najdeme emulátor mezi nainstalovanými aplikacemi. Stiskneme klávesu Windows a začneme psát Surface Duo Emulator. Spouštěcí aplikace by se měla objevit mezi prvními výsledky. Po otevření se objeví okno konzole a emulátor se začne konfigurovat pro první spuštění.

Surface Duo Emulator
Surface Duo Emulator

Pokud narazíte na problémy, otevřte přímo spouštěcí .bat soubor z příkazové řádky (najdete jej ve složce C:\Users\USERNAME\SurfaceDuoEmulator\artifacts\run.bat) a hledejte ve výpisu chybové hlášky. V mém případě nefungovaly správně služby Hyper-V/Windows Hypervisor Platform a musel jsem je ručně vypnout (přes ovladací panel Turn Windows Features On/Off), restartovat počítač a znovu je zapnout.

Surface Duo Emulator is running!
Surface Duo Emulator běží!

Použití emulátoru z Visual Studia

Emulátor je samozřejmě ještě zajímavější, kdy na něm běží naše aplikace! Nejprve mi nebylo jasné, proč emulátor ve Visual Studiu není viditelný, ale pak jsem zjistil, že instrukce pro Xamarin vývojáře jsou úplně dole na stránce Use the Surface Duo emulator.

Zavřeme emulátor a přejdeme do složky C:\Users\USERNAME\SurfaceDuoEmulator\artifacts\. Vytvoříme záložní kopii souboru run.bat. Pak otevřeme run.bat v našem oblíbeném textovém editoru a nahradíme jeho obsah:

@echo off
rem ##### ENSURE THE SDK LOCATION BELOW IS CORRECT: #######
set ANDROID_SDK_LOCATION=C:\Program Files (x86)\Android\android-sdk
rem ############ DO NOT Modify below this line ############
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.\
echo %DIRNAME%
rem Check if emulator is installed
set EMULATOR=%ANDROID_SDK_LOCATION%\emulator\emulator.exe
echo "%EMULATOR%"
if exist %EMULATOR% (
set ANDROID_PRODUCT_OUT=%DIRNAME%
"%EMULATOR%" -verbose -accel auto %* -sysdir %DIRNAME%\bin -kernel "%DIRNAME%\bin\kernel-ranchu" -datadir %DIRNAME%\bin\data -initdata %DIRNAME%\bin\userdata.img -vendor %DIRNAME%\bin\vendor-qemu.img -system %DIRNAME%\bin\system-qemu.img -initdata %DIRNAME%\bin\userdata.img -data %DIRNAME%\bin\userdata.img
) else (
echo "Can't find emulator executable, make sure its installed"
)

view raw
Run.bat
hosted with ❤ by GitHub

Jak skript zmiňuje, je třeba se ujistit, že proměnná ANDROID_SDK_LOCATION ukazuje správně na místo, kde je nainstalované Visual Studio Android SDK.

Můžeme nyní spustit Visual Studio a poté emulátor. Po vybrání Xamarin.Android projektu jako výchozího by se měl Surface Duo Emulátor zobrazit mezi běžícími zařízeními.

Surface Duo emulator disguised as <build>
Surface Duo emulator disguised as

V mém případě bylo nutné emulátor znovu restartovat aby se zobrazil. Také pozor, že jeho název je <build> (Android 10.0 – API 29). To je známý bug, který bude v příštím release opraven. A zde již je Uno Platform Hello World aplikace běžící na Surface Duo!

Uno, Surface Duo!
Uno, Surface Duo!

Instalace Surface Duo SDK

Druhým dílkem Surface Duo skládanky je SDK, které nám umožní přístup k unikátním vlastnostem dual-screen zařízení. Xamarin.Android vývojáři mohou stáhnout Xamarin.DuoSdk již nyní na NuGetu.

Install-Package Xamarin.DuoSdk -Version 0.0.3.2

view raw
DuoSdk.Nuget.txt
hosted with ❤ by GitHub

S SDK získáme API jako Microsoft.Device.Display.DisplayMask a Microsoft.Device.Display.HingeSensor a další pomocné třídy jako ScreenHelper. Ty nám pomohou rychle získat přístup k hardware Surface Duo. O SDK napíšu další článek již brzy.

Začtěte se do dokumentace

Na stránce o vývoji pro dual-screen zařízení najdete mnoho zajímavých informací. Doporučuji si především přečíst článek Introduction to dual-screen devices, který ukazuje, jak nad tímto unikátním typem zařízení Microsoft přemýšlí. Všechny tyto informace platí i pro Surface Neo.

Buy me a coffeeBuy me a coffee

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.