Android 10 dla deweloperów

Android 10 opiera się na 3 ważnych motywach. Po pierwsze Android 10 wyznacza granicę innowacji 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ą sieci 5G. Ponadto Android 10 koncentruje się na prywatności i bezpieczeństwie, udostępniając prawie 50 funkcji, które zapewniają użytkownikom lepszą ochronę, przejrzystość i kontrolę. Oprócz tego Android 10 rozszerza funkcje kontroli cyfrowej równowagi, które ułatwiają osobom i rodzinom znalezienie właściwej równowagi między technologią.

Oto informacje o tym, co deweloperzy oferują w Androidzie 10 i jak już dziś zacząć z niego korzystać.

Innowacje i nowe doświadczenia

Android 10 pozwala korzystać z najnowszych innowacji sprzętowych i oprogramowania, aby tworzyć niesamowite aplikacje dla użytkowników.

Android 10 pozwala zoptymalizować aplikacje pod kątem urządzeń składanych i innych urządzeń z dużym ekranem.

Urządzenia składane

Dzięki obsłudze trybu wielu okien Android 10 umożliwia wykonywanie wielu zadań jednocześnie w różnych oknach aplikacji i zapewnia ciągłość ekranu, aby zachować stan aplikacji podczas zamykania i otwierania urządzenia. W Androidzie 10 wprowadziliśmy szereg ulepszeń w funkcjach onWznów i onPause, które umożliwiają wielokrotne wznawianie oraz powiadamianie aplikacji o zaznaczeniu. Zmienia się również sposób działania atrybutu manifestu resizeableActivity, aby ułatwić Ci zarządzanie sposobem wyświetlania aplikacji na urządzeniach składanych i dużych. Aby ułatwić sobie tworzenie na urządzenia składane, możesz skonfigurować składany emulator 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 ma zapewnić niezmiennie większą prędkość i mniejsze opóźnienia. Android 10 dodaje obsługę platformy do 5G i rozszerza istniejące interfejsy API, aby umożliwić wykorzystanie tych ulepszeń. Za pomocą interfejsów API do połączeń możesz wykryć, czy urządzenie ma połączenie o dużej przepustowości i czy jest ono objęte pomiarem. Dzięki nim Twoje aplikacje i gry mogą być atrakcyjne dla użytkowników korzystających z sieci 5G.

Inteligentna odpowiedź w powiadomieniach

Android 10 używa uczenia maszynowego na urządzeniu do sugerowania działań kontekstowych w powiadomieniach, takich jak inteligentne odpowiedzi na wiadomości lub otwieranie mapy adresu w powiadomieniu. Twoje aplikacje mogą zacząć korzystać z tej funkcji od razu – nie musisz nic robić. Inteligentne odpowiedzi i działania dostarczane przez system są domyślnie umieszczane bezpośrednio w powiadomieniach. Nadal możesz przesyłać własne odpowiedzi i działania. Po prostu rezygnować z Inteligentnej odpowiedzi dla poszczególnych powiadomień za pomocą setAllowGeneratedReplies() i setAllowSystemGeneratedContextActions().

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

Ciemny motyw

Android 10 dodaje ciemny motyw obowiązujący w całym systemie, który idealnie sprawdza się przy słabym oświetleniu i pomaga oszczędzać baterię. Użytkownicy mogą aktywować nowy ciemny motyw obowiązujący w całym systemie, otwierając Ustawienia lub włączając Oszczędzanie baterii. Interfejs użytkownika systemu zmieni się na ciemny i włączy ciemny motyw aplikacji, które go obsługują. Możesz utworzyć własny ciemny motyw aplikacji lub włączyć nową funkcję Force Dark, która umożliwia dynamiczne tworzenie ciemnej wersji przez system na podstawie istniejącego motywu. Możesz też skorzystać z funkcji DayNight dostępnej 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 utworzyć ciemny motyw aplikacji za pomocą funkcji Wymuś tryb ciemny.

Nawigacja przy użyciu gestów

Nawigacja przy użyciu gestów wyświetla aplikacjom pełny ekran, aby wyświetlić treści.

Android 10 wprowadza w pełni tryb nawigacji z użyciem gestów, który eliminuje obszar paska nawigacyjnego i umożliwia aplikacjom korzystanie z pełnego ekranu, aby zapewniać jeszcze lepsze wrażenia użytkownika. Zamiast widocznych przycisków Wstecz, Ekran główny i Ostatnie poruszają się po krawędziach. Aby płynnie łączyć się z nawigacją przy użyciu gestów, musisz przeprowadzić całą akcję i zarysować się za paskiem nawigacyjnym, aby zapewnić sobie realistyczne wrażenia. W tym celu aplikacje powinny używać interfejsu API setSystemUiVisibility() do wyświetlania w trybie pełnoekranowym, a następnie odpowiednio korzystać z interfejsu WindowInsets, aby mieć pewność, że ważne elementy interfejsu nie są zasłonięte. Rozpocznij optymalizację aplikacji już dziś i zapoznaj się z naszą serią postów na blogu.

Panele ustawień

Teraz możesz wyświetlać kluczowe ustawienia systemu bezpośrednio w kontekście aplikacji za pomocą nowego interfejsu Settings Panel API. Panel ustawień to pływający interfejs, który wywołujesz ustawienia, których użytkownicy mogą potrzebować, takie jak połączenie z internetem, NFC i 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ń, wystarczy uruchomić intencję z jednym z nowych działań Settings.Panel (Ustawienia).

Skróty udostępniania

Udostępnianie skrótów sprawia, że udostępnianie jest szybsze i łatwiejsze, ponieważ użytkownicy mogą szybko i łatwo otworzyć inną aplikację. Deweloperzy mogą publikować cele udostępniania, które uruchamiają określone działanie w ich aplikacjach z dołączonymi treściami. Są one widoczne dla użytkowników w interfejsie udostępniania. Ponieważ są one publikowane z wyprzedzeniem, interfejs udostępniania wczytuje się natychmiast po uruchomieniu. Udostępnianie skrótów działa podobnie do skrótów do aplikacji i korzysta z tego samego interfejsu ShortcutInfo API. Ten interfejs API jest również obsługiwany w bibliotece ShareTarget AndroidX. Szczegóły znajdziesz w przykładowej aplikacji.

Skróty udostępniania umożliwiają użytkownikom przechodzenie bezpośrednio do konkretnych działań w aplikacjach z dołączonymi treściami.

Prywatność użytkowników

Ochrona prywatności jest na Androidzie 10 centralnym celem. Od silniejszych zabezpieczeń platformy po nowe funkcje zaprojektowane z myślą o ochronie prywatności. Oprócz poprzednich wersji Android 10 zawiera szeroko zakrojone zmiany chroniące prywatność i zapewniające użytkownikom większą kontrolę, takie jak ulepszony interfejs systemu, bardziej rygorystyczne uprawnienia oraz ograniczenia dotyczące danych, z których mogą korzystać aplikacje. Zapoznaj się ze zmianami w ochronie prywatności, aby dowiedzieć się, jak obsługiwać te funkcje w swoich aplikacjach.

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

Zapewnianie użytkownikom większej kontroli nad danymi o lokalizacji – dzięki nowej opcji uprawnień użytkownicy mają większą kontrolę nad danymi o lokalizacji – mogą teraz zezwolić aplikacji na dostęp do lokalizacji tylko wtedy, gdy jest faktycznie używana (działająca na pierwszym planie). W przypadku większości aplikacji taki poziom dostępu jest wystarczający, natomiast dla użytkowników jest to duża poprawa przejrzystości i kontroli. Więcej informacji o zmianach lokalizacji znajdziesz w przewodniku dla programistów lub w naszym 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ę związanych z tymi interfejsami API, wymagając zamiast tego 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 ich IMEI, numer seryjny i podobne identyfikatory. Poza tym przy połączeniu z sieciami Wi-Fi adres MAC urządzenia jest domyślnie losowy. Zapoznaj się ze sprawdzonymi metodami, aby wybrać odpowiednie identyfikatory dla danego przypadku użycia. Szczegóły znajdziesz tutaj.

Zabezpieczanie danych użytkowników w pamięci zewnętrznej – w Androidzie 10 wprowadzono szereg zmian, które dają 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ą korzystać z MediaStore, aby mieć dostęp do udostępnionych plików multimedialnych, oraz używać systemowego selektora plików, aby uzyskać 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 przeskakują na pierwszy plan i zajmują uwagę innej aplikacji. Więcej informacji znajdziesz tutaj.

Zabezpieczenia

Android 10 wprowadza szereg funkcji, które zwiększają bezpieczeństwo użytkowników dzięki nowym szyfrowaniu, wzmacnianiu zabezpieczeń i uwierzytelniania. Więcej informacji o aktualizacjach zabezpieczeń do Androida 10 znajdziesz tutaj.

Szyfrowanie pamięci – wszystkie zgodne urządzenia wprowadzone na rynek z Androidem 10 muszą szyfrować dane użytkowników. Aby zwiększyć efektywność tej funkcji, Android 10 obejmuje Adiantum – nasz nowy tryb szyfrowania.

Domyślnie TLS 1.3 – Android 10 domyślnie włącza protokół TLS 1.3. Jest to duża wersja standardu TLS, zapewniająca lepszą wydajność i wyższe zabezpieczenia.

Wzmocnienie działania platformy – Android 10 obejmuje również zabezpieczenia w kilku obszarach platformy o krytycznym znaczeniu dla bezpieczeństwa.

Ulepszone dane biometryczne – Android 10 rozszerza platformę BiometricPrompt o obsługę pasywnych metod uwierzytelniania, takich jak twarz, oraz dodawanie niejawnych i jawnych procesów uwierzytelniania. W ramach jawnego przepływu użytkownik musi podczas uwierzytelniania bezpośrednio potwierdzić transakcję w TEE. Przepływ niejawny jest mniej wymagającą alternatywą w przypadku transakcji z uwierzytelnianiem pasywnym. Android 10 poprawia też w razie potrzeby opcję zastępczą danych logowania do urządzenia. Więcej informacji znajdziesz tutaj.

Aparat i multimedia

Dynamiczna głębia zdjęć

Aplikacje mogą teraz żądać obrazu głębi dynamicznej, który składa się z pliku JPEG i metadanych XMP związanych z elementami dotyczącymi głębi oraz mapy głębi i pewności umieszczonej w tym samym pliku. Dzięki nim możesz oferować w swojej aplikacji specjalistyczne opcje rozmycia i efektu bokeh. Dynamiczna głębia to otwarty format dla ekosystemu. Współpracujemy z naszymi partnerami, aby wprowadzić go na urządzenia z Androidem 10 i nowszymi.

Dzięki obrazowi z dynamiczną głębią możesz oferować w swojej aplikacji specjalistyczne opcje rozmycia i bokeh.

Przechwytywanie odtwarzania dźwięku

Teraz każda aplikacja odtwarzająca dźwięk może umożliwić innym aplikacjom przechwytywanie strumienia audio za pomocą nowego interfejsu API do przechwytywania odtwarzania dźwięku. Oprócz włączenia napisów interfejs API umożliwia obsługę popularnych przypadków użycia, takich jak transmitowanie gier na żywo. Stworzyliśmy tę nową funkcję z myślą o prywatności i ochronie praw autorskich, dlatego możliwość rejestrowania dźwięku z innej aplikacji jest ograniczona. Aplikacje mają wtedy 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

W Androidzie 10 dodano obsługę kodeka wideo typu open source AV1, który umożliwia dostawcom multimediów strumieniowanie wysokiej jakości treści wideo na urządzenia z Androidem przy użyciu mniejszej przepustowości. Android 10 obsługuje też kodowanie dźwięku Opus – otwarty, bezpłatny kodek zoptymalizowany do strumieniowego przesyłania mowy i muzyki, a także HDR10+ na urządzeniach, które go obsługują. Interfejs MediaCodecInfo API wprowadza prostszy sposób określania możliwości renderowania wideo na urządzeniu z Androidem. W przypadku każdego kodeka można uzyskać listę obsługiwanych rozmiarów i liczby klatek.

Natywny interfejs MIDI API

W aplikacjach, które przetwarzają dźwięk w języku C++, Android 10 wprowadza natywny interfejs MIDI API umożliwiający komunikację z urządzeniami MIDI za pomocą NDK. Ten interfejs API umożliwia pobieranie danych MIDI w ramach wywołania zwrotnego audio z użyciem nieblokującego odczytu, co pozwala na przetwarzanie wiadomości MIDI z krótkim czasem oczekiwania. Wypróbuj to za pomocą przykładowej aplikacji i kodu źródłowego.

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

Android 10 zapewnia większą kontrolę nad nagrywaniem 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 selfie, możesz poprosić o używanie przedniego mikrofonu do nagrywania dźwięku (jeśli taki mikrofon istnieje). Dodatkowo ten interfejs API wprowadza ustandaryzowany sposób sterowania mikrofonami z możliwością powiększania, dzięki czemu aplikacja ma kontrolę nad wymiarem pola nagrywania.

Wszędzie Vulkan

Android 10 zwiększa możliwości Vulkan dzięki wdrożeniu niskobudżetowego, wieloplatformowego interfejsu API do wysokiej wydajności grafiki 3D. Interfejs Vulkan 1.1 jest teraz wymagany na wszystkich 64-bitowych urządzeniach z Androidem 10 lub nowszym oraz jest zalecaną wersją dla wszystkich urządzeń 32-bitowych. Widzimy już znaczny wzrost liczby Vulkan w ekosystemie – 53% urządzeń z Androidem N lub nowszym obsługuje Vulkan w wersji 1.0.3 lub nowszej. Spodziewamy się, że w nadchodzącym roku jeszcze bardziej zwiększymy rozpowszechnienie Androida 10.

Połączenia

Większa łączność peer-to-peer i łączność z internetem

Zmodyfikowaliś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ń z internetem – bez konieczności dostępu do lokalizacji. Interfejsy API połączeń sieciowych ułatwiają zarządzanie urządzeniami IoT przez lokalną sieć Wi-Fi na potrzeby funkcji peer-to-peer, takich jak konfigurowanie, pobieranie i drukowanie. Interfejsy API sugestii sieciowych pozwalają aplikacjom wyświetlać użytkownikowi preferowane sieci Wi-Fi na potrzeby połączenia z internetem.

Tryby wydajności Wi-Fi

Aplikacje mogą teraz żądać adaptacyjnej sieci Wi-Fi, włączając tryby wysokiej wydajności i niskiego opóźnienia. Mogą one być bardzo przydatne, gdy duże znaczenie ma niewielkie opóźnienie, np. granie w czasie rzeczywistym, aktywne połączenia głosowe i podobne przypadki użycia. Platforma współpracuje z oprogramowaniem urządzenia, aby spełnić wymagania przy jak najniższym zużyciu energii. Aby użyć nowych trybów wydajności, wywołaj WifiManager.WifiLock.createWifiLock() z użyciem WIFI_MODE_FULL_LOW_LATENCY lub WIFI_MODE_FULL_HIGH_PERF. W tych trybach platforma współpracuje z oprogramowaniem urządzenia, aby spełniać wymagania przy minimalnym zużyciu energii.

Podstawy Androida

Optymalizacja reklam ART

Udoskonalenia w środowisku wykonawczym ART sprawiają, że aplikacje uruchamiają się szybciej, zużywają mniej pamięci i działają płynniej, a przy tym nie wymagają żadnych działań z Twojej strony. Profile ART dostarczone przez Google Play pozwalają ART wstępnie skompilować części aplikacji jeszcze przed jej uruchomieniem. W czasie działania Android 10 dodaje śmieciowe pobieranie danych z generatywnej zawartości do modułu Śmieci w klasycznej wersji ART.

Ten wykres przedstawia procentową poprawę czasu uruchamiania określonych aplikacji w testach z użyciem profili Play.

Neural Networks API 1.2

Dodaliśmy 60 nowych operacji, w tym ARGMAX, ARGMIN i poddane kwantyzacji LSTM, a także różne optymalizacje wydajności. Stanowi to podstawę do szybszego działania znacznie szerszego zakresu modeli, takich jak wykrywanie obiektów i segmentacja 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 się nagrzeją, mogą spowalniać procesor lub GPU, co może w nieoczekiwany sposób wpływać na działanie aplikacji i gier. Teraz w Androidzie 10 aplikacje i gry mogą korzystać z interfejsu Heat API , aby monitorować zmiany na urządzeniu i podejmować działania, aby przywrócić normalną temperaturę. Na przykład aplikacje do odtwarzania strumieniowego mogą zmniejszyć rozdzielczość lub szybkość transmisji bitów albo zmniejszyć ruch sieciowy, aplikacja aparatu może wyłączyć lampę błyskową lub intensywne ulepszanie obrazu, a gra może zmniejszyć liczbę klatek lub nakładanie wielokąta. Więcej informacji znajdziesz tutaj.

Zgodność przez publiczne interfejsy API

W Androidzie 10 ograniczenia dotyczące interfejsów innych niż SDK są cały czas dodawane, dzięki czemu aplikacje stopniowo zaczynają korzystać tylko z publicznych interfejsów API. Jeśli dostęp do interfejsu, 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 nową wersję i zapobiegać psuciu aplikacji, włączamy ograniczenia tylko wtedy, gdy Twoja 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ł stworzony z myślą o szybszych aktualizacjach dzięki Project Treble. Zapewnia spójny i możliwy do testowania interfejs między Androidem a kodem urządzenia od producentów urządzeń i krzemów. Dzięki Treble producenci urządzeń mogą szybciej i taniej wprowadzić Androida 10 na urządzenia zgodne z Treble.

Android 10 to też pierwsza wersja obsługująca Project Mainline (oficjalną nazwę aktualizacji systemu Google Play), czyli naszą nową technologię zabezpieczania użytkowników Androida i dbania o aktualność ich urządzeń przez wprowadzanie ważnych zmian w kodzie. Wszystko to jest dostępne bezpośrednio w 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łnych aktualizacji systemu przez producenta urządzenia.

W przypadku deweloperów spodziewamy się, że te aktualizacje w Androidzie 10 pomogą zapewnić spójność implementacji platformy na różnych urządzeniach, a z czasem ujednolicić je, co zmniejszy koszty programowania i testowania.

Rozpocznij

Wszystkie materiały dla deweloperów dotyczące Androida 10 znajdziesz na stronie developer.android.com/10.