Funkce Android Pie
Jak začít s vývojem aplikací pro Android 9 Pie pomocí Xamarin.Android.
Android 9 Pie je nyní k dispozici od Googlu. V této verzi je k dispozici celá řada nových funkcí a rozhraní API a mnohé z nich jsou nezbytné k tomu, aby využívaly nové hardwarové funkce v nejnovějších zařízeních s Androidem.
Tento článek je strukturovaný tak, aby vám pomohl začít s vývojem aplikací Xamarin.Android pro Android Pie. Vysvětluje, jak nainstalovat potřebné aktualizace, nakonfigurovat sadu SDK a připravit emulátor nebo zařízení na testování. Poskytuje také přehled nových funkcí ve službě Android Pie a poskytuje ukázkový zdrojový kód, který ukazuje, jak používat některé klíčové funkce Android Pie.
Xamarin.Android 9.0 poskytuje podporu pro Android Pie. Další informace o podpoře Xamarin.Android pro Android Pie najdete v poznámkách k verzi Android P Developer Preview 3 .
Požadavky
K používání funkcí Android Pie v aplikacích založených na Xamarinu se vyžaduje následující seznam:
Doporučuje se Visual Studio – Visual Studio 2019. Pokud používáte Visual Studio 2017, aktualizujte ve Windows na Visual Studio 2017 verze 15.8 nebo novější. V 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ší se musí nainstalovat se sadou Visual Studio (Xamarin.Android se automaticky nainstaluje jako součást vývoje mobilních aplikací s úlohou .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 sady OpenJDK od Microsoftu). Sada JDK8 se automaticky nainstaluje jako součást vývoje mobilních aplikací s úlohou .NET .
Sada Android SDK – Rozhraní API sady Android SDK 28 nebo novější musí být nainstalováno přes Správce sady Android SDK.
Začínáme
Pokud chcete začít s vývojem aplikací pro Android Pie pomocí Xamarin.Androidu, musíte si stáhnout a nainstalovat nejnovější nástroje a balíčky SDK, abyste mohli vytvořit svůj první projekt Android Pie:
Doporučuje se Visual Studio 2019. Pokud používáte Visual Studio 2017, aktualizujte na Visual Studio 2017 verze 15.8 nebo novější. Pokud používáte Visual Studio pro Mac, aktualizujte na Visual Studio 2017 pro Mac verze 7.6 nebo novější.
Nainstalujte balíčky a nástroje Android Pie (API 28) prostřednictvím Správce sady SDK.
Vytvořte nový projekt Xamarin.Android, který cílí na Android 9.0.
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 sady Visual Studio 2017 na nejnovější verzi). V systému macOS aktualizujte na Visual Studio 2017 pro Mac 7.6 nebo novější (pokyny najdete v tématu Instalace a instalace Visual Studio pro Mac).
Instalace sady Android SDK
Pokud chcete vytvořit projekt s 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ší.
Spusťte Správce sady SDK. V sadě Visual Studio klikněte na Nástroje > > Android SDK Manager. V Visual Studio pro Mac klepněte na tlačítko Nástroje > SDK Manager.
V pravém dolním rohu klikněte na ikonu ozubeného kola a vyberte Úložiště > Google (nepodporováno):<
Nainstalujte balíčky Sady Android Pie SDK, které jsou uvedené jako Android SDK Platform 28 na kartě Platformy (další informace o použití Správce sady SDK najdete v tématu Instalace sady Android SDK):
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í Androidu.
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 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 projektu na Android 9.0 (ROZHRANÍ API 28). Doporučujeme také nastavit úroveň cílové architektury na rozhraní 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 zařízení aktualizovat na Android Pie podle pokynů v imagích továrny pro zařízení Nexus a Pixel.
Pokud používáte emulátor, vytvořte virtuální zařízení pro rozhraní API úrovně 28 a vyberte image založenou na platformě x86. Informace o používání Správce zařízení Androidu k vytváření a správě virtuálních zařízení najdete v tématu Správa virtuálních zařízení pomocí Správce zařízení Androidu. Informace o použití emulátoru Androidu k testování a ladění naleznete v tématu Ladění v emulátoru Androidu.
Nové funkce
Android Pie představuje řadu nových funkcí. Některé z těchto nových funkcí jsou určeny 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šily uživatelské prostředí Androidu:
Podpora výřezu zobrazení – Poskytuje rozhraní API k 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 oznámení teď můžou zobrazovat obrázky a nová
Person
třída se používá ke zjednodušení účastníků konverzace.Vnitřní umístění – podpora platformy pro protokol Round-Trip-Time WiFi, který umožňuje aplikacím používat zařízení WiFi pro navigaci v interiérovém nastavení.
Podpora více Kamera – nabízí možnost přístupu ke streamům současně z více fyzických fotoaparátů (jako jsou duální přední a duální zadní kamery).
Následující části zvýrazňují tyto funkce a poskytují stručné příklady kódu, které vám pomůžou začít je používat ve vaší aplikaci.
Podpora výřezů zobrazení
Řada novějších zařízení s Androidem s obrazovkami edge-to-edge má v horní části displeje výřez zobrazení (nebo "závorku") pro fotoaparát a reproduktor. Následující snímek obrazovky obsahuje příklad výřezu emulátoru:
Pokud chcete spravovat, jak okno aplikace zobrazuje jeho obsah na zařízeních s výřezem zobrazení, přidal Android Pie nový atribut rozložení okna LayoutInDisplayCutoutMode . Tento atribut lze nastavit na jednu z následujících hodnot:
LayoutInDisplayCutoutModeNever – okno se nikdy nesmí překrývat s výřezovou oblastí.
LayoutInDisplayCutoutModeShortEdges – okno se může rozšířit do oblasti výřezu, ale pouze na krátkých okrajích obrazovky.
LayoutInDisplayCutoutModeDefault – Okno může rozšířit do oblasti výřezu, pokud je výřez obsažen v systémovém pruhu.
Pokud chcete například zabránit překrývání okna aplikace s oblastí výřezu, nastavte režim výřezu rozložení tak, aby nikdy:
Window.Attributes.LayoutInDisplayCutoutMode =
Android.Views.LayoutInDisplayCutoutMode.Never;
Následující příklady obsahují příklady těchto režimů výřezů. První snímek obrazovky vlevo je aplikace v režimu bez zobrazení na celé obrazovce. Na prostředním snímku obrazovky aplikace přejde na celou obrazovku s nastavenou LayoutInDisplayCutoutMode
možností LayoutInDisplayCutoutModeShortEdges
. Všimněte si, že bílé pozadí aplikace se rozšiřuje do oblasti výřezu zobrazení:
Na posledním snímku obrazovky (nahoře vpravo) LayoutInDisplayCutoutMode
je nastavený na LayoutInDisplayCutoutModeShortNever
před přechodem na celou obrazovku.
Všimněte si, že bílé pozadí aplikace nemůže rozšířit do oblasti výřezu zobrazení.
Pokud potřebujete podrobnější informace o oblasti výřezu v 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šla zobrazit obsah v této nefunkční oblasti.
Další informace o nových funkcích výřezů v AndroidU P najdete v tématu Podpora výřezů zobrazení.
Vylepšení oznámení
Android Pie přináší následující vylepšení pro zlepšení prostředí pro 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 Do-Not-Nerušit (stanovení priorit alarmů, systémových zvuků a zdrojů médií). Kromě toho existuje sedm nových režimů Do-Not-Nerušit, které lze použít k potlačení vizuálního přerušení (například odznáčky, oznamovací světla, vzhled stavového řádku a spuštění aktivit na celé obrazovce).
Byla přidána nová třída person představující 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ď můžou zobrazovat obrázky.
Následující příklad ukazuje, jak pomocí nových rozhraní API vygenerovat oznámení, které obsahuje obrázek. Na následujících snímcích obrazovky se publikuje textové oznámení a následuje oznámení s vloženým obrázkem. Když se oznámení rozbalí (jak vidíte na pravé straně), zobrazí se text prvního oznámení a obrázek vložený do druhého oznámení se zvětší:
Následující příklad ukazuje, jak zahrnout obrázek do oznámení Android Pie a ukazuje použití nové Person
třídy:
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();
Vytvořte
Notification.MessagingStyle.Message
, která obsahuje obrázek, který chcete odeslat, a předejte ho nové metodě Notification.MessagingStyle.Message.SetData . Pří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);
Přidejte zprávu do objektu
Notification.MessagingStyle
. Příklad:Notification.MessagingStyle style = new Notification.MessagingStyle(fromPerson) .AddMessage(message);
Tento styl zapojte do tvůrce oznámení. Pří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);
Publikujte oznámení. Příklad:
const int notificationId = 1000; notificationManager.Notify(notificationId, builder.Build());
Další informace o vytváření oznámení naleznete v tématu Místní oznámení.
Vnitřní umístění
Android Pie poskytuje podporu pro IEEE 802.11mc (označované také jako WiFi Round-Trip-Time nebo WiFi RTT), což umožňuje aplikacím zjistit vzdálenost k jednomu nebo více přístupovým bodům Wi-Fi. Pomocí těchto informací je možné, aby vaše aplikace využila výhod vnitřního umístění s přesností 1 až dva metry. Na zařízeních s Androidem, která poskytují podporu hardwaru 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 otáčení v obchodě:
Nová třída WifiRttManager a několik pomocných tříd poskytuje prostředky pro měření vzdálenosti od zařízení Wi-Fi. Další informace o vnitřních polohovacích rozhraních API zavedených v AndroidU P najdete v tématu Android.Net.Wifi.Rtt.
Podpora více Kamera
Řada novějších zařízení s Androidem má fotoaparáty se dvěma předními a/nebo duálními zadními fotoaparáty, které jsou užitečné pro funkce jako stereo vision, vylepšené vizuální efekty a vylepšené možnosti lupy. Android P zavádí nové rozhraní API s více Kamera, které umožňuje vaší aplikaci používat logickou kameru (nebo logickou multikameru), která je podporována dvěma nebo více fyzickými fotoaparáty. Pokud chcete zjistit, jestli zařízení podporuje logickou multikameru, můžete se podívat na možnosti jednotlivých fotoaparátů v zařízení a zjistit, jestli podporuje RequestAvailableCapabilitiesLogicalMulti Kamera.
Android Pie obsahuje také novou třídu SessionConfiguration , která umožňuje snížit zpoždění během počátečního zachycení a eliminovat nutnost spuštění a spuštění streamu fotoaparátu.
Další informace o podpoře multi-Kamera v AndroidU P najdete v tématu Podpora multikamery a aktualizace fotoaparátů.
Další funkce
Kromě toho Android Pie podporuje několik dalších nových funkcí:
Nová Třída AnimatedImageDrawable , která lze použít pro kreslení a zobrazování animovaných obrázků.
Nová třída ImageDecoder , která nahrazuje
BitmapFactory
.ImageDecoder
lze použít k dekódování .AnimatedImageDrawable
Podpora obrázků HDR (High Dynamic Range) a HEIF (High Efficiency Image File Format)
JobScheduler byl vylepšen tak, aby inteligentněji zpracovával úlohy související se sítí. 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 pro Android 9.
Změny chování
Pokud je cílová verze Androidu nastavená na úroveň rozhraní API 28, existuje několik změn platformy, které můžou ovlivnit chování vaší aplikace, i když neimplujete nové funkce popsané 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 procesů, nemůže sdílet jeden datový adresář WebView napříč procesy.
Přímý přístup k datovému adresáři jiné aplikace pomocí cesty už není povolený.
Další informace o změnách chování u aplikací, které cílí na Android P, najdete v tématu Změny chování.
Ukázkový kód
AndroidPMiniDemo je ukázková aplikace Xamarin.Android pro Android Pie, která ukazuje, jak nastavit režimy zobrazení výřezů, jak používat novou Person
třídu a jak odeslat oznámení, které obsahuje obrázek.
Shrnutí
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 ve službě Android Pie s ukázkovým zdrojovým kódem 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ýraznila také nejdůležitější změny chování Android Pie, které by mohly mít vliv na stávající aplikace.