Funkce Android Pie

Jak začít s vývojem aplikací pro Android 9 Pie pomocí Xamarin.Android

Android 9 Pie je teď k dispozici od Googlu. V této verzi je k dispozici řada nových funkcí a rozhraní API a řada z nich je nezbytná k tomu, aby bylo možné využívat nové možnosti hardwaru v nejnovějších zařízeních s Androidem.

Obrázek hrdiny Android Pie

Tento článek je strukturovaný tak, aby vám pomohl začít s vývojem aplikací pro Xamarin.Android pro Android Pie. Vysvětluje, jak nainstalovat potřebné aktualizace, nakonfigurovat sadu SDK a připravit emulátor nebo zařízení pro testování. Poskytuje také přehled nových funkcí v Android Pie a příklad zdrojového kódu, který ukazuje, jak používat některé z klíčových funkcí Android Pie.

Xamarin.Android 9.0 poskytuje podporu pro Android Pie. Další informace o podpoře Xamarin.Android pro Android Pie najdete ve zprávě k vydání verze Android P Developer Preview 3.

Požadavky

Pro použití funkcí Android Pie v aplikacích založených na Xamarinu se vyžaduje následující seznam:

  • Visual Studio – Visual Studio 2019. Pokud používáte verzi Visual Studio 2017, Windows verzi Visual Studio 2017 verze 15.8 nebo novější. V systému macOS aktualizujte na Visual Studio 2017 pro Mac verze 7.6 nebo novější.

  • Xamarin.Android – Xamarin.Android 9.0.0.17 nebo novější musí být nainstalovaný s Visual Studio (Xamarin.Android se automaticky instaluje jako součást úlohy Vývoj mobilních aplikací pomocí .NET).

  • Sada Java Developer Kit – vývoj pro Xamarin Android 9.0 vyžaduje sadu JDK 8 (nebo můžete vyzkoušet verzi Preview distribuce OpenJDK od Microsoftu). JDK8 se automaticky instaluje jako součást úlohy Vývoj mobilních aplikací pomocí .NET.

  • Android SDK – Android SDK rozhraní API 28 nebo novější musí být nainstalované přes Správce sady Android SDK.

Začínáme

Pokud chcete začít s vývojem aplikací pro Android Pie pomocí Xamarin.Android, musíte si před vytvořením prvního projektu Android Pie stáhnout a nainstalovat nejnovější nástroje a balíčky SDK:

  1. Visual Studio 2019. Pokud používáte verzi Visual Studio 2017, aktualizujte na Visual Studio 2017 verze 15.8 nebo novější. Pokud používáte verzi Visual Studio pro Mac, aktualizujte na Visual Studio 2017 pro Mac verze 7.6 nebo novější.

  2. Nainstalujte balíčky a nástroje Android Pie (API 28) prostřednictvím Správce sady SDK.

  3. Vytvořte nový projekt Xamarin.Android, který cílí na Android 9.0.

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

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

Aktualizace sady Visual Studio

Visual Studio 2019 se doporučuje pro vytváření aplikací pro Android Pie pomocí Xamarinu.

Pokud používáte Visual Studio 2017, aktualizujte na Visual Studio 2017 verze 15.8 nebo novější (pokyny najdete v tématu Aktualizace Visual Studio 2017 nanejnovější verzi ). V systému macOS aktualizujte na Visual Studio 2017 pro Mac 7.6 nebo novější (pokyny najdete v tématu Nastavení a instalace Visual Studio pro Mac).

Instalace Android SDK

Pokud chcete vytvořit projekt pomocí Xamarin.Android 9.0, musíte nejprve použít Správce sady Android SDK k instalaci platformy SDK pro Android Pie (úroveň rozhraní API 28) nebo novější.

  1. Spusťte Správce sady SDK. V Visual Studio klikněte na Nástroje Android > Správce sady Android SDK. V Visual Studio pro Mac klikněte na Nástroje Správce sady SDK.

  2. V pravém dolním rohu klikněte na ikonu ozubeného kola a vyberte Úložiště Google (nepodporované):

    Nastavení úložiště na Google

  3. Nainstalujte balíčky sady Android Pie SDK, které jsou uvedené jako Android SDK Platform 28 na kartě Platformy (další informace o používání sady Správce sady SDK najdete v Android SDK nastavení):

    Instalace balíčků Android Pie

  4. Pokud používáte emulátor, vytvořte virtuální zařízení, které podporuje rozhraní API úrovně 28. Další informace o vytváření virtuálních zařízení najdete v tématu Správa virtuálních zařízení pomocí Správce zařízení s Androidem.

Spuštění projektu Xamarin.Android

Vytvořte nový projekt Xamarin.Android. Pokud s vývojem pro Android s Xamarinem je nového, přečtěte si o vytváření projektů Xamarin.Android v tématu Hello, Android.

Při vytváření projektu pro Android musíte nakonfigurovat nastavení verze tak, aby cílil na Android 9.0 nebo novější. Pokud chcete například cílit na projekt pro Android Pie, musíte nakonfigurovat cílovou úroveň rozhraní Android API vašeho projektu na Android 9.0 (API 28). Doporučujeme také nastavit úroveň cílové architektury na API 28 nebo novější. Další informace o konfiguraci úrovní rozhraní Android API najdete v tématu Principy úrovní rozhraní Android API.

Konfigurace zařízení nebo emulátoru

Pokud používáte fyzické zařízení, jako je Nexus nebo Pixel, můžete ho aktualizovat na Android Pie podle pokynů v tématu Obrázky továrny pro zařízení Nexus a Pixel.

Pokud používáte emulátor, vytvořte virtuální zařízení pro úroveň rozhraní API 28 a vyberte image založenou na x86. Informace o použití nástroje Správce zařízení s Androidem k vytváření a správě virtuálních zařízení najdete v tématu Správa virtuálníchzařízení pomocí Správce zařízení s Androidem . Informace o použití emulátoru Androidu pro testování a ladění najdete v tématu Ladění na androidu Emulator.

Nové funkce

Android Pie představuje celou řadu nových funkcí. Některé z těchto nových funkcí jsou určené k využití nových hardwarových funkcí nabízených nejnovějšími zařízeními s Androidem, zatímco jiné jsou navržené tak, aby dále vylepšují uživatelské prostředí Androidu:

  • Podpora zobrazení výřezu – poskytuje rozhraní API pro vyhledání umístění a tvaru výřezu v horní části obrazovky na novějších zařízeních s Androidem.

  • Vylepšení oznámení – Zprávy s oznámením teď mohou zobrazovat obrázky a nová třída slouží ke zjednodušení účastníků konverzace.

  • Interiérové umístění – podpora platformy pro protokol Round-Trip-Time wi-trip, který aplikacím umožňuje používat zařízení Wi-Fi pro navigaci v vnitřních nastaveních.

  • Podpora více fotoaparátů – nabízí možnost souběžně přistupovat k datovým proudům z několika fyzických fotoaparátů (jako jsou fotoaparáty se dvěma předními a duálními zadními kamerami).

Následující části tyto funkce zvýrazňují a poskytují stručné příklady kódu, které vám pomůžou začít je používat ve vaší aplikaci.

Podpora výřezu zobrazení

Mnoho novějších zařízení s Androidem s obrazovkami od okraje k okraji má v horní části obrazovky pro fotoaparát a mluvčí výřez zobrazení (nebo "zářez"). Následující snímek obrazovky obsahuje příklad emulátoru s výřezem:

Emulátor Androidu simulující výřez

Pokud chcete spravovat, jak se v okně aplikace zobrazuje obsah na zařízeních s výsečem zobrazení, Android Pie přidal nový atribut rozložení okna LayoutInDisplayCutoutMode. Tento atribut lze nastavit na jednu z následujících hodnot:

Pokud například chcete zabránit překrývání okna aplikace s oblastí vypnutí, nastavte režim vykrytí rozložení na nikdy:

Window.Attributes.LayoutInDisplayCutoutMode =
    Android.Views.LayoutInDisplayCutoutMode.Never;

Následující příklady obsahují příklady těchto režimů vyjmutí. První snímek obrazovky vlevo je aplikace v režimu bez zobrazení na celé obrazovce. Na snímku obrazovky uprostřed aplikace přejde na celou obrazovku s LayoutInDisplayCutoutMode nastavenou možností LayoutInDisplayCutoutModeShortEdges . Všimněte si, že bílé pozadí aplikace je zasahované do oblasti výřezu zobrazení:

Příklad režimů zobrazení v emulátoru

Na posledním snímku obrazovky (výše na pravé straně) je nastavená na hodnotu LayoutInDisplayCutoutMode , než přejde na zobrazení na celé LayoutInDisplayCutoutModeShortNever obrazovce. Všimněte si, že bílé pozadí aplikace se nesmí rozšířit do oblasti výřezu zobrazení.

Pokud potřebujete podrobnější informace o oblasti výřezu na zařízení, můžete použít novou třídu DisplayCutout. DisplayCutout představuje oblast zobrazení, kterou nelze použít k zobrazení obsahu. Tyto informace můžete použít k načtení umístění a tvaru výřezu, aby se vaše aplikace nepokoušela zobrazit obsah v této ne funkční oblasti.

Další informace o nových funkcích výřezu v Androidu P najdete v tématu Podpora výřezu zobrazení.

Vylepšení oznámení

Android Pie přináší následující vylepšení, která zlepšují zasílání zpráv:

  • Kanály oznámení (zavedené v Androidu Oreo)teď podporují blokování skupin kanálů.

  • Systém oznámení má tři nové kategorie Nenarušovat (určení priority alarmů, systémových zvuků a zdrojů médií). Kromě toho je k dispozici sedm nových režimů Nenarušovat, které je možné použít k potlačení přerušení vizuálů (jako jsou odznáčky, indikátory oznámení, vzhled stavového řádku a spouštění aktivit na celé obrazovce).

  • Byla přidána nová třída Person (Osoba), která představuje odesílatele zprávy. Použití této třídy pomáhá optimalizovat vykreslování jednotlivých oznámení identifikací lidí zapojených do konverzace (včetně jejich avatarů a identifikátorů URI).

  • Oznámení teď mohou zobrazovat obrázky.

Následující příklad ukazuje, jak pomocí nových rozhraní API vygenerovat oznámení obsahující obrázek. Na následujících snímcích obrazovky se zobrazí textové oznámení následované oznámením s vloženým obrázkem. Když jsou oznámení rozbalená (jak je vidět na pravé straně), zobrazí se text prvního oznámení a obrázek vložený do druhého oznámení se zvětší:

Příklad oznámení s obrázkem

Následující příklad ukazuje, jak do oznámení Android Pie zahrnout obrázek, a ukazuje použití nové Person třídy:

  1. Vytvořte Person objekt, který představuje odesílatele. Například jméno a ikona odesílatele jsou součástí fromPerson :

    Icon senderIcon = Icon.CreateWithResource(this, Resource.Drawable.sender_icon);
    Person fromPerson = new Person.Builder()
        .SetIcon(senderIcon)
        .SetName("Mark Sender")
        .Build();
    
  2. Vytvořte objekt Notification.MessagingStyle.Message , který obsahuje obrázek k odeslání, a předejte ho nové metodě Notification.MessagingStyle.Message Například:

    Uri imageUri = Uri.Parse("android.resource://com.xamarin.pminidemo/drawable/example_image");
    Notification.MessagingStyle.Message message = new Notification.MessagingStyle
            .Message("Here's a picture of where I'm currently standing", 0, fromPerson)
            .SetData("image/", imageUri);
    
  3. Přidejte zprávu do Notification.MessagingStyle objektu . Například:

    Notification.MessagingStyle style = new Notification.MessagingStyle(fromPerson)
            .AddMessage(message);
    
  4. Tento styl zapojte do tvůrce oznámení. Například:

    builder = new Notification.Builder(this, MY_CHANNEL)
        .SetContentTitle("Tour of the Colosseum")
        .SetContentText("I'm standing right here!")
        .SetSmallIcon(Resource.Mipmap.ic_notification)
        .SetStyle(style)
        .SetChannelId(MY_CHANNEL);
    
  5. Publikujte oznámení. Například:

    const int notificationId = 1000;
    notificationManager.Notify(notificationId, builder.Build());
    

Další informace o vytváření oznámení najdete v tématu Místní oznámení.

Interiérové umístění

Android Pie poskytuje podporu pro IEEE 802.11mc (označuje se také jako WiFi Round-Trip-Time nebo WiFi RTT),což aplikacím umožňuje zjistit vzdálenost k jednomu nebo více Wi-Fi přístupových bodů. Pomocí těchto informací může vaše aplikace využít výhod vnitřní polohy s přesností 1 až 2 metry. Na zařízeních s Androidem, která poskytují hardwarovou podporu pro IEEE 801.11mc, může vaše aplikace nabízet navigační funkce, jako je řízení inteligentních zařízení na základě polohy nebo pokyny pro zapnutí v obchodě:

Příklad interiérové navigace s využitím WiFi RTT

Nová třída WifiRttManager a několik pomocových tříd poskytují prostředky pro měření vzdálenosti Wi-Fi zařízení. Další informace o vnitřních polohových rozhraních API představených v Androidu P najdete v tématu Android.Net.Wifi.Rtt.

Podpora více fotoaparátů

Mnoho novějších zařízení s Androidem má dva přední a/nebo dvoudvoje zadní fotoaparáty, které jsou užitečné pro funkce, jako je stereo zpracování obrazu, vylepšené vizuální efekty a vylepšená funkce zvětšení. Android P zavádí nové rozhraní API pro více fotoaparátů, které vaší aplikaci umožňuje používat logickou kameru (nebo logickou vícekanály), která je zálohovaná dvěma nebo více fyzickými fotoaparáty. Pokud chcete zjistit, jestli zařízení podporuje logický více fotoaparátů, můžete se podívat na možnosti jednotlivých fotoaparátů v zařízení a zjistit, jestli podporuje RequestAvailableCapabilitiesLogicalMultiCamera.

Android Pie obsahuje také novou třídu SessionConfiguration, kterou je možné použít ke snížení zpoždění během počátečního zachycení a eliminaci potřeby spustit a spustit stream fotoaparátu.

Další informace o podpoře více fotoaparátů v Androidu P najdete v tématu Podpora více fotoaparátů a aktualizace fotoaparátů.

Další funkce

Android Pie navíc podporuje několik dalších nových funkcí:

  • Nová třída AnimatedImageDrawable, kterou je možné použít k kreslení a zobrazování animovaných obrázků.

  • Nová třída ImageDecoder, která nahrazuje . ImageDecoder lze použít k dekódování AnimatedImageDrawable .

  • Podpora pro videosoubory VYSOKÝ DYNAMICKÝ ROZSAH a obrázky HEIF (High Efficiency Image File Format).

  • JobScheduler je vylepšený tak, aby inteligentnější zpracování síťových úloh. Nová metoda GetNetwork třídy JobParameters vrací nejlepší síť pro provádění síťových požadavků pro danou úlohu.

Další informace o nejnovějších funkcích Android Pie najdete v tématu Funkce a rozhraní API Androidu 9.

Změny chování

Pokud je cílová verze Androidu nastavená na úroveň 28 rozhraní API, existuje několik změn platformy, které mohou ovlivnit chování vaší aplikace, i když ne implementací nových funkcí popsaných výše. Následující seznam obsahuje stručný souhrn těchto změn:

  • Aplikace teď musí před použitím služeb na popředí požádat o oprávnění na popředí.

  • Pokud má vaše aplikace více než jeden proces, nemůže sdílet jeden adresář dat WebView mezi procesy.

  • Přímý přístup k adresáři dat jiné aplikace podle cesty už není povolený.

Další informace o změnách chování aplikací, které cílí na Android P, najdete v tématu o změnách chování.

Ukázka kódu

AndroidPMiniDemo je ukázková aplikace Xamarin.Android pro Android Pie, která ukazuje, jak nastavit režimy výřezu zobrazení, jak používat novou třídu a jak odeslat oznámení obsahující obrázek.

Souhrn

Tento článek představil Android Pie a vysvětlil, jak nainstalovat a nakonfigurovat nejnovější nástroje a balíčky pro vývoj pro Xamarin.Android pomocí Android Pie. Poskytuje přehled klíčových funkcí dostupných v Android Pie s příkladem zdrojového kódu pro několik z těchto 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 Pie. Zvýrazňoval také nejdůležitější změny chování androidového výsečového grafu, které by mohly mít vliv na stávající aplikace.