Funkce Oreo

Jak začít používat Xamarin.Android k vývoji aplikací pro nejnovější verzi Androidu

Android 8.0 Oreo je nejnovější verze Androidu dostupná od Googlu. Android Oreo nabízí vývojářům Xamarin.Android mnoho nových funkcí. Mezi tyto funkce patří kanály oznámení, oznámení, vlastní písma ve formátu XML, písma ke stažení, automatické vyplňování a obrázek v obrázku (PIP). Android Oreo obsahuje nová rozhraní API pro tyto nové funkce a tato rozhraní API jsou dostupná pro aplikace Xamarin.Android, když používáte Xamarin.Android 8.0 a novější.

Android Oreo hero image

Tento článek je strukturovaný, který vám pomůže začít s vývojem aplikací Xamarin.Android pro Android 8.0 Oreo. Vysvětluje, jak nainstalovat potřebné aktualizace, nakonfigurovat sadu SDK a vytvořit emulátor (nebo zařízení) pro testování. Poskytuje také přehled nových funkcí v Androidu 8.0 Oreo s odkazy na ukázkové aplikace, které ilustrují použití funkcí Android Oreo v aplikacích Xamarin.Android.

Požadavky

K používání funkcí Android Oreo v aplikacích založených na Xamarinu je potřeba následující:

  • Visual Studio – Pokud používáte Windows, vyžaduje se verze 15.5 nebo novější sady Visual Studio. Pokud používáte Mac, Visual Studio pro Mac verze 7.2.0 se vyžaduje.

  • Xamarin.Android – Xamarin.Android 8.0 nebo novější musí být nainstalovaný a nakonfigurovaný pomocí sady Visual Studio.

  • Sada Android SDK – Android SDK 8.0 (API 26) nebo novější musí být nainstalována prostřednictvím Správce sady Android SDK.

Začínáme

Pokud chcete začít používat Android Oreo s Xamarin.Androidem, musíte si před vytvořením projektu Android Oreo stáhnout a nainstalovat nejnovější nástroje a balíčky SDK:

  1. Aktualizujte na nejnovější verzi sady Visual Studio.

  2. Nainstalujte balíčky a nástroje pro Android 8.0.0 (API 26) nebo novější prostřednictvím Správce sady SDK.

  3. Vytvořte nový projekt Xamarin.Android, který cílí na Android Oreo (API 26).

  4. Nakonfigurujte emulátor nebo zařízení pro testování aplikací Android Oreo.

Každý z těchto kroků je vysvětlený v následujících částech:

Aktualizace sady Visual Studio a Xamarin.Android

Pokud chcete do sady Visual Studio přidat podporu androidu Oreo, postupujte takto:

  • Pro Visual Studio 2019 použijte Správce sady SDK k instalaci úrovně rozhraní API 26.0 nebo novější.

  • Pokud používáte Visual Studio 2017:

    1. Aktualizace na Visual Studio 2017 verze 15.7 nebo novější (viz aktualizace sady Visual Studio 2017).

    2. Pomocí Správce sady SDK nainstalujte rozhraní API úrovně 26.0 nebo novější.

Další informace o podpoře Xamarinu pro Android Oreo najdete v poznámkách k verzi Xamarin.Android 8.0.

Instalace sady Android SDK

Pokud chcete vytvořit projekt s Xamarin.Android 8.0, musíte nejprve použít Xamarin Android SDK Manager k instalaci platformy SDK pro Android 8.0 – Oreo nebo novější. Musíte také nainstalovat Nástroje sady Android SDK 26.0 nebo novější.

  1. Spusťte Správce sady SDK (v sadě Visual Studio klikněte na Nástroje > Android > SDK Manager).

  2. Nainstalujte balíčky Android 8.0 – Oreo. Pokud používáte emulátor sady Android SDK, nezapomeňte zahrnout systémové image x86 , které budete potřebovat:

    Selecting Android 8.0 packages in the Android SDK Manager

  3. Nainstalujte android SDK Tools 26.0.2 nebo novější, Android SDK Platform-Tools 26.0.0 nebo novější a Android SDK Build-Tools 26.0.0 (nebo novější):

    Selecting Android SDK Tools 26 in the Android SDK Manager

Spuštění projektu Xamarin.Android

Vytvořte nový projekt Xamarin.Android. Pokud s vývojem pro Android s Xamarinem začínáte, přečtěte si téma Hello, Android , kde se dozvíte o vytváření projektů Xamarin.Android.

Při vytváření projektu pro Android musíte nakonfigurovat nastavení verze pro cílení na Android 8.0 nebo novější. Pokud chcete například cílit na projekt pro Android 8.0, musíte nakonfigurovat cílovou úroveň rozhraní Android API projektu na Android 8.0 (ROZHRANÍ API 26). Doporučujeme také nastavit cílovou úroveň architektury na rozhraní API 26 nebo novější. Další informace o konfiguraci úrovní na úrovni rozhraní ANDROID API najdete v tématu Principy úrovní rozhraní ANDROID API.

Konfigurace emulátoru nebo zařízení

Pokud se po instalaci nástrojů Android SDK 26.0 nebo novější pokusíte spustit výchozí správce AVD založený na grafickém uživatelském rozhraní Google, může se zobrazit následující chybové dialogové okno, které vás vyzve k použití nástroje avdmanager pro příkazový řádek avdmanager :

Tato zpráva se zobrazí, protože Google už neposkytuje samostatný správce GRAFICKÉho uživatelského rozhraní AVD, který podporuje rozhraní API 26.0 a novější. Pro Android 8.0 Oreo musíte k vytvoření virtuálních zařízení pro Android Oreo použít správce Xamarin Android Emulator nebo nástroj příkazového řádku avdmanager .

Pokud chcete použít Správce zařízení Androidu k vytváření a správě virtuálních zařízení, přečtěte si téma Správa virtuálních zařízení pomocí Správce zařízení Androidu. Pokud chcete vytvořit virtuální zařízení bez Správce zařízení Androidu, postupujte podle kroků v další části.

Vytváření virtuálních zařízení pomocí avdmanageru

Pokud chcete k vytvoření nového virtuálního zařízení použít avdmanager , postupujte takto:

  1. Otevřete okno příkazového řádku a nastavte JAVA_HOME ho na umístění sady Java SDK ve vašem počítači. Pro typickou instalaci Xamarinu můžete použít následující příkaz:

    setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_131"
    
  2. Přidejte do složky PATHAndroid SDK bin umístění . Pro typickou instalaci Xamarinu můžete použít následující příkaz:

    setx PATH "%PATH%;C:\Program Files (x86)\Android\android-sdk\tools\bin"
    
  3. Zavřete okno příkazového řádku a otevřete nové okno příkazového řádku. Pomocí příkazu avdmanager vytvořte nové virtuální zařízení. Pokud například chcete vytvořit AVD s názvem AVD-Oreo-8.0 pomocí systémové image x86 pro rozhraní API úrovně 26, použijte následující příkaz:

    avdmanager create avd -n AVD-Oreo-8.0 -k "system-images;android-26;google_apis;x86"
    
  4. Po zobrazení výzvy k vytvoření vlastního hardwarového profilu [ne] můžete zadat ne a přijmout výchozí hardwarový profil. Pokud řeknete ano, avdmanager vás vyzve se seznamem otázek k přizpůsobení hardwarového profilu.

Po vytvoření virtuálního zařízení bude součástí rozevírací nabídky zařízení avdmanager:

New AVD added to device pull-down menu

Další informace o konfiguraci emulátoru Androidu pro testování a ladění naleznete v tématu Ladění v emulátoru Androidu.

Pokud používáte fyzické zařízení, jako je zařízení Nexus nebo Pixel, můžete zařízení buď aktualizovat prostřednictvím automatických aktualizací OTA (Air Over The Air), nebo si stáhnout systémový obrázek a blikat zařízení přímo. Další informace o ruční aktualizaci zařízení na Android Oreo naleznete v tématu Obrázky továrny pro zařízení Nexus a Pixel.

Nové funkce

Android Oreo představuje celou řadu nových funkcí a možností, jako jsou kanály oznámení, oznámení, vlastní písma v JAZYCE XML, písma ke stažení, automatické vyplňování a obrázky v obrázku. Následující části zvýrazňují tyto funkce a poskytují odkazy, které vám pomůžou začít používat je ve vaší aplikaci.

Kanály oznámení

Kanály oznámení jsou kategorie definované aplikací pro oznámení. Můžete vytvořit kanál oznámení pro každý typ oznámení, které potřebujete odeslat, a můžete vytvořit kanály oznámení, které odrážejí volby provedené uživateli vaší aplikace. Nová funkce kanálů oznámení umožňuje uživatelům jemně odstupňovanou kontrolu nad různými druhy oznámení. Pokud například implementujete aplikaci pro zasílání zpráv, můžete vytvořit samostatné kanály oznámení pro každou skupinu konverzací, kterou vytvořil uživatel.

Kanály oznámení vysvětlují, jak vytvořit kanál oznámení a používat ho k publikování místních oznámení. Příklad skutečného kódu najdete v ukázce NotificationChannels . Tato ukázková aplikace spravuje dva kanály a nastavuje další možnosti oznámení.

Oznámení

Oznámení jsou malé tečky, které se zobrazují přes ikony aplikací, jak je znázorněno na tomto snímku obrazovky:

Example notification badges on app icons

Tyto tečky značí, že v aplikaci přidružené k této ikoně aplikace existují nová oznámení pro jeden nebo více kanálů oznámení – jedná se o oznámení, která uživatel ještě nezavřel nebo se s nimi choval. Uživatelé můžou na ikonu dlouho stisknout, aby se podívali na oznámení přidružená k oznámení, zavření nebo jednání na oznámeních z dlouhé nabídky stisknutou klávesou appeaars.

Další informace o oznámeních najdete v tématu Oznámení pro vývojáře androidu .

Vlastní písma ve formátu XML

Android Oreo zavádí písma ve formátu XML, což umožňuje začlenit vlastní písma jako prostředky. Podporují se formáty písem OpenType (.otf) a TrueType (.ttf). Pokud chcete přidat písma jako prostředky, postupujte takto:

  1. Vytvořte složku Resources/font .

  2. Zkopírujte soubory písem (například .ttf a .otf soubory) do zdroje a písma.

  3. V případě potřeby přejmenujte každý soubor písma tak, aby dodržoval zásady vytváření názvů souborů pro Android (tj. používejte pouze malá písmena a-z, 0-9 a podtržítka v názvech souborů). Například soubor Pacifico-Regular.ttf písma může být přejmenován na něco jako pacifico.ttf.

  4. Použijte vlastní písmo pomocí nového android:fontFamily atributu ve formátu XML rozložení. Například následující TextView deklarace používá přidaný prostředek písma pacifico.ttf :

    <TextView
      android:text="Example Text in Pacifico Regular"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:fontFamily="@font/pacifico" />
    

Můžete také vytvořit soubor XML rodiny písem, který popisuje více písem a také podrobnosti o stylu a hmotnosti. Další informace najdete v tématu Android Developer Fonts v tématu XML .

Písma ke stažení

Od Androidu Oreo můžou aplikace požadovat písma od poskytovatele, a ne je spojování do APK. Písma se stáhnou z sítě jenom podle potřeby. Tato funkce snižuje velikost APK, šetří paměť telefonu a využití mobilních dat. Tuto funkci můžete použít také v rozhraní ANDROID API verze 14 a vyšší instalací balíčku Android Support Library 26.

Když vaše aplikace potřebuje písmo, vytvoříte FontsRequest objekt (určíte písmo ke stažení) a pak ho FontsContract předáte metodě pro stažení písma. Následující kroky popisují proces stahování písma podrobněji:

  1. Vytvoření instance objektu FontRequest

  2. Podtřídy a vytvoření instance FontsContract.FontRequestCallback.

  3. Implementujte FontRequestCallback.OnTypeFaceRetrieved metoda, která se používá ke zpracování dokončování požadavku na písmo.

  4. Implementujte FontRequestCallback.OnTypeFaceRequestFailed metoda, která se používá k informování vaší aplikace o všech chybách, které probíhají během procesu žádosti o písmo.

  5. Volání FontsContract.RequestFonts metoda načtení písma od poskytovatele písma.

Při volání RequestFonts metody nejprve zkontroluje, jestli je písmo místně uložené v mezipaměti (z předchozího volání RequestFont). Pokud není uložená v mezipaměti, volá poskytovatele písem, asynchronně načte písmo a výsledky pak předá zpět do vaší aplikace vyvoláním metody OnTypeFaceRetrieved .

Ukázka písma ke stažení ukazuje, jak používat funkci Stáhnout písma zavedená v Androidu Oreo.

Další informace o stahování písem najdete v tématu Stažení písma pro vývojáře pro Android.

Automatické vyplňování

Nová architektura automatického vyplňování v Androidu Oreo usnadňuje uživatelům zpracování opakovaných úloh, jako jsou přihlášení, vytváření účtu a transakce platební karty. Uživatelé tráví méně času opakovaným psaním informací (což může vést k chybám při zadávání). Než bude vaše aplikace moct pracovat s architekturou automatického vyplňování, musí být v nastavení systému povolená služba automatického vyplňování (uživatelé můžou automatické vyplňování povolit nebo zakázat).

Ukázka automatického vyplňování demonstruje použití rozhraní Autofill Framework . Zahrnuje implementace klientských aktivit se zobrazeními, která by se měla automaticky vyplňovat, a služba, která může poskytovat data automatického vyplňování klientským aktivitám.

Další informace o nové funkci automatického vyplňování a o tom, jak optimalizovat aplikaci pro automatické vyplňování, najdete v tématu rozhraní Android Developer Autofill Framework .

Obrázek v obrázku (PIP)

Android Oreo umožňuje aktivitě spustit v režimu obrázku (PIP) překryvnou obrazovku jiné aktivity. Tato funkce je určená pro přehrávání videa.

Pokud chcete určit, že aktivita vaší aplikace může používat režim PIP, nastavte v manifestu Androidu následující příznak na true:

android:supportsPictureInPicture

Chcete-li určit, jak se má aktivita chovat, když je v režimu PIP, použijte nový PictureInPictureParams objekt. PictureInPictureParams představuje sadu parametrů, které použijete k inicializaci a aktualizaci aktivity v režimu PIP (například upřednostňovaný poměr stran aktivity). Do Androidu Oreo byly přidány Activity následující nové metody PIP:

  • EnterPictureInPictureMode – umístí aktivitu do režimu PIP. Aktivita se umístí do rohu obrazovky a zbytek obrazovky se vyplní předchozí aktivitou, která byla na obrazovce.

  • SetPictureInPictureParams – Aktualizace nastavení konfigurace PIP aktivity (například změna poměru stran).

Ukázka PictureInPicture ukazuje základní použití režimu Picture-in-Picture (PiP) pro ruční zařízení zavedená v Oreo. Ukázka přehraje video, které bude nepřerušované při přepínání mezi režimy zobrazení nebo jinými aktivitami.

Další funkce

Android Oreo obsahuje mnoho dalších nových funkcí, jako je knihovna podpory Emoji, rozhraní API pro polohu, omezení pozadí, širokoúhlá barva pro aplikace, nové zvukové kodeky, vylepšení WebView, vylepšená podpora navigace pomocí klávesnice a nové rozhraní API AAudio (pro zvuk) pro zvuk s vysokou nízkou latencí, další informace o těchto funkcích najdete v tématu o funkcích Android Developer Android Oreo a rozhraní API .

Změny chování

Android Oreo zahrnuje celou řadu změn chování systému a rozhraní API, které můžou mít vliv na funkčnost stávajících aplikací. Tyto změny jsou popsány následujícím způsobem.

Omezení spouštění na pozadí

Aby se zlepšilo uživatelské prostředí, Android Oreo omezuje, jaké aplikace můžou dělat na pozadí. Pokud například uživatel sleduje video nebo hraje hru, může aplikace spuštěná na pozadí ovlivnit výkon aplikace náročné na video běžící v popředí. V důsledku toho Android Oreo u aplikací, které přímo nekomuagují s uživatelem, umístí následující omezení:

  1. Omezení služby Na pozadí – Když aplikace běží na pozadí, má okno několik minut, ve kterém je stále povoleno vytvářet a používat služby. Na konci tohoto okna Android zastaví službu na pozadí aplikace a považuje ji za nečinnou.

  2. Omezení vysílání – Android 7.0 (API 25) umisťuje omezení vysílání, která aplikace zaregistruje k příjmu. Android Oreo tato omezení ztěžuje. Aplikace Android Oreo už například nemůžou registrovat přijímače vysílání pro implicitní vysílání v jejich manifestech.

Další informace o nových omezeních spouštění na pozadí najdete v tématu Omezení spouštění na pozadí pro vývojáře v Androidu.

Zásadní změny

Aplikace, které cílí na Android Oreo nebo vyšší, musí upravit své aplikace, aby podporovaly následující změny, pokud je to možné:

  • Android Oreo přestane používat možnost nastavit prioritu jednotlivých oznámení. Místo toho nastavíte doporučenou úroveň důležitosti při vytváření kanálu oznámení. Úroveň důležitosti, kterou přiřadíte kanálu oznámení, platí pro všechny zprávy oznámení, které do kanálu publikujete.

  • U aplikací, které cílí na Android Oreo, PendingIntent.GetService() nefungují kvůli novým omezením nastaveným na služby spuštěné na pozadí. Pokud cílíte na Android Oreo, měli byste místo toho použít PendingIntent.GetBroadcast .

Ukázka kódu

K dispozici je několik ukázek Xamarin.Android, které vám ukážou, jak využívat funkce Androidu Oreo:

  • NotificationsChannels ukazuje, jak používat nový systém Kanály oznámení zavedený v Androidu Oreo. Tato ukázka spravuje dva kanály oznámení: jeden s výchozí důležitostí a druhý s vysokou důležitostí.

  • PictureInPicture ukazuje základní použití režimu Picture-in-Picture (PiP) pro ruční zařízení zavedená v Oreo. Ukázka přehraje video, které bude nepřerušované při přepínání mezi režimy zobrazení nebo jinými aktivitami.

  • Funkce AutofillFramework demonstruje použití rozhraní Automatické vyplňování. Zahrnuje implementace klientských aktivit se zobrazeními, která by se měla automaticky vyplňovat, a služba, která může poskytovat data automatického vyplňování klientským aktivitám.

  • Písma ke stažení poskytují příklad použití funkce Stáhnoutelná písma popsaná výše.

  • EmojiCompat ukazuje použití knihovny podpory EmojiCompat. Pomocí této knihovny můžete zabránit, aby aplikace zobrazovala chybějící znaky emoji jako "tofu".

  • Umístění Aktualizace Záměr čeká na vyřízení ukazuje použití rozhraní API pro umístění k získání aktualizací o umístění zařízení pomocí PendingIntent.

  • Location Aktualizace Foreground Service ukazuje, jak pomocí rozhraní LOCATION API získat aktualizace o umístění zařízení pomocí vázané a spuštěné služby v popředí.

Video

Vývoj pro Android 8.0 Oreo s C#

Shrnutí

Tento článek představil Android Oreo a vysvětlil, jak nainstalovat a nakonfigurovat nejnovější nástroje a balíčky pro vývoj pro Xamarin.Android v Androidu Oreo. Poskytuje přehled klíčových funkcí dostupných v Androidu Oreo s odkazy na ukázkový zdrojový kód pro několik nových funkcí. Obsahuje odkazy na dokumentaci k rozhraní API a témata pro vývojáře pro Android, která vám pomůžou začít vytvářet aplikace pro Android Oreo. Zvýraznila také nejdůležitější změny chování Android Oreo, které by mohly mít vliv na stávající aplikace.