Funkcje systemu Android Pie
Jak rozpocząć tworzenie aplikacji dla systemu Android 9 Pie przy użyciu platformy Xamarin.Android.
System Android 9 Pie jest teraz dostępny w witrynie Google. W tej wersji udostępniono wiele nowych funkcji i interfejsów API, a wiele z nich jest niezbędnych do korzystania z nowych funkcji sprzętowych na najnowszych urządzeniach z systemem Android.
Ten artykuł jest ustrukturyzowany, aby ułatwić rozpoczęcie tworzenia aplikacji platformy Xamarin.Android dla systemu Android Pie. Wyjaśniono w nim, jak zainstalować niezbędne aktualizacje, skonfigurować zestaw SDK i przygotować emulator lub urządzenie do testowania. Zawiera również zarys nowych funkcji w systemie Android Pie i zawiera przykładowy kod źródłowy ilustrujący sposób używania niektórych kluczowych funkcji systemu Android Pie.
Platforma Xamarin.Android 9.0 zapewnia obsługę systemu Android Pie. Aby uzyskać więcej informacji na temat obsługi platformy Xamarin.Android dla systemu Android Pie, zobacz informacje o wersji android P Developer Preview 3 .
Wymagania
Poniższa lista jest wymagana do korzystania z funkcji systemu Android Pie w aplikacjach opartych na platformie Xamarin:
Program Visual Studio — zalecany jest program Visual Studio 2019. Jeśli używasz programu Visual Studio 2017, w usłudze Windows Update do programu Visual Studio 2017 w wersji 15.8 lub nowszej. W systemie macOS zaktualizuj program Visual Studio 2017 dla komputerów Mac w wersji 7.6 lub nowszej.
Xamarin.Android — program Xamarin.Android 9.0.0.17 lub nowszy musi zostać zainstalowany w programie Visual Studio (oprogramowanie Xamarin.Android jest instalowane automatycznie w ramach tworzenia aplikacji mobilnych przy użyciu obciążenia platformy .NET ).
Java Developer Kit — programowanie na platformie Xamarin Android 9.0 wymaga zestawu JDK 8 (lub możesz wypróbować wersję zapoznawcza dystrybucji zestawu OpenJDK firmy Microsoft). Zestaw JDK8 jest instalowany automatycznie w ramach pakietu roboczego Programowanie aplikacji mobilnych za pomocą platformy .NET .
Zestaw Android SDK — interfejs API zestawu Android SDK 28 lub nowszy musi być zainstalowany za pośrednictwem menedżera zestawu Android SDK.
Wprowadzenie
Aby rozpocząć tworzenie aplikacji Android Pie za pomocą platformy Xamarin.Android, należy pobrać i zainstalować najnowsze narzędzia i pakiety zestawu SDK, zanim będzie można utworzyć pierwszy projekt android Pie:
Zalecany jest program Visual Studio 2019. Jeśli używasz programu Visual Studio 2017, zaktualizuj program Visual Studio 2017 w wersji 15.8 lub nowszej. Jeśli używasz Visual Studio dla komputerów Mac, zaktualizuj program Visual Studio 2017 dla komputerów Mac w wersji 7.6 lub nowszej.
Zainstaluj pakiety i narzędzia systemu Android Pie (API 28) za pośrednictwem menedżera zestawu SDK.
Utwórz nowy projekt platformy Xamarin.Android przeznaczony dla systemu Android 9.0.
Skonfiguruj emulator lub urządzenie do testowania aplikacji Android Pie.
Każdy z tych kroków wyjaśniono w następujących sekcjach:
Aktualizowanie programu Visual Studio
Program Visual Studio 2019 jest zalecany do tworzenia aplikacji systemu Android Pie przy użyciu platformy Xamarin.
Jeśli używasz programu Visual Studio 2017, zaktualizuj program Visual Studio 2017 w wersji 15.8 lub nowszej (aby uzyskać instrukcje, zobacz Aktualizowanie programu Visual Studio 2017 do najnowszej wersji). W systemie macOS zaktualizuj program Visual Studio 2017 dla komputerów Mac w wersji 7.6 lub nowszej (aby uzyskać instrukcje, zobacz Konfigurowanie i instalowanie Visual Studio dla komputerów Mac).
Instalowanie zestawu Android SDK
Aby utworzyć projekt przy użyciu platformy Xamarin.Android 9.0, należy najpierw użyć Menedżera zestawu SDK systemu Android do zainstalowania platformy SDK dla systemu Android Pie (poziom 28 interfejsu API) lub nowszego.
Uruchom Menedżera zestawu SDK. W programie Visual Studio kliknij pozycję Narzędzia >> Android SDK Manager. W Visual Studio dla komputerów Mac kliknij pozycję Narzędzia > Sdk Manager.
W prawym dolnym rogu kliknij ikonę koła zębatego i wybierz pozycję Repozytorium > Google (nieobsługiwane):
Zainstaluj pakiety zestawu ANDROID Pie SDK, które są wymienione jako Platforma zestawu Android SDK 28 na karcie Platformy (aby uzyskać więcej informacji na temat korzystania z Menedżera zestawu SDK dla systemu Android, zobacz Konfiguracja zestawu ANDROID SDK):
Jeśli używasz emulatora, utwórz urządzenie wirtualne obsługujące poziom 28 interfejsu API. Aby uzyskać więcej informacji na temat tworzenia urządzeń wirtualnych, zobacz Managing Virtual Devices with the Android Menedżer urządzeń (Zarządzanie urządzeniami wirtualnymi przy użyciu Menedżer urządzeń systemu Android).
Uruchamianie projektu platformy Xamarin.Android
Utwórz nowy projekt platformy Xamarin.Android. Jeśli dopiero zaczynasz programować aplikacje dla systemu Android za pomocą platformy Xamarin, zobacz Hello, Android , aby dowiedzieć się więcej o tworzeniu projektów platformy Xamarin.Android.
Podczas tworzenia projektu systemu Android należy skonfigurować ustawienia wersji, aby dotyczyć systemu Android 9.0 lub nowszego. Na przykład w celu kierowania projektu dla systemu Android Pie należy skonfigurować docelowy poziom interfejsu API systemu Android dla projektu na android 9.0 (interfejs API 28). Zaleca się również ustawienie poziomu platformy docelowej na interfejs API 28 lub nowszy. Aby uzyskać więcej informacji na temat konfigurowania poziomów interfejsu API systemu Android, zobacz Omówienie poziomów interfejsu API systemu Android.
Konfigurowanie urządzenia lub emulatora
Jeśli używasz urządzenia fizycznego, takiego jak Nexus lub Pixel, możesz zaktualizować urządzenie do urządzenia Android Pie, postępując zgodnie z instrukcjami w artykule Obrazy fabryczne dla urządzeń Nexus i Pixel.
Jeśli używasz emulatora, utwórz urządzenie wirtualne dla poziomu 28 interfejsu API i wybierz obraz oparty na architekturze x86. Aby uzyskać informacje o korzystaniu z Menedżer urządzeń systemu Android do tworzenia urządzeń wirtualnych i zarządzania nimi, zobacz Zarządzanie urządzeniami wirtualnymi przy użyciu Menedżer urządzeń systemu Android. Aby uzyskać informacje na temat używania emulatora systemu Android do testowania i debugowania, zobacz Debugowanie w emulatorze systemu Android.
Nowe funkcje
System Android Pie wprowadza różne nowe funkcje. Niektóre z tych nowych funkcji mają na celu wykorzystanie nowych funkcji sprzętowych oferowanych przez najnowsze urządzenia z systemem Android, podczas gdy inne zostały zaprojektowane w celu dalszego ulepszania środowiska użytkownika systemu Android:
Obsługa wycinania wyświetlania — udostępnia interfejsy API umożliwiające znalezienie lokalizacji i kształtu wycięcia w górnej części ekranu na nowszych urządzeniach z systemem Android.
Ulepszenia powiadomień — komunikaty powiadomień mogą teraz wyświetlać obrazy, a nowa
Person
klasa służy do upraszczania uczestników konwersacji.Pozycjonowanie wewnątrz — obsługa platformy dla protokołu Wi-Fi Round-Trip-Time, który umożliwia aplikacjom korzystanie z urządzeń Wi-Fi do nawigacji w ustawieniach wnętrz.
Obsługa wielu Aparat — oferuje możliwość uzyskiwania dostępu do strumieni jednocześnie z wielu kamer fizycznych (takich jak aparaty podwójne i podwójne tylne).
W poniższych sekcjach przedstawiono te funkcje i przedstawiono krótkie przykłady kodu ułatwiające rozpoczęcie korzystania z nich w aplikacji.
Wyświetlanie obsługi wycięć
Wiele nowszych urządzeń z systemem Android z ekranami brzegowymi ma wycięcie wyświetlacza (lub "wycięcie") w górnej części ekranu dla aparatu i głośnika. Poniższy zrzut ekranu przedstawia przykład wycięcia emulatora:
Aby zarządzać sposobem wyświetlania zawartości w oknie aplikacji na urządzeniach z wycięciem wyświetlania, system Android Pie dodał nowy atrybut układu okna LayoutInDisplayCutoutMode . Ten atrybut można ustawić na jedną z następujących wartości:
LayoutInDisplayCutoutModeNever — okno nigdy nie może nakładać się na obszar wycięcia.
LayoutInDisplayCutoutModeShortEdges — okno może rozciągać się na obszar wycięcia, ale tylko na krótkich krawędziach ekranu.
LayoutInDisplayCutoutModeDefault — okno może rozciągać się na obszar wycinania, jeśli wycięcie znajduje się na pasku systemowym.
Aby na przykład zapobiec nakładaniu się okna aplikacji na obszar wycinania, ustaw tryb wycinania układu na nigdy:
Window.Attributes.LayoutInDisplayCutoutMode =
Android.Views.LayoutInDisplayCutoutMode.Never;
W poniższych przykładach przedstawiono przykłady tych trybów wycinania. Pierwszy zrzut ekranu po lewej stronie to aplikacja w trybie niezwiązanym z pełnym ekranem. Na środkowym zrzucie ekranu aplikacja przechodzi w tryb pełnoekranowy z ustawioną wartością LayoutInDisplayCutoutMode
LayoutInDisplayCutoutModeShortEdges
. Zwróć uwagę, że białe tło aplikacji rozciąga się na obszar wycięcia wyświetlania:
Na ostatnim zrzucie ekranu (powyżej po prawej stronie) LayoutInDisplayCutoutMode
jest ustawiona wartość LayoutInDisplayCutoutModeShortNever
przed przejściem na pełny ekran.
Zwróć uwagę, że białe tło aplikacji nie może być rozszerzane na obszar wycięcia wyświetlania.
Jeśli potrzebujesz bardziej szczegółowych informacji na temat obszaru wycinania na urządzeniu, możesz użyć nowej klasy DisplayCutout . DisplayCutout
reprezentuje obszar wyświetlacza, którego nie można użyć do wyświetlania zawartości. Te informacje umożliwiają pobranie lokalizacji i kształtu wycięcia, aby aplikacja nie próbowała wyświetlić zawartości w tym obszarze niefunkcjonalnym.
Aby uzyskać więcej informacji na temat nowych funkcji wycinania w systemie Android P, zobacz Wyświetlanie obsługi wycięć.
Ulepszenia powiadomień
System Android Pie wprowadza następujące ulepszenia w celu ulepszenia obsługi komunikatów:
Kanały powiadomień (wprowadzone w systemie Android Oreo) obsługują teraz blokowanie grup kanałów.
System powiadomień ma trzy nowe kategorie Do-Not-Disturb (określanie priorytetów alarmów, dźwięków systemowych i źródeł multimedialnych). Ponadto istnieją siedem nowych trybów Do-Not-Disturb, które mogą służyć do pomijania przerw wizualnych (takich jak znaczki, światła powiadomień, wygląd paska stanu i uruchamianie działań pełnoekranowych).
Dodano nową klasę Person w celu reprezentowania nadawcy wiadomości. Użycie tej klasy pomaga zoptymalizować renderowanie każdego powiadomienia, identyfikując osoby zaangażowane w konwersację (w tym ich awatary i identyfikatory URI).
Powiadomienia mogą teraz wyświetlać obrazy.
W poniższym przykładzie pokazano, jak używać nowych interfejsów API do generowania powiadomienia zawierającego obraz. Na poniższych zrzutach ekranu jest publikowane powiadomienie tekstowe i następuje powiadomienie z osadzonym obrazem. Po rozwinięciu powiadomień (jak widać po prawej stronie), zostanie wyświetlony tekst pierwszego powiadomienia, a obraz osadzony w drugim powiadomieniu zostanie powiększony:
W poniższym przykładzie pokazano, jak dołączyć obraz do powiadomienia Android Pie i zademonstrować użycie nowej Person
klasy:
Person
Utwórz obiekt reprezentujący nadawcę. Na przykład nazwa i ikona nadawcy znajdują się w plikufromPerson
:Icon senderIcon = Icon.CreateWithResource(this, Resource.Drawable.sender_icon); Person fromPerson = new Person.Builder() .SetIcon(senderIcon) .SetName("Mark Sender") .Build();
Notification.MessagingStyle.Message
Utwórz obiekt zawierający obraz do wysłania, przekazując obraz do nowej metody Notification.MessagingStyle.Message.SetData. Na przykład: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);
Dodaj komunikat do
Notification.MessagingStyle
obiektu. Na przykład:Notification.MessagingStyle style = new Notification.MessagingStyle(fromPerson) .AddMessage(message);
Podłącz ten styl do konstruktora powiadomień. Na przykład:
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);
Opublikuj powiadomienie. Na przykład:
const int notificationId = 1000; notificationManager.Notify(notificationId, builder.Build());
Aby uzyskać więcej informacji na temat tworzenia powiadomień, zobacz Powiadomienia lokalne.
Pozycjonowanie wewnątrz
System Android Pie zapewnia obsługę standardu IEEE 802.11mc (znanego również jako WiFi Round-Trip-Time lub WiFi RTT), co umożliwia aplikacjom wykrywanie odległości do co najmniej jednego punktu dostępu Wi-Fi. Korzystając z tych informacji, aplikacja może korzystać z pozycjonowania wewnątrz z dokładnością od jednego do dwóch metrów. Na urządzeniach z systemem Android, które zapewniają obsługę sprzętu ieee 801.11mc, aplikacja może oferować funkcje nawigacji, takie jak kontrola oparta na lokalizacji urządzeń inteligentnych lub instrukcje turn-by-turn za pośrednictwem sklepu:
Nowa klasa WifiRttManager i kilka klas pomocnika zapewnia środki do pomiaru odległości do urządzeń Wi-Fi. Aby uzyskać więcej informacji na temat interfejsów API pozycjonowania wnętrz wprowadzonych w systemie Android P, zobacz Android.Net.Wifi.Rtt.
Obsługa wielu Aparat
Wiele nowszych urządzeń z systemem Android ma kamery z podwójnym frontem i/lub z podwójnym tyłem, które są przydatne w przypadku takich funkcji jak obraz stereo, ulepszone efekty wizualne i ulepszona funkcja powiększenia. System Android P wprowadza nowy interfejs API z wieloma Aparat, który umożliwia aplikacji korzystanie z aparatu logicznego (lub logicznego wieloameru) wspieranego przez co najmniej dwa aparaty fizyczne. Aby określić, czy urządzenie obsługuje logiczną kamerę z wieloma aparatami, możesz sprawdzić możliwości poszczególnych aparatów na urządzeniu, aby sprawdzić, czy obsługuje on funkcję RequestAvailableCapabilitiesLogicalMulti Aparat.
System Android Pie zawiera również nową klasę SessionConfiguration , która może służyć do zmniejszenia opóźnień podczas początkowego przechwytywania i wyeliminowania konieczności uruchamiania i uruchamiania strumienia aparatu.
Aby uzyskać więcej informacji na temat obsługi wielu Aparat w systemie Android P, zobacz Obsługa wielu aparatów i aktualizacje aparatu.
Inne funkcje
Ponadto system Android Pie obsługuje kilka innych nowych funkcji:
Nowa klasa AnimatedImageDrawable , która może służyć do rysowania i wyświetlania animowanych obrazów.
Nowa klasa ImageDecoder , która zastępuje
BitmapFactory
element .ImageDecoder
można użyć do dekodowania elementuAnimatedImageDrawable
.Obsługa obrazów wideo HDR (High Dynamic Range) i HEIF (Format pliku obrazu o wysokiej wydajności).
ZadanieScheduler zostało ulepszone w celu bardziej inteligentnego obsługi zadań związanych z siecią. Nowa metoda GetNetwork klasy JobParameters zwraca najlepszą sieć do wykonywania żądań sieciowych dla danego zadania.
Aby uzyskać więcej informacji na temat najnowszych funkcji systemu Android Pie, zobacz Funkcje i interfejsy API systemu Android 9.
Zmiany zachowania
Jeśli docelowa wersja systemu Android jest ustawiona na poziom 28 interfejsu API, istnieje kilka zmian platformy, które mogą mieć wpływ na zachowanie aplikacji, nawet jeśli nie implementujesz nowych funkcji opisanych powyżej. Poniższa lista zawiera krótkie podsumowanie tych zmian:
Aplikacje muszą teraz zażądać uprawnień pierwszego planu przed użyciem usług pierwszego planu.
Jeśli aplikacja ma więcej niż jeden proces, nie może udostępniać jednego katalogu danych WebView między procesami.
Bezpośredni dostęp do katalogu danych innej aplikacji według ścieżki nie jest już dozwolony.
Aby uzyskać więcej informacji na temat zmian zachowania aplikacji przeznaczonych dla systemu Android P, zobacz Zmiany zachowania.
Przykładowy kod
AndroidPMiniDemo to przykładowa aplikacja platformy Xamarin.Android dla systemu Android Pie, która pokazuje, jak ustawić tryby wyświetlania wycięć, jak używać nowej Person
klasy i jak wysyłać powiadomienie zawierające obraz.
Podsumowanie
W tym artykule przedstawiono system Android Pie i wyjaśniono, jak zainstalować i skonfigurować najnowsze narzędzia i pakiety do programowania na platformie Xamarin.Android za pomocą systemu Android Pie. Zawiera on omówienie kluczowych funkcji dostępnych w systemie Android Pie, na przykład kodu źródłowego dla kilku z tych funkcji. Zawiera on linki do dokumentacji interfejsu API i tematów dla deweloperów systemu Android, które ułatwiają rozpoczęcie tworzenia aplikacji dla systemu Android Pie. Wyróżniono również najważniejsze zmiany zachowania systemu Android Pie, które mogą mieć wpływ na istniejące aplikacje.