Android 10 dla deweloperów

Android 10 opiera się na 3 ważnych kwestiach. Po pierwsze, Android 10 kształtuje wiodące innowacyjność w zakresie urządzeń mobilnych dzięki zaawansowanym systemom uczącym się i obsłudze nowych urządzeń, takich jak urządzenia składane i telefony z obsługą 5G. Następnie Android 10 koncentruje się na prywatności i bezpieczeństwie i obejmuje prawie 50 funkcji, które zapewniają użytkownikom większą ochronę, przejrzystość i kontrolę. I na koniec, Android 10 rozszerza możliwości Cyfrowej równowagi, aby użytkownicy i rodziny mogli odnaleźć równowagę między technologią.

Oto funkcje Androida 10 dla deweloperów i sposoby jego wykorzystania.

Innowacyjność i nowe doświadczenia

Android 10 pozwala korzystać z najnowszych innowacji w zakresie sprzętu i oprogramowania, aby zapewnić użytkownikom niesamowite wrażenia.

W Androidzie 10 możesz zoptymalizować aplikacje pod kątem urządzeń składanych i innych urządzeń z dużym ekranem.

Urządzenia składane

Dzięki solidnej obsłudze trybu wielu okien Android 10 rozszerza możliwości wielozadaniowości w oknach aplikacji i zapewnia ciągłość ekranu, aby utrzymać stan aplikacji podczas składania i rozkładania urządzenia. Android 10 ma kilka ulepszeń w funkcjach onWznów i onPause, które umożliwiają wielokrotne wznawianie i powiadamianie aplikacji, gdy zostaną zaznaczone. Zmienia też sposób działania atrybutu manifestu resizeableActivity, ułatwiając zarządzanie sposobem wyświetlania aplikacji na ekranach składanych i dużych. Aby łatwiej tworzyć reklamy na urządzenia składane, możesz skonfigurować w Android Studio składany emulator jako urządzenie wirtualne (AVD). Szczegółowe informacje o optymalizowaniu aplikacji pod kątem urządzeń składanych znajdziesz w przewodniku dla programistów.

Sieci 5G

5G ma zapewnić stałą prędkość i mniejsze opóźnienia. Android 10 dodaje obsługę platformy 5G i rozszerza dotychczasowe interfejsy API, aby ułatwić Ci wykorzystanie tych ulepszeń. Przy użyciu interfejsów API połączeń możesz wykrywać, czy urządzenie ma połączenie o dużej przepustowości, i sprawdzać, czy połączenie jest objęte pomiarem. Dzięki nim Twoje aplikacje i gry mogą zapewniać użytkownikom sieci 5G niesamowite wrażenia.

Inteligentna odpowiedź w powiadomieniach

Android 10 używa systemów uczących się na urządzeniu do sugerowania działań kontekstowych w powiadomieniach, takich jak inteligentne odpowiedzi na wiadomości czy otwarcie mapy dla adresu podanego w powiadomieniu. Twoje aplikacje mogą od razu zacząć korzystać z tej funkcji i nie musisz nic robić. Inteligentne odpowiedzi i działania dostarczane przez system są domyślnie wstawiane bezpośrednio do powiadomień. Nadal możesz dodawać własne odpowiedzi i działania. Wystarczy, że zrezygnujesz z Inteligentnej odpowiedzi przy poszczególnych powiadomieniach, używając funkcji setAllowGeneratedReplies() i setAllowSystemGeneratedContextualActions().

Inteligentna odpowiedź może sugerować działania na podstawie treści powiadomień.

Ciemny motyw

Android 10 ma ogólnosystemowy ciemny motyw, który idealnie sprawdza się przy słabym oświetleniu i pomaga oszczędzać baterię. Użytkownicy mogą włączyć nowy, ogólnosystemowy ciemny motyw, otwierając Ustawienia lub włączając Oszczędzanie baterii. Interfejs systemu zmieni się na ciemny i włączymy ciemny motyw aplikacji, które go obsługują. Możesz stworzyć własny, ciemny motyw aplikacji lub wybrać nową funkcję Force Dark, która umożliwia systemowi dynamiczne tworzenie ciemnej wersji motywu na podstawie istniejącego motywu. Możesz też skorzystać z dostępnej w AppCompat funkcji DayNight, aby udostępnić ciemny motyw użytkownikom wcześniejszych wersji Androida. Więcej informacji znajdziesz w przewodniku dla programistów.

Android 10 może dynamicznie utworzyć ciemny motyw aplikacji za pomocą funkcji Force Dark.

Nawigacja przy użyciu gestów

Nawigacja przy użyciu gestów wyświetla treści w aplikacjach na pełnym ekranie.

W Androidzie 10 dostępny jest tryb nawigacji oparty na całkowicie za pomocą gestów, który eliminuje obszar paska nawigacyjnego i umożliwia aplikacjom korzystanie z trybu pełnoekranowego, aby zapewnić bogatsze i bardziej atrakcyjne wrażenia. Zachowamy znany Ci sposób poruszania się po ekranie głównym, Wstecz i Ostatnie, zamiast widocznych przycisków. Aby płynnie łączyć się z nawigacją przy użyciu gestów, warto podążać od krawędzi do krawędzi, rysując za paskiem nawigacyjnym, co daje atrakcyjne wrażenia podczas oglądania. W tym celu aplikacje powinny użyć interfejsu API setSystemUiWidoczność() w trybie pełnoekranowym, a potem używać obsługi WindowInsets, aby mieć pewność, że ważne elementy interfejsu nie są zasłonięte. Zacznij optymalizować swoją aplikację już dziś i zapoznaj się z serią postów na blogu, aby uzyskać więcej informacji.

Panele ustawień

Możesz teraz wyświetlać najważniejsze ustawienia systemu bezpośrednio w kontekście aplikacji za pomocą nowego interfejsu API panelu ustawień. Panel ustawień to pływający interfejs, który możesz wywoływać, aby wyświetlić ustawienia niezbędne dla użytkowników, takie jak połączenie z internetem, NFC czy głośność dźwięku. Przeglądarka może na przykład wyświetlić panel z ustawieniami łączności, takimi jak Tryb samolotowy, Wi-Fi (w tym sieci w pobliżu) i Mobilna transmisja danych. Aby wyświetlić panel ustawień, uruchom intencję za pomocą jednego z nowych działań Settings.Panel.

Skróty udostępniania

Skróty udostępniania pozwalają szybciej i łatwiej udostępniać treści, umożliwiając użytkownikom bezpośrednie przechodzenie do innych aplikacji. Deweloperzy mogą publikować cele udostępniania, które uruchamiają w ich aplikacjach określone działanie z dołączoną treścią. Takie elementy są widoczne dla użytkowników w interfejsie udostępniania. Ponieważ są one publikowane z wyprzedzeniem, interfejs udostępniania wczytuje się natychmiast po uruchomieniu. Skróty udostępniania działają podobnie do skrótów aplikacji i korzystają z tego samego interfejsu SkrótyInfo API. Ten interfejs API jest też obsługiwany w bibliotece ShareTarget AndroidX. Szczegółowe informacje znajdziesz w przykładowej aplikacji.

Skróty udostępniania umożliwiają użytkownikom bezpośrednie przechodzenie do określonej aktywności w Twoich aplikacjach wraz z dołączonymi treściami.

Prywatność użytkowników

W Androidzie 10 prywatność jest na pierwszym miejscu – od silniejszych zabezpieczeń na platformie po nowe funkcje zaprojektowane z myślą o ochronie prywatności. Bazując na poprzednich wersjach, Android 10 zawiera rozbudowane zmiany, które chronią prywatność i zapewniają użytkownikom większą kontrolę, a także ulepszony interfejs systemu, bardziej rygorystyczne uprawnienia i ograniczenia dotyczące wykorzystywania danych przez aplikacje. Zapoznaj się ze zmianami dotyczącymi prywatności, by dowiedzieć się, jak włączyć te funkcje w swoich aplikacjach.

Użytkownicy mogą teraz przyznać dostęp do lokalizacji, gdy aplikacja działa na pierwszym planie.

Zapewnienie użytkownikom większej kontroli nad danymi o lokalizacji – użytkownicy mają większą kontrolę nad danymi o lokalizacji dzięki nowej opcji uprawnień. Mogą teraz zezwolić aplikacji na dostęp do lokalizacji tylko wtedy, gdy jest ona faktycznie używana (działająca na pierwszym planie). W przypadku większości aplikacji daje to wystarczający poziom dostępu, a dla użytkowników to znaczny wzrost przejrzystości i kontroli. Więcej informacji o zmianach dotyczących lokalizacji znajdziesz w przewodniku dla programistów i w naszym poście na blogu.

Ochrona danych o lokalizacji w skanowaniach sieci – większość interfejsów API do skanowania sieci wymaga już uprawnień do przybliżonej lokalizacji. Android 10 zwiększa ochronę tych interfejsów API zamiast wymagać dostępu do dokładnej lokalizacji.

Zapobieganie śledzeniu urządzeń – aplikacje nie mają już dostępu do identyfikatorów urządzeń, których nie można zresetować, takich jak IMEI, numer seryjny i podobne identyfikatory, które można wykorzystać do śledzenia. Gdy urządzenie jest połączone z sieciami Wi-Fi, adres MAC jest też losowy. Zapoznaj się ze sprawdzonymi metodami, które pomogą Ci wybrać odpowiednie identyfikatory do danego przypadku użycia, i zapoznaj się ze szczegółami tutaj.

Zabezpieczanie danych użytkownika w pamięci zewnętrznej – w Androidzie 10 wprowadzono szereg zmian, aby zapewnić użytkownikom większą kontrolę nad plikami w pamięci zewnętrznej i zawartymi w nich danymi aplikacji. Aplikacje mogą przechowywać własne pliki w prywatnych piaskownicy, ale muszą używać MediaStore, aby uzyskiwać dostęp do udostępnionych plików multimedialnych, a także korzystać z selektora plików systemowych, aby uzyskiwać dostęp do udostępnionych plików w nowej kolekcji Pobrane. Więcej informacji znajdziesz tutaj.

Blokowanie niechcianych przerw – Android 10 zapobiega uruchamianiu aplikacji w tle, które nieoczekiwanie wyskakują na pierwszy plan i przejmą kontrolę nad inną aplikacją. Więcej informacji znajdziesz tutaj.

Zabezpieczenia

Android 10 udostępnia wiele funkcji, które zwiększają bezpieczeństwo użytkowników dzięki postępom w szyfrowaniu, wzmacnianiu zabezpieczeń i uwierzytelniania. Więcej informacji o aktualizacjach zabezpieczeń Androida 10 znajdziesz tutaj.

Szyfrowanie pamięci masowej – wszystkie zgodne urządzenia z Androidem 10 muszą szyfrować dane użytkownika. Aby zwiększyć wydajność tej funkcji, Android 10 zawiera Adiantum – nasz nowy tryb szyfrowania.

Domyślnie TLS 1.3 – Android 10 domyślnie włącza też TLS 1.3, dużą wersję standardu TLS, zapewniającą lepszą wydajność i ulepszone zabezpieczenia.

Wzmocnienie platformy – Android 10 obejmuje też wzmocnienie niektórych obszarów platformy o krytycznym znaczeniu dla bezpieczeństwa.

Ulepszona funkcja biometryczna – Android 10 rozszerza platformę BiometricPrompt o obsługę pasywnych metod uwierzytelniania (np. rozpoznawania twarzy) i dodaje niejawne i jawne przepływy uwierzytelniania. W ramach jawnego procesu użytkownik musi podczas uwierzytelniania potwierdzić transakcję w TEE. Ta funkcja to prostsza alternatywa dla transakcji z uwierzytelnianiem pasywnym. Android 10 usprawnia też w razie potrzeby zastępowanie danych logowania na urządzeniu. Więcej informacji znajdziesz tutaj.

Aparat i multimedia

Dynamiczna głębia zdjęć

Aplikacje mogą teraz żądać dynamicznego obrazu głębi, który składa się z pliku JPEG, metadanych XMP powiązanych z elementami związanymi z głębią oraz mapy głębi i ufności umieszczonej w tym samym pliku. Dzięki nim możesz oferować specjalne opcje rozmycia i bokeh w aplikacji. Dynamiczna głębia to format otwarty dla ekosystemu. Współpracujemy z naszymi partnerami, aby udostępnić tę funkcję na urządzeniach z Androidem 10 i nowszym.

Dzięki obrazowi dynamicznej głębi możesz stosować w aplikacji specjalne opcje rozmycia i efektu bokeh.

Przechwytywanie odtwarzania dźwięku

Teraz każda aplikacja, która odtwarza dźwięk, może zezwolić innym aplikacjom na rejestrowanie jej strumienia za pomocą nowego interfejsu API do przechwytywania odtwarzania dźwięku. Oprócz opcji wyświetlania napisów interfejs API umożliwia obsługę popularnych zastosowań, takich jak transmisje na żywo z gier. Stworzyliśmy tę nową funkcję z myślą o ochronie prywatności i praw autorskich. Z tego powodu możliwość rejestrowania przez aplikację dźwięku z innej aplikacji jest ograniczona, a aplikacja ma pełną kontrolę nad tym, czy można rejestrować strumienie audio. Więcej informacji znajdziesz w tym poście na blogu.

nowe kodeki audio i wideo,

Android 10 dodaje obsługę kodeka wideo typu open source AV1, który umożliwia dostawcom multimediów przesyłanie wysokiej jakości treści wideo na urządzenia z Androidem przy mniejszej przepustowości. Dodatkowo Android 10 obsługuje kodowanie dźwięku za pomocą Opus – otwartego, bezpłatnego kodeka zoptymalizowanego pod kątem odtwarzania mowy i muzyki – oraz HDR10+ do obsługi filmów o wysokim zakresie dynamiki na urządzeniach, które je obsługują. Interfejs MediaCodecInfo API zapewnia łatwiejszy sposób określania możliwości renderowania filmów na urządzeniach z Androidem. W przypadku każdego kodeka możesz uzyskać listę obsługiwanych rozmiarów i liczby klatek.

Natywny interfejs API MIDI

W przypadku aplikacji wykonujących przetwarzanie dźwięku w języku C++ Android 10 wprowadza natywny interfejs API MIDI, który umożliwia komunikację z urządzeniami MIDI przez NDK. Ten interfejs API umożliwia pobieranie danych MIDI w wywołaniu zwrotnym audio za pomocą nieblokowania odczytu, co pozwala na przetwarzanie wiadomości MIDI z małym opóźnieniem. Wypróbuj ją z przykładową aplikacją i kodem źródłowym tutaj.

Mikrofony kierunkowe z możliwością powiększenia

Android 10 zapewnia większą kontrolę nad rejestrowaniem dźwięku dzięki nowemu interfejsowi API MicrophoneDirection. Za pomocą interfejsu API możesz określić preferowany kierunek mikrofonu podczas nagrywania dźwięku. Gdy na przykład użytkownik nagrywa film typu „selfie”, możesz poprosić o używanie przedniego mikrofonu do nagrywania dźwięku (jeśli go masz). Dodatkowo ten interfejs API wprowadza ustandaryzowany sposób sterowania mikrofonami z możliwością powiększenia, który umożliwia aplikacji kontrolowanie wymiaru pola nagrywania.

Interfejs Vulkan w każdym miejscu

Android 10 rozszerza możliwości Vulkan dzięki naszej implementacji interfejsu API działającego w wysokiej wydajności 3D, który nie wymaga dużych nakładów pracy. Interfejs Vulkan 1.1 jest obecnie wymagany na wszystkich 64-bitowych urządzeniach z Androidem 10 lub nowszym oraz jest zalecany dla wszystkich urządzeń 32-bitowych. Już teraz obserwujemy znaczną poprawę w ekosystemie platformy Vulkan – na urządzeniach z Androidem N lub nowszym 53% obsługuje interfejs Vulkan w wersji 1.0.3 lub nowszej. Zgodnie z nowymi wymaganiami w Androidzie 10 spodziewamy się, że w nadchodzącym roku ten poziom rozpowszechnienia się poprawi.

Połączenia

Lepsza łączność z internetem i połączenia peer-to-peer.

Zmodernizowaliśmy stos Wi-Fi, aby zwiększyć prywatność i wydajność oraz usprawnić typowe zastosowania, takie jak zarządzanie urządzeniami IoT i sugerowanie połączeń z internetem – bez konieczności uzyskiwania dostępu do lokalizacji. Interfejsy API połączeń sieciowych ułatwiają zarządzanie urządzeniami IoT przez lokalną sieć Wi-Fi w ramach funkcji połączeń peer-to-peer, takich jak konfigurowanie, pobieranie i drukowanie. Interfejsy API sugestii sieciowych umożliwiają aplikacjom wyświetlanie preferowanych sieci Wi-Fi użytkownikowi w celu zapewnienia połączenia z internetem.

Tryby wydajności Wi-Fi

Aplikacje mogą teraz prosić o adaptacyjną sieć Wi-Fi, włączając tryby wysokiej wydajności i małego opóźnienia. Mogą się one okazać bardzo przydatne, gdy opóźnienia mają znaczenie dla wygody użytkowników, np. podczas grania w czasie rzeczywistym, aktywnych połączeń głosowych i podobnych przypadków użycia. Platforma współpracuje z oprogramowaniem urządzenia, aby spełniać wymagania przy jak najniższym zużyciu energii. Aby użyć nowych trybów wydajności, wywołaj WifiManager.WifiLock.createWifiLock() z metodą WIFI_MODE_FULL_LOW_LATENCY lub WIFI_MODE_FULL_HIGH_PERF. W tych trybach platforma współpracuje z oprogramowaniem urządzenia, aby spełnić wymagania przy jak najniższym zużyciu energii.

Podstawy Androida

Optymalizacje ART

Dzięki ulepszeniom w środowisku wykonawczym ART aplikacje mogą się szybciej uruchamiać, zużywać mniej pamięci i działać płynniej, a Ty nie musisz nic robić. Profile ART dostarczane przez Google Play umożliwiają ART wstępne kompilowanie części aplikacji, jeszcze zanim zostanie uruchomiona. Android 10 dodaje w czasie działania funkcję zbierania danych na temat generatywnej śmieci do systemu równoczesnego kopiowania (CC) ART, Concurrent Copying (CC), aby zbierać śmieci bardziej wydajnie pod względem czasu i procesora, i ułatwia działanie aplikacji na słabszych urządzeniach.

Ten wykres pokazuje procentowy dłuższy czas uruchamiania określonych aplikacji testowanych z wykorzystaniem profili Google Play.

Neural Networks API 1.2

Dodaliśmy 60 nowych operacji, w tym ARGMAX, ARGMIN, LSTM poddane kwantyzacji, oraz szereg optymalizacji skuteczności. Daje to podstawy do przyspieszania znacznie większego zakresu modeli – np. służących do wykrywania obiektów i segmentacji obrazu. Współpracujemy z dostawcami sprzętu i popularnymi platformami systemów uczących się, takimi jak TensorFlow, aby zoptymalizować i wdrożyć obsługę NNAPI 1.2.

Thermal API

Gdy urządzenia za bardzo się nagrzewają, mogą ograniczać procesor lub GPU, co może w nieoczekiwany sposób wpłynąć na aplikacje i gry. Teraz w Androidzie 10 aplikacje i gry mogą używać interfejsu Term API do monitorowania zmian na urządzeniu i podejmowania działań w celu przywrócenia normalnej temperatury. Na przykład aplikacje do odtwarzania strumieniowego mogą zmniejszać rozdzielczość lub szybkość transmisji bitów albo natężenie ruchu sieciowego, aplikacja aparatu może wyłączać lampę błyskową lub intensywne poprawianie obrazu, a gra zmniejsza liczbę klatek lub tessację wielokątów. Więcej informacji znajdziesz tutaj.

Zgodność za pomocą publicznych interfejsów API

Android 10 stale rozszerza ograniczenia na interfejsy spoza SDK, więc aplikacje stopniowo przechodzą na tylko publiczne interfejsy API. Jeśli używany obecnie interfejs jest ograniczony, możesz zamiast tego poprosić o nowy publiczny interfejs API dla tego interfejsu. Aby ułatwić Ci przejście na Androida i zapobiec jego skutkom, włączamy te ograniczenia tylko w przypadku aplikacji kierowanych na Androida 10 (API 29). Więcej informacji o ograniczeniach znajdziesz w przewodniku dla programistów.

Szybsze aktualizacje, bardziej aktualny kod

Android 10 został zaprojektowany z myślą o szybszych aktualizacjach dzięki Project Treble, który zapewnia spójny i testalny interfejs między Androidem a bazowym kodem urządzenia od producentów i producentów krzemu. Dzięki Treble producenci mogą szybciej i taniej wprowadzić Androida 10 na urządzenia zgodne z technologią Treble.

Android 10 to również pierwsza wersja obsługująca Project Mainline (oficjalnie nazywana aktualizacjami systemu Google Play), czyli naszą nową technologię, która pomaga chronić użytkowników Androida i dbać o aktualność urządzeń dzięki istotnym zmianom w kodzie (bezpośrednio z Google Play). Aktualizacje systemu Google Play umożliwiają aktualizowanie określonych komponentów wewnętrznych na wszystkich urządzeniach z Androidem 10 lub nowszym bez konieczności pobierania pełnej aktualizacji systemu od producenta urządzenia.

W przypadku deweloperów oczekujemy, że te zmiany w Androidzie 10 pomogą zapewnić spójność implementacji na różnych platformach, a z czasem ujednolicić je, co zmniejszy koszty programowania i testowania.

Rozpocznij

Pełne materiały dla programistów Androida 10 znajdziesz na stronie developer.android.com/10.