Android 10 dla deweloperów

Android 10 opiera się na 3 ważnych motywach. Po pierwsze, Android 10 kształtuje najnowocześniejsze innowacje mobilne dzięki zaawansowanemu uczeniu maszynowemu i obsłudze nowych urządzeń, takich jak urządzenia składane i telefony z obsługą 5G. Android 10 koncentruje się na prywatności i bezpieczeństwie, oferując prawie 50 funkcji, które zapewniają użytkownikom lepszą 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, co Android 10 oferuje deweloperom i jak można z tego korzystać już dziś.

Innowacje i nowe funkcje

Android 10 pozwala wykorzystać najnowsze innowacje sprzętowe i programowe, aby zapewnić użytkownikom niesamowite wrażenia z korzystania z aplikacji.

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

Urządzenia składane

Android 10 rozszerza solidną obsługę wielu okien, umożliwiając wielozadaniowość w oknach aplikacji i zapewniając ciągłość ekranu, dzięki czemu stan aplikacji jest zachowywany po złożeniu lub rozłożeniu urządzenia. Android 10 wprowadza szereg ulepszeń w metodach onResume i onPause, aby obsługiwać jednoczesne wznowienie i powiadamiać aplikację, gdy jest aktywna. Zmienia też sposób działania atrybutu pliku manifestu resizeableActivity, aby ułatwić zarządzanie wyświetlaniem aplikacji na urządzeniach składanych i dużych ekranach. Aby ułatwić Ci 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 stale wyższe prędkości i mniejsze opóźnienia. Android 10 dodaje obsługę platformy 5G i rozszerza istniejące interfejsy API, aby ułatwić korzystanie z tych ulepszeń. Możesz użyć interfejsów API połączeń, aby wykryć, czy urządzenie ma połączenie o dużej przepustowości, i sprawdzić, czy jest ono taryfowe. Dzięki temu aplikacje i gry mogą zapewniać użytkownikom bogate, immersyjne wrażenia w sieciach 5G.

Inteligentna odpowiedź w powiadomieniach

Android 10 wykorzystuje uczenie maszynowe na urządzeniu, aby sugerować czynności kontekstowe w powiadomieniach, takie jak inteligentne odpowiedzi na wiadomości czy otwieranie mapy z adresem podanym w powiadomieniu. Twoje aplikacje mogą od razu korzystać z tej funkcji, nie musisz nic robić. Dostarczane przez system inteligentne odpowiedzi i działania są domyślnie wstawiane bezpośrednio do powiadomień. Jeśli chcesz, możesz nadal podawać własne odpowiedzi i działania. Wystarczy zrezygnować z inteligentnej odpowiedzi w przypadku poszczególnych powiadomień, używając metod setAllowGeneratedReplies() i setAllowSystemGeneratedContextualActions().

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

Ciemny motyw

Android 10 wprowadza ciemny motyw dla całego systemu, który idealnie sprawdza się przy słabym oświetleniu i pomaga oszczędzać baterię. Użytkownicy mogą aktywować nowy ciemny motyw w całym systemie, przechodząc do Ustawień 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 skorzystać z nowej funkcji wymuszonego ciemnego motywu, która pozwala systemowi dynamicznie tworzyć ciemną wersję na podstawie istniejącego motywu. Możesz też skorzystać z funkcji DayNight w AppCompat, aby zaoferować 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 aplikacji za pomocą funkcji wymuszania trybu ciemnego.

Nawigacja przy użyciu gestów

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

Android 10 wprowadza tryb nawigacji przy użyciu gestów, który eliminuje obszar paska nawigacji i umożliwia aplikacjom korzystanie z pełnego ekranu, co zapewnia bogatsze i bardziej wciągające wrażenia. Zachowuje znane funkcje Wstecz, Ekran główny i Ostatnie, ale zamiast widocznych przycisków używa przesunięć palcem od krawędzi. Aby płynnie połączyć się z nawigacją przy użyciu gestów, aplikacja powinna wyświetlać się na całym ekranie, rysując za paskiem nawigacyjnym, aby zapewnić wciągające wrażenia. Aby to zrobić, aplikacje powinny używać interfejsu API setSystemUiVisibility() do wyświetlania na pełnym ekranie, a następnie odpowiednio obsługiwać WindowInsets, aby ważne elementy interfejsu nie były zasłonięte. Zacznij optymalizować swoją aplikację już dziś i zapoznaj się z naszą serią postów na blogu, aby dowiedzieć się więcej.

Panele ustawień

Teraz możesz wyświetlać kluczowe ustawienia systemu bezpośrednio w kontekście aplikacji dzięki nowemu interfejsowi API panelu ustawień. Panel ustawień to pływający interfejs, który można wywołać, aby wyświetlić ustawienia, których użytkownicy mogą potrzebować, takie jak połączenie z internetem, NFC i głośność dźwięku. Na przykład przeglądarka może wyświetlać panel z ustawieniami połączeń, 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 jednym 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 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 są podobne do skrótów do aplikacji i korzystają z tego samego interfejsu API ShortcutInfo. 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 przechodzenie bezpośrednio do konkretnej aktywności w aplikacjach z załączonymi treściami.

Prywatność użytkowników

Prywatność jest jednym z głównych obszarów, na których skupia się Android 10. Dotyczy to zarówno silniejszych zabezpieczeń na platformie, jak i nowych funkcji zaprojektowanych z myślą o prywatności. Android 10 bazuje na poprzednich wersjach i wprowadza wiele zmian, które chronią prywatność i dają użytkownikom większą kontrolę. Obejmują one ulepszony interfejs systemu, bardziej rygorystyczne uprawnienia i ograniczenia dotyczące danych, z których mogą korzystać aplikacje. Aby dowiedzieć się, jak obsługiwać te zmiany w aplikacjach, zapoznaj się ze zmianami dotyczącymi prywatności.

Użytkownicy mogą teraz przyznać 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ża poprawa pod względem przejrzystości i kontroli. Więcej informacji o zmianach dotyczących lokalizacji znajdziesz w przewodniku dla deweloperó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ń do przybliżonej lokalizacji. Android 10 zwiększa ochronę tych interfejsów API, wymagając uprawnień do dokładnej lokalizacji.

Zapobieganie śledzeniu urządzenia – aplikacje nie mają już dostępu do niemożliwych do zresetowania identyfikatorów urządzeń, które mogłyby służyć do śledzenia, takich jak numer IMEI, numer seryjny i podobne identyfikatory. Adres MAC urządzenia jest też domyślnie losowy, gdy urządzenie jest połączone z sieciami Wi-Fi. Zapoznaj się ze sprawdzonymi metodami, które pomogą Ci wybrać odpowiednie identyfikatory do Twojego przypadku użycia, i zobacz szczegóły tutaj.

Zabezpieczanie danych użytkownika w pamięci zewnętrznej – Android 10 wprowadza szereg zmian, które dają użytkownikom większą kontrolę nad plikami w pamięci zewnętrznej i znajdującymi się w nich danymi aplikacji. Aplikacje mogą przechowywać własne pliki w prywatnych piaskownicach, ale muszą używać MediaStore, aby uzyskiwać dostęp do udostępnionych plików multimedialnych, oraz systemowego okna wyboru plików, 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 niespodziewanie przechodzą na pierwszy plan i odciągają uwagę 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 zgodne 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ślny protokół TLS 1.3 – Android 10 domyślnie włącza też protokół TLS 1.3, czyli główną wersję standardu TLS, która zapewnia lepszą wydajność i zwiększone bezpieczeństwo.

Wzmocnienie platformy – Android 10 obejmuje też wzmocnienie kilku obszarów platformy o kluczowym znaczeniu dla bezpieczeństwa.

Ulepszona biometria – Android 10 rozszerza platformę BiometricPrompt, aby obsługiwać pasywne metody uwierzytelniania, takie jak rozpoznawanie twarzy, oraz dodawać niejawne i jawne procesy uwierzytelniania. W przypadku procesu jawnego użytkownik musi wyraźnie potwierdzić transakcję w TEE podczas uwierzytelniania. Przepływ niejawny jest lżejszą alternatywą dla transakcji z uwierzytelnianiem pasywnym. Android 10 ulepsza też w razie potrzeby kreację zastępczą dla danych logowania na urządzeniu. Więcej informacji znajdziesz tutaj.

Aparat i multimedia

Dynamiczna głębia ostrości na zdjęciach

Aplikacje mogą teraz żądać obrazu z dynamiczną głębią ostrości, który składa się z pliku JPEG, metadanych XMP związanych z elementami głębi oraz mapy głębi i ufności osadzonych w tym samym pliku. Dzięki temu możesz oferować w aplikacji specjalne opcje rozmycia i efektu bokeh. Dynamiczna głębia ostrości to otwarty format dla ekosystemu. Pracujemy z naszymi partnerami nad udostępnieniem go na urządzeniach z Androidem 10 i nowszym.

Dzięki obrazom z dynamiczną głębią ostrości możesz oferować w aplikacji specjalne opcje rozmycia i efektu bokeh.

Przechwytywanie odtwarzanego 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 do przechwytywania odtwarzanego dźwięku. Oprócz włączania napisów interfejs API umożliwia obsługę popularnych zastosowań, takich jak transmitowanie na żywo rozgrywek. Opracowaliśmy tę nową funkcję z myślą o ochronie prywatności i praw autorskich, dlatego możliwość przechwytywania dźwięku z innej aplikacji jest ograniczona, co daje aplikacjom 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 dodaje obsługę kodeka wideo typu open source AV1, który umożliwia dostawcom multimediów strumieniowe przesyłanie treści wideo wysokiej jakości na urządzenia z Androidem przy mniejszym wykorzystaniu przepustowości. Ponadto Android 10 obsługuje kodowanie dźwięku za pomocą Opus – otwartego, bezpłatnego kodeka zoptymalizowanego pod kątem strumieniowego przesyłania mowy i muzyki – oraz HDR10+ do odtwarzania filmów w technologii High Dynamic Range na urządzeniach, które ją obsługują. Interfejs MediaCodecInfo API wprowadza łatwiejszy sposób określania możliwości renderowania filmów na urządzeniu 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, które przetwarzają dźwięk w języku C++, Android 10 wprowadza natywny interfejs MIDI API do komunikacji z urządzeniami MIDI przez NDK. Ten interfejs API umożliwia pobieranie danych MIDI w ramach wywołania zwrotnego audio za pomocą odczytu nieblokującego, co pozwala na przetwarzanie komunikatów MIDI z niskim opóźnieniem. Wypróbuj przykładową aplikację i kod źródłowy.

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

Android 10 zapewnia większą kontrolę nad przechwytywaniem 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. Jeśli na przykład użytkownik nagrywa film selfie, możesz poprosić o użycie przedniego mikrofonu do nagrywania dźwięku (jeśli jest dostępny). Dodatkowo ten interfejs API wprowadza ustandaryzowany sposób sterowania mikrofonami z zoomem, dzięki czemu aplikacja może kontrolować wymiar pola nagrywania.

Vulkan wszędzie

Android 10 rozszerza wpływ Vulkana dzięki naszej implementacji interfejsu API o niskim narzucie, który działa na wielu platformach i umożliwia tworzenie wysokiej jakości grafiki 3D. Vulkan 1.1 jest teraz wymagany na wszystkich 64-bitowych urządzeniach z Androidem 10 lub nowszym i zalecany na wszystkich urządzeniach 32-bitowych. Widzimy już znaczny wzrost obsługi Vulkan w ekosystemie – wśród urządzeń z Androidem N lub nowszym 53% obsługuje Vulkan 1.0.3 lub nowszy. Dzięki nowemu wymogowi w Androidzie 10 spodziewamy się, że w przyszłym roku wskaźnik ten jeszcze wzrośnie.

Połączenia

Ulepszona łączność peer-to-peer i połączenie z internetem

Przebudowaliśmy stos Wi-Fi, aby poprawić prywatność i wydajność, a także usprawnić typowe przypadki użycia, takie jak zarządzanie urządzeniami IoT i sugerowanie połączeń internetowych – bez konieczności uzyskiwania dostępu do lokalizacji. Interfejsy API połączenia sieciowego ułatwiają zarządzanie urządzeniami IoT przez lokalną sieć 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, z którymi może się połączyć, aby uzyskać dostęp do internetu.

Tryby wydajności Wi-Fi

Aplikacje mogą teraz żądać adaptacyjnego Wi-Fi, włączając tryby wysokiej wydajności i niskiego opóźnienia. Może to być bardzo korzystne, gdy niskie opóźnienie jest ważne dla wygody użytkownika, np. w przypadku gier w czasie rzeczywistym, aktywnych połączeń głosowych i podobnych zastosowań. 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 WifiManager.WifiLock.createWifiLock() z 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 pomagają aplikacjom szybciej się uruchamiać, zużywać mniej pamięci i działać płynniej – bez konieczności wykonywania jakichkolwiek działań z Twojej strony. Profile ART dostarczane przez Google Play umożliwiają wstępną kompilację części aplikacji przez ART, zanim zostanie ona uruchomiona. W środowisku wykonawczym Android 10 dodaje do modułu odzyskiwania pamięci Concurrent Copying (CC) w ART odzyskiwanie pamięci Generational Garbage Collection, aby zwiększyć wydajność odzyskiwania pamięci pod względem czasu i procesora, zmniejszyć liczbę zacięć i pomóc aplikacjom działać lepiej na urządzeniach niższej klasy.

Ten wykres pokazuje procentową poprawę czasu uruchamiania konkretnych aplikacji podczas testów z użyciem profili Play.

Neural Networks API 1.2

Dodaliśmy 60 nowych operacji, w tym ARGMAX, ARGMIN i skwantyzowane LSTM, a także szereg optymalizacji wydajności. To stanowi podstawę do przyspieszenia znacznie większej liczby modeli, takich jak te do wykrywania obiektów i segmentacji obrazów. Współpracujemy z dostawcami sprzętu i popularnymi platformami uczenia maszynowego, takimi jak TensorFlow, aby zoptymalizować i wdrożyć obsługę NNAPI 1.2.

Thermal API

Gdy urządzenia się przegrzewają, mogą ograniczać wydajność procesora lub GPU, co może mieć nieoczekiwany wpływ na aplikacje i gry. W Androidzie 10 aplikacje i gry mogą używać interfejsu Thermal API do monitorowania zmian na urządzeniu i podejmowania działań, które pomogą przywrócić normalną temperaturę. Na przykład aplikacje do odtwarzania strumieniowego mogą zmniejszyć rozdzielczość, szybkość transmisji bitów lub ruch w sieci, aplikacja aparatu może wyłączyć lampę błyskową lub intensywne ulepszanie obrazu, a gra może zmniejszyć liczbę klatek lub teselację wielokątów. Więcej informacji znajdziesz tutaj.

Zgodność dzięki publicznym interfejsom API

Android 10 rozszerza ograniczenia dotyczące interfejsów innych niż SDK, aby aplikacje stopniowo przechodziły na korzystanie wyłącznie z publicznych interfejsów API. Jeśli interfejs, którego obecnie używasz, jest ograniczony, możesz poprosić o nowy publiczny interfejs API dla tego interfejsu. Aby ułatwić Ci przejście na nowy system i zapobiec awariom 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 projektowi Treble, który zapewnia spójny, testowalny interfejs między Androidem a podstawowym kodem urządzenia od producentów urządzeń i procesorów. Dzięki Treble producenci urządzeń mogą szybciej i niższym kosztem udostępniać Androida 10 na urządzeniach zgodnych z Treble.

Android 10 to także pierwsza wersja obsługująca projekt Mainline (oficjalnie nazywany aktualizacjami systemu Google Play), czyli naszą nową technologię, która chroni użytkowników Androida i zapewnia aktualność ich urządzeń dzięki ważnym zmianom w kodzie – bezpośrednio z Google Play. Dzięki aktualizacjom systemowym 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.

Dla deweloperów te aktualizacje w Androidzie 10 oznaczają większą spójność implementacji platformy na różnych urządzeniach, a z czasem – większą jednolitość, która pozwoli obniżyć koszty tworzenia i testowania aplikacji.

Rozpocznij

Pełne zasoby dla deweloperów dotyczące Androida 10 znajdziesz na stronie developer.android.com/10.