Android 10 opiera się na 3 ważnych założeniach. Po pierwsze, Android 10 wyznacza kierunek rozwoju innowacji mobilnych dzięki zaawansowanemu uczeniu maszynowemu i obsłudze nowych urządzeń, takich jak telefony składane i urządzenia z 5G. Android 10 koncentruje się na prywatności i bezpieczeństwie. Zawiera prawie 50 funkcji, które zapewniają użytkownikom większą ochronę, przejrzystość i kontrolę. Android 10 rozszerza też kontrolę użytkowników nad cyfrową równowagą, dzięki czemu osoby i rodziny mogą znaleźć lepszą równowagę w świecie technologii.
Oto przegląd nowości w Androidzie 10 dla deweloperów i sposobów ich wykorzystania.
Innowacje i nowe funkcje
Android 10 umożliwia korzystanie z najnowszych innowacji sprzętowych i programowych, dzięki czemu możesz tworzyć dla użytkowników niesamowite aplikacje.

Android 10 umożliwia optymalizację aplikacji pod kątem urządzeń składanych i innych urządzeń z dużym ekranem.
Urządzenia składane
Android 10 rozszerza możliwości wielozadaniowości w oknach aplikacji i zapewnia ciągłość ekranu, aby zachować stan aplikacji podczas składania i rozkładania urządzenia. Android 10 wprowadza szereg ulepszeń w metodach onResume i onPause, które obsługują funkcję multi-resume i powiadamiają aplikację, gdy jest aktywna. Zmienia też sposób działania atrybutu manifestu resizeableActivity, aby ułatwić zarządzanie sposobem wyświetlania aplikacji na urządzeniach składanych i dużych ekranach. Aby ułatwić tworzenie aplikacji na urządzenia składane, możesz skonfigurować emulator urządzenia składanego jako urządzenie wirtualne (AVD) w Android Studio. Szczegółowe informacje o optymalizowaniu aplikacji pod kątem urządzeń składanych znajdziesz w przewodniku dla programistów.
Sieci 5G
5G zapewnia większą szybkość i mniejsze opóźnienie. Android 10 dodaje obsługę 5G na poziomie platformy i rozszerza dotychczasowe interfejsy API, aby ułatwić korzystanie z tych ulepszeń. Możesz używać interfejsów API łączności, aby 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ą dostarczać użytkownikom korzystającym z 5G bogate, wciągające wrażenia.
Inteligentna odpowiedź w powiadomieniach
Android 10 wykorzystuje uczenie maszynowe na urządzeniu, aby sugerować w powiadomieniach działania kontekstowe, np. inteligentne odpowiedzi na wiadomości lub otwieranie mapy z adresem w powiadomieniu. Twoje aplikacje mogą od razu korzystać z tej funkcji bez Twojej interwencji. Inteligentne odpowiedzi i działania dostarczane przez system są domyślnie wstawiane bezpośrednio do powiadomień. Jeśli chcesz, nadal możesz podawać własne odpowiedzi i działania. Możesz zrezygnować z funkcji Inteligentna odpowiedź w przypadku poszczególnych powiadomień, korzystając z funkcji setAllowGeneratedReplies() i setAllowSystemGeneratedContextualActions().

Inteligentna odpowiedź może sugerować działania na podstawie treści powiadomienia.
Ciemny motyw
Android 10 wprowadza ogólnosystemowy tryb ciemny, który idealnie sprawdza się przy słabym oświetleniu i pomaga oszczędzać baterię. Użytkownicy mogą aktywować nowy ciemny motyw w ustawieniach lub włączając oszczędzanie baterii. Spowoduje to zmianę interfejsu systemu na ciemny i włączenie ciemnego motywu w aplikacjach, które go obsługują. Możesz utworzyć niestandardowy ciemny motyw dla swojej aplikacji lub włączyć nową funkcję Wymuś ciemny motyw, która umożliwia systemowi dynamiczne tworzenie ciemnej wersji na podstawie istniejącego motywu. Możesz też skorzystać z funkcji DayNight biblioteki AppCompat, aby udostępnić ciemny motyw użytkownikom starszych wersji Androida. Więcej informacji znajdziesz w przewodniku dla programistów.

Android 10 może dynamicznie tworzyć ciemny motyw dla Twojej aplikacji za pomocą funkcji Wymuś ciemny motyw.
Nawigacja przy użyciu gestów

Nawigacja gestami zapewnia aplikacjom pełny ekran na potrzeby treści.
Android 10 wprowadza tryb nawigacji w pełni oparty na gestach, który eliminuje obszar paska nawigacyjnego i umożliwia aplikacjom korzystanie z pełnego ekranu, aby zapewniać bogatsze i bardziej wciągające wrażenia. Zachowuje znaną nawigację Wstecz, Ekran główny i Ostatnie – za pomocą gestów przesuwania od krawędzi, a nie widocznych przycisków. Aby płynnie współgrać z nawigacją gestami, aplikacja powinna zajmować cały ekran, rysując elementy za paskiem nawigacyjnym, aby zapewnić wciągające wrażenia. Aby to zrobić, aplikacje powinny używać interfejsu setSystemUiVisibility() API, aby wyświetlać się na pełnym ekranie, a następnie odpowiednio obsługiwać WindowInsets, aby ważne elementy interfejsu nie były zasłonięte. Zacznij optymalizować aplikację już dziś. Więcej informacji znajdziesz w naszej serii postów na blogu.
Panele ustawień
Dzięki nowemu interfejsowi Settings Panel API możesz teraz wyświetlać kluczowe ustawienia systemu bezpośrednio w kontekście aplikacji. Panel ustawień to pływający interfejs, który wywołujesz, aby wyświetlić ustawienia, które mogą być potrzebne użytkownikom, takie jak łączność z internetem, NFC i głośność. Na przykład przeglądarka może wyświetlać panel z ustawieniami połączenia, takimi jak tryb samolotowy, Wi-Fi (w tym sieci w pobliżu) i mobilna transmisja danych. Aby wyświetlić panel ustawień, wystarczy wywołać intencję z jedną z nowych działań Settings.Panel.
Skróty udostępniania
Skróty udostępniania przyspieszają i ułatwiają udostępnianie, umożliwiając użytkownikom bezpośrednie przejście do innej aplikacji w celu udostępnienia treści. Deweloperzy mogą publikować cele udostępniania, które uruchamiają określone działanie w ich aplikacjach z dołączoną treścią. Są one wyświetlane użytkownikom 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 do aplikacji i korzystają z tego samego interfejsu ShortcutInfo API. 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 przejście do konkretnego działania w aplikacjach z załączoną treścią.
Prywatność użytkowników
Prywatność jest kluczowym elementem Androida 10. Zapewnia on większą ochronę na poziomie platformy i zawiera nowe funkcje zaprojektowane z myślą o prywatności. Android 10 wprowadza wiele zmian w zakresie ochrony prywatności i zapewnia użytkownikom większą kontrolę. Obejmują one ulepszony interfejs systemu, bardziej rygorystyczne uprawnienia i ograniczenia dotyczące danych, z których mogą korzystać aplikacje. Szczegółowe informacje o tym, jak obsługiwać te zmiany w aplikacjach, znajdziesz w sekcji Zmiany dotyczące prywatności.

Użytkownicy mogą teraz przyznawać dostęp do lokalizacji, gdy aplikacja działa na pierwszym planie.
Większa kontrola użytkowników 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 używana (działa na pierwszym planie). W przypadku większości aplikacji zapewnia to wystarczający poziom dostępu, a dla użytkowników jest to duże ulepszenie pod względem przejrzystości i kontroli. Więcej informacji o zmianach dotyczących lokalizacji znajdziesz w przewodniku dla programistów lub w poście na blogu.
Ochrona danych o lokalizacji podczas skanowania sieci – większość interfejsów API do skanowania sieci wymagała już uprawnień dostępu do przybliżonej lokalizacji. Android 10 zwiększa ochronę tych interfejsów API, wymagając zamiast tego uprawnień do dokładnej lokalizacji.
Zapobieganie śledzeniu urządzenia – aplikacje nie mają już dostępu do identyfikatorów urządzenia, których nie można zresetować i które mogłyby być używane do śledzenia, w tym numeru IMEI, numeru seryjnego i podobnych identyfikatorów. Adres MAC urządzenia jest też domyślnie randomizowany po połączeniu z siecią Wi-Fi. Zapoznaj się ze sprawdzonymi metodami, które pomogą Ci wybrać odpowiednie identyfikatory do Twojego przypadku użycia. Szczegółowe informacje znajdziesz tutaj.
Zabezpieczanie danych użytkownika na zewnętrznych nośnikach danych – Android 10 wprowadza szereg zmian, które dają użytkownikom większą kontrolę nad plikami na zewnętrznych nośnikach danych i danymi aplikacji w tych plikach. Aplikacje mogą przechowywać własne pliki w prywatnych piaskownicach, ale muszą używać interfejsu MediaStore, aby uzyskiwać dostęp do udostępnionych plików multimedialnych, oraz okna wyboru 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 nagle przechodzą na pierwszy plan i przejmują fokus od innej aplikacji. Więcej informacji znajdziesz tutaj.
Bezpieczeństwo
Android 10 wprowadza szereg funkcji, które zwiększają bezpieczeństwo użytkowników dzięki ulepszeniom w zakresie szyfrowania, wzmocnienia platformy i uwierzytelniania. Więcej informacji o aktualizacjach zabezpieczeń Androida 10 znajdziesz tutaj.
Szyfrowanie pamięci – wszystkie kompatybilne urządzenia z Androidem 10 muszą szyfrować dane użytkownika. Aby zwiększyć wydajność tego procesu, Android 10 zawiera Adiantum, nasz nowy tryb szyfrowania.
Domyślnie TLS 1.3 – Android 10 domyślnie włącza też TLS 1.3, czyli główną wersję standardu TLS, która zapewnia większą wydajność i lepsze bezpieczeństwo.
Zwiększenie bezpieczeństwa platformy – Android 10 zawiera też zwiększenie bezpieczeństwa kilku kluczowych obszarów platformy.
Ulepszone dane biometryczne – Android 10 rozszerza platformę BiometricPrompt, aby obsługiwać pasywne metody uwierzytelniania, takie jak rozpoznawanie twarzy, oraz dodaje niejawne i jawne procesy uwierzytelniania. W przypadku przepływu jawnego użytkownik musi wyraźnie potwierdzić transakcję w TEE podczas uwierzytelniania. Proces niejawny jest lżejszą alternatywą dla transakcji z pasywnym uwierzytelnianiem. Android 10 poprawia też w razie potrzeby mechanizm rezerwowy danych logowania na urządzenie. Więcej informacji znajdziesz tutaj.
Aparat i multimedia
Dynamiczna głębia ostrości w przypadku zdjęć
Aplikacje mogą teraz prosić o obraz o dynamicznej głębi, który składa się z pliku JPEG, metadanych XMP związanych z elementami głębi oraz mapy głębi i pewności osadzonej w tym samym pliku. Umożliwiają one oferowanie w aplikacji specjalistycznych opcji rozmycia i bokeh. Dynamiczna głębia to otwarty format dla ekosystemu. Współpracujemy z partnerami, aby udostępnić go na urządzeniach z Androidem 10 i nowszym.



Dzięki obrazom z dynamiczną głębią możesz oferować w aplikacji specjalistyczne opcje rozmycia i bokeh.
Przechwytywanie odtwarzania dźwięku
Teraz każda aplikacja, która odtwarza dźwięk, może zezwolić innym aplikacjom na przechwytywanie strumienia audio za pomocą nowego interfejsu API przechwytywania odtwarzania dźwięku. Oprócz włączania napisów interfejs API umożliwia obsługę popularnych przypadków użycia, takich jak transmitowanie na żywo gier. Nowa funkcja została opracowana z myślą o ochronie prywatności i praw autorskich, dlatego możliwość przechwytywania dźwięku z innej aplikacji jest ograniczona. Aplikacje mają pełną kontrolę nad tym, czy ich strumienie audio mogą być przechwytywane. Więcej informacji znajdziesz w tym poście na blogu.
Nowe kodeki audio i wideo
Android 10 obsługuje kodek wideo o otwartym kodzie źródłowym AV1, który umożliwia dostawcom multimediów przesyłanie strumieniowe treści wideo w wysokiej jakości na urządzenia z Androidem przy użyciu mniejszej przepustowości. Dodatkowo Android 10 obsługuje kodowanie dźwięku za pomocą Opus – otwartego, bezpłatnego kodeka zoptymalizowanego pod kątem strumieniowania mowy i muzyki – oraz HDR10+ do wideo o wysokim zakresie dynamiki na urządzeniach, które go obsługują. Interfejs MediaCodecInfo API ułatwia określanie możliwości renderowania wideo na urządzeniu z Androidem. W przypadku każdego kodeka możesz uzyskać listę obsługiwanych rozmiarów i szybkości klatek.
Native MIDI API
W przypadku aplikacji, które przetwarzają dźwięk w C++, Android 10 wprowadza natywny interfejs MIDI API do komunikacji z urządzeniami MIDI za pomocą pakietu NDK. Ten interfejs API umożliwia pobieranie danych MIDI w wywołaniu zwrotnym audio za pomocą odczytu nieblokującego, co pozwala na przetwarzanie wiadomości MIDI z niskim opóźnieniem. Wypróbuj przykładową aplikację i kod źródłowy.
Kierunkowe mikrofony z funkcją zoomu
Android 10 daje Ci większą kontrolę nad nagrywaniem dźwięku dzięki nowemu interfejsowi MicrophoneDirection. Za pomocą interfejsu API możesz określić preferowany kierunek mikrofonu podczas nagrywania dźwięku. Na przykład, gdy użytkownik nagrywa film typu „selfie”, możesz poprosić o użycie przedniego mikrofonu do nagrywania dźwięku (jeśli jest dostępny). Ten interfejs API wprowadza też standardowy sposób sterowania mikrofonami z funkcją zoomu, dzięki czemu aplikacja może kontrolować wymiary pola nagrywania.
Vulkan wszędzie
Android 10 rozszerza wpływ Vulkana dzięki naszemu wdrożeniu wieloplatformowego interfejsu API o niskim narzucie, który zapewnia wysoką wydajność grafiki 3D. Vulkan 1.1 jest teraz wymagany na wszystkich 64-bitowych urządzeniach z Androidem 10 lub nowszym, a zalecany na wszystkich urządzeniach 32-bitowych. Widzimy już znaczący wzrost popularności Vulkan w ekosystemie – 53% urządzeń z Androidem N lub nowszym obsługuje Vulkan 1.0.3 lub nowszy. W przyszłym roku spodziewamy się dalszego wzrostu popularności tego rozwiązania dzięki nowemu wymaganiu w Androidzie 10.
Łączność
Ulepszone połączenia peer-to-peer i internetowe
Przebudowaliśmy stos Wi-Fi, aby zwiększyć prywatność i wydajność, a także ulepszyć typowe przypadki użycia, takie jak zarządzanie urządzeniami IoT i sugerowanie połączeń internetowych – bez konieczności uzyskiwania uprawnień do lokalizacji. Interfejsy API połączenia sieciowego ułatwiają zarządzanie urządzeniami IoT w lokalnej sieci Wi-Fi w przypadku funkcji peer-to-peer, takich jak konfigurowanie, pobieranie czy drukowanie. Interfejsy API sugestii sieci umożliwiają aplikacjom wyświetlanie użytkownikowi preferowanych sieci Wi-Fi w celu zapewnienia łączności z internetem.
Tryby wydajności Wi-Fi
Aplikacje mogą teraz wysyłać żądania adaptacyjnej sieci Wi-Fi, włączając tryby wysokiej wydajności i niskiego opóźnienia.
Może to być bardzo korzystne w przypadku zastosowań, w których niskie opóźnienia są ważne dla wygody użytkowników, np. w grach czasu rzeczywistego, aktywnych połączeniach głosowych i podobnych przypadkach. Platforma współpracuje z oprogramowaniem układowym urządzenia, aby spełnić wymagania przy najniższym zużyciu energii. Aby używać nowych trybów wydajności, wywołaj funkcję WifiManager.WifiLock.createWifiLock() z wartością WIFI_MODE_FULL_LOW_LATENCY
lub WIFI_MODE_FULL_HIGH_PERF
. W tych trybach platforma współpracuje z oprogramowaniem układowym urządzenia, aby spełnić wymagania przy najniższym zużyciu energii.
Podstawy Androida
Optymalizacje ART
Ulepszenia środowiska wykonawczego ART sprawiają, że aplikacje uruchamiają się szybciej, zużywają mniej pamięci i działają płynniej – bez konieczności wykonywania jakichkolwiek działań. Profile ART dostarczane przez Google Play umożliwiają ART wstępne skompilowanie części aplikacji jeszcze przed jej uruchomieniem. W czasie działania Androida 10 do modułu zbierania nieużytków CC (Concurrent Copying) w ART dodano zbieranie nieużytków generacyjnych, aby zwiększyć wydajność zbierania nieużytków pod względem czasu i procesora, zmniejszyć zacinanie się i poprawić działanie aplikacji na urządzeniach z niższej półki.

Ten wykres pokazuje procentowy wzrost szybkości uruchamiania określonych aplikacji podczas testowania z użyciem profili Play.
Neural Networks API 1.2
Dodaliśmy 60 nowych operacji, w tym ARGMAX, ARGMIN i skwantyzowaną sieć LSTM, a także szereg optymalizacji wydajności. Umożliwia to przyspieszenie działania znacznie większej liczby modeli, takich jak modele wykrywania obiektów i segmentacji obrazów. Współpracujemy z dostawcami sprzętu i popularnymi platformami do uczenia maszynowego, takimi jak TensorFlow, aby zoptymalizować i wdrożyć obsługę NNAPI 1.2.
Thermal API
Gdy urządzenia za bardzo się nagrzeją, mogą ograniczyć częstotliwość procesora lub procesora graficznego, co może mieć nieoczekiwany wpływ na aplikacje i gry. W Androidzie 10 aplikacje i gry mogą korzystać z interfejsu Thermal API , aby monitorować zmiany na urządzeniu i podejmować działania, które pomogą przywrócić normalną temperaturę. Na przykład aplikacje do strumieniowania mogą zmniejszyć rozdzielczość lub szybkość transmisji albo ruch sieciowy, aplikacja aparatu może wyłączyć lampę błyskową lub intensywne ulepszanie obrazu, a gra może zmniejszyć liczbę klatek na sekundę lub teselację wielokątów. Więcej informacji znajdziesz tutaj.
Zgodność dzięki publicznym interfejsom API
Android 10 nadal rozszerza ograniczenia dotyczące interfejsów innych niż SDK, aby aplikacje stopniowo przechodziły na korzystanie tylko z publicznych interfejsów API. Jeśli interfejs, z którego obecnie korzystasz, jest ograniczony, możesz zamiast niego poprosić o nowy publiczny interfejs API. Aby ułatwić Ci przejście na nowe zasady i zapobiec nieprawidłowemu działaniu aplikacji, włączamy ograniczenia tylko wtedy, gdy aplikacja jest kierowana na Androida 10 (API 29). Więcej informacji o ograniczeniach znajdziesz w przewodniku dla programistów.
Szybsze aktualizacje, nowszy kod
Android 10 został zaprojektowany z myślą o szybszych aktualizacjach dzięki Project Treble, który zapewnia spójny, testowalny interfejs między Androidem a kodem urządzenia od producentów urządzeń i producentów krzemu. Dzięki Treble producenci urządzeń mogą szybciej i taniej wprowadzać Androida 10 na urządzenia zgodne z Treble.
Android 10 to także pierwsza wersja, która obsługuje Project Mainline (oficjalnie nazywany aktualizacjami systemu Google Play), naszą nową technologię zabezpieczania użytkowników Androida i zapewniania im dostępu do ważnych zmian w kodzie bezpośrednio z Google Play. Dzięki aktualizacjom systemu Google Play możemy aktualizować określone komponenty wewnętrzne na wszystkich urządzeniach z Androidem 10 lub nowszym bez konieczności przeprowadzania pełnej aktualizacji systemu przez producenta urządzenia.
Oczekujemy, że te aktualizacje w Androidzie 10 pomogą deweloperom zapewnić spójność implementacji platformy na różnych urządzeniach i z czasem zwiększyć jednolitość, co zmniejszy koszty rozwoju i testowania.
Rozpocznij
Pełne zasoby dla programistów dotyczące Androida 10 znajdziesz na stronie developer.android.com/10.