Android 10 dla deweloperów

Android 10 opiera się na 3 ważnych tematach. Po pierwsze, Android 10 wyznacza kierunek rozwoju innowacji mobilnych dzięki zaawansowanemu uczeniu maszynowemu i obsługiwaniu 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. Zawiera prawie 50 funkcji, które zapewniają użytkownikom większą ochronę, przejrzystość i kontrolę. W Androidzie 10 rozszerzono funkcje cyfrowego samopoczucia, aby użytkownicy i ich rodziny mogli lepiej zachować równowagę w stosunku do technologii.

Oto, co Android 10 oferuje deweloperom i jak mogą z tego skorzystać już dziś.

Innowacje i nowe możliwości

Dzięki Androidowi 10 możesz korzystać z najnowszych innowacji sprzętowych i programowych, aby tworzyć niesamowite wrażenia z aplikacji dla użytkowników.

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

Urządzenia składane

Android 10 rozszerza tryb wielozadaniowy o okna aplikacji i zapewnia ciągłość ekranu, aby zachować stan aplikacji podczas składania i rozkładania urządzenia. Android 10 wprowadza wiele ulepszeń w metodach onResumeonPause, aby umożliwić wznawianie działania aplikacji na wiele sposobów i powiadamiać aplikację, gdy ma ona fokus. Zmienia ona też sposób działania atrybutu manifestu resizeableActivity, aby ułatwić zarządzanie wyświetlaniem aplikacji na składanych i dużych ekranach. Aby ułatwić sobie tworzenie aplikacji na urządzenia składane, możesz skonfigurować emulator składanego urządzenia 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

Sieć 5G zapewnia większą prędkość i mniejsze opóźnienie, a Android 10 obsługuje tę technologię i rozszerza dostępne interfejsy API, aby ułatwić Ci korzystanie z tych ulepszeń. Możesz użyć interfejsów API łączności, aby wykryć, czy urządzenie ma połączenie o dużej przepustowości, i sprawdzić, czy jest to połączenie z pomiarem. Dzięki temu Twoje aplikacje i gry mogą zapewniać użytkownikom bogate i realistyczne wrażenia w sieci 5G.

Inteligentna odpowiedź w powiadomieniach

Android 10 korzysta z sztucznej inteligencji na urządzeniu, aby sugerować działania kontekstowe w powiadomieniach, takie jak inteligentne odpowiedzi na wiadomości czy otwieranie mapy powiadomienia na adres. Twoje aplikacje mogą od razu korzystać z tej funkcji bez konieczności podejmowania żadnych działań. Domyślnie inteligentne odpowiedzi i działania udostępniane przez system są wstawiane bezpośrednio do powiadomień. Jeśli chcesz, możesz nadal podawać własne odpowiedzi i działania. Wystarczy zrezygnować z inteligentnych odpowiedzi na poziomie powiadomienia za pomocą metod setAllowGeneratedReplies()setAllowSystemGeneratedContextualActions().

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

Ciemny motyw

Android 10 wprowadza systemowy ciemny motyw, który jest idealny przy słabym oświetleniu i pomaga oszczędzać baterię. Użytkownicy mogą aktywować nowy ciemny motyw w całym systemie, otwierając Ustawienia 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ę wymuszania ciemnego motywu, która pozwala systemowi dynamicznie tworzyć ciemną wersję na podstawie dotychczasowego motywu. Możesz też skorzystać z funkcji DayNight w 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ą opcji Wymuś ciemny motyw.

Nawigacja przy użyciu gestów

Nawigacja za pomocą gestów zapewnia aplikacjom pełny ekran treści.

Android 10 wprowadza tryb nawigacji za pomocą gestów, który eliminuje obszar paska nawigacyjnego i pozwala aplikacjom korzystać z pełnego ekranu, aby zapewnić bogatsze i bardziej wciągające wrażenia. Zachowuje znajome przyciski Wstecz, Ekran główny i Ostatnie, ale zamiast przycisków umożliwia przesuwanie palcem po krawędzi ekranu. Aby płynnie przechodzić na nawigację za pomocą gestów, przesuwaj palcem od krawędzi do krawędzi, a nie za barem nawigacji. Aby to zaimplementować, aplikacje powinny używać interfejsu API setSystemUiVisibility(), aby wyświetlać interfejs na pełnym ekranie, a następnie obsługiwać WindowInsets w odpowiednim zakresie, aby nie zasłaniać ważnych elementów interfejsu. Zacznij optymalizować swoją aplikację już dziś. Więcej informacji znajdziesz w serii postów na blogu.

Panele ustawień

Teraz możesz wyświetlać kluczowe ustawienia systemu bezpośrednio w kontekście aplikacji za pomocą nowego interfejsu API Panelu ustawień. Panel ustawień to pływający interfejs, który wyświetla ustawienia potrzebne użytkownikom, takie jak połączenie z internetem, NFC i głośność dźwięku. Na przykład przeglądarka może wyświetlić panel z ustawieniami łączności, takimi jak tryb samolotowy, Wi-Fi (w tym sieci w pobliżu) i dane mobilne. Aby wyświetlić panel ustawień, wywołaj intencję za pomocą jednej z nowych akcji Settings.Panel.

Skróty udostępniania

Skróty udostępniania umożliwiają szybsze i prostsze udostępnianie, ponieważ użytkownicy mogą przejść bezpośrednio do innej aplikacji, aby udostępnić treści. Deweloperzy mogą publikować cele udostępniania, które uruchamiają określone działanie w ich aplikacjach z dołączonymi treściami. Cele te są wyświetlane użytkownikom w interfejsie udostępniania. Ponieważ są publikowane z wyprzedzeniem, interfejs udostępniania wczytuje się natychmiast po uruchomieniu. Udostępnianie skrótów jest podobne do skrótów do aplikacji i korzysta z tego samego interfejsu API ShortcutInfo. Interfejs API jest też obsługiwany w bibliotece ShareTarget na Androida X. Więcej informacji znajdziesz w aplikacji przykładowej.

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

Prywatność użytkowników

Prywatność jest głównym celem Androida 10, od wzmocnienia zabezpieczeń na platformie po nowe funkcje zaprojektowane z myślą o prywatności. Android 10, który bazuje na poprzednich wersjach, zawiera rozległe zmiany mające na celu ochronę prywatności i zapewnienie użytkownikom większej kontroli. Wprowadziliśmy ulepszone interfejs użytkownika systemu, zaostrzone uprawnienia i ograniczenia dotyczące danych, których mogą używać aplikacje. Szczegółowe informacje o tym, jak uwzględnić te zmiany w swoich aplikacjach, znajdziesz w artykule Zmiany w zasadach prywatności.

Użytkownicy mogą teraz zezwolić na 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 swoimi danymi o lokalizacji dzięki nowej opcji uprawnień. Mogą teraz zezwolić aplikacji na dostęp do lokalizacji tylko wtedy, gdy jest ona aktywna (czynna na pierwszym planie). W przypadku większości aplikacji zapewnia to wystarczający poziom dostępu, a użytkownicy zyskują większą przejrzystość i kontrolę. Więcej informacji o zmianach w lokalizacji znajdziesz w przewodniku dla deweloperów lub w poście na blogu.

Ochrona danych o lokalizacji w skanowaniu sieci – większość interfejsów API do skanowania sieci wymagała już uprawnień do określania przybliżonej lokalizacji. Android 10 zwiększa ochronę tych interfejsów API, wymagając uprawnienia do dokładnej lokalizacji.

Zapobieganie śledzenia urządzenia – aplikacje nie mają już dostępu do identyfikatorów urządzeń, których nie można zresetować i których nie można wykorzystać do śledzenia, w tym numeru IMEI, numeru seryjnego i podobnych identyfikatorów. Adres MAC urządzenia jest też domyślnie losowo generowany podczas łączenia z sieciami Wi-Fi. Zapoznaj się ze sprawdzonymi metodami, aby wybrać odpowiednie identyfikatory do danego przypadku użycia. Szczegółowe informacje znajdziesz tutaj.

Bezpieczeństwo 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 danymi aplikacji w nich zawartymi. Aplikacje mogą przechowywać własne pliki w prywatnych piaskownicach, ale aby uzyskać dostęp do udostępnionych plików multimedialnych, muszą korzystać z MediaStore, a aby uzyskać dostęp do udostępnionych plików w nowej kolekcji Pobrane, muszą korzystać z okna wyboru plików systemowych. Więcej informacji znajdziesz tutaj.

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

Bezpieczeństwo

Android 10 wprowadza kilka funkcji, które zapewniają większą ochronę użytkowników dzięki zaawansowanemu szyfrowaniu, wzmocnieniu platformy i uwierzytelnianiu. 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ść, Android 10 zawiera Adiantum, czyli nasz nowy tryb szyfrowania.

TLS 1.3 domyślnie – Android 10 włącza też domyślnie TLS 1.3, czyli ważną zmianę w standardzie TLS, która przynosi korzyści w zakresie wydajności i zwiększoną ochronę.

Utrwalenie platformy – Android 10 zawiera też utrwalenie kilku obszarów platformy, które są kluczowe dla bezpieczeństwa.

Ulepszone dane biometryczne – Android 10 rozszerza ramy BiometricPrompt, aby obsługiwać metody uwierzytelniania biernego, takie jak rozpoznawanie twarzy, oraz dodawać utajone i jawne przepływy uwierzytelniania. W przypadku procesu jawnego użytkownik musi wyraźnie potwierdzić transakcję w urządzeniu TEE podczas uwierzytelniania. Proces domyślny jest lżejszą alternatywą dla transakcji z uwierzytelnianiem biernym. Android 10 ulepsza też alternatywne metody logowania na urządzeniu w razie potrzeby. Więcej informacji znajdziesz tutaj.

Aparat i multimedia

Dynamiczna głębia ostrości zdjęć

Aplikacje mogą teraz żądać obrazu 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 zakodowanej w tym samym pliku. Dzięki nim możesz oferować w aplikacji specjalne opcje rozmycia i bokeh. Dynamiczna głębia ostrości to otwarty format w ekosystemie. Współpracujemy z partnerami nad udostępnieniem go na urządzeniach z Androidem 10 lub nowszym.

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

Rejestrowanie odtwarzania dźwięku

Teraz każda aplikacja odtwarzająca dźwięk może umożliwiać innym aplikacjom przechwytywanie strumienia audio za pomocą nowego interfejsu API do przechwytywania odtwarzania dźwięku. Oprócz umożliwienia tworzenia napisów interfejs API umożliwia obsługę popularnych przypadków użycia, takich jak transmisje gier na żywo. Stworzyliśmy tę nową funkcję z myślą o prywatności i ochronie praw autorskich, dlatego możliwości przechwytywania dźwięku z innej aplikacji są ograniczone, 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 obsługuje kodek wideo open source AV1, który umożliwia dostawcom treści przesyłanie strumieniowe treści wideo wysokiej jakości na urządzenia z Androidem przy użyciu mniejszej przepustowości. Android 10 obsługuje też kodowanie dźwięku za pomocą Opus – otwartego, wolnego od opłat licencyjnych kodeka zoptymalizowanego pod kątem strumieniowania mowy i muzyki – oraz HDR10+ do obsługi wideo o wysokim zakresie dynamicznym 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 częstotliwości klatek.

Natywne API MIDI

W Androidzie 10 aplikacje, które przetwarzają dźwięk w C++, mogą korzystać z natywnego interfejsu MIDI API do komunikacji z urządzeniami MIDI za pomocą NDK. Ten interfejs API umożliwia pobieranie danych MIDI w ramach wywołania zwrotnego audio za pomocą odczytu nieblokującego, co umożliwia przetwarzanie komunikatów MIDI z niską latencją. Wypróbuj to na przykładowej aplikacji i kodzie źródłowym dostępnym tutaj.

Mikrofony kierunkowe z możliwością przybliżania

Android 10 daje większą kontrolę nad rejestrowaniem dźwięku dzięki nowemu interfejsowi MicrophoneDirection API. Za pomocą interfejsu API możesz określić preferowany kierunek mikrofonu podczas nagrywania dźwięku. Jeśli na przykład użytkownik robi selfie, możesz poprosić o użycie mikrofonu (jeśli jest dostępny) na przednim panelu. Interfejs API wprowadza też standardowy sposób sterowania mikrofonami z zoomem, co pozwala aplikacji kontrolować wymiar pola nagrywania.

Vulkan wszędzie

Android 10 rozszerza wpływ Vulkana dzięki naszej implementacji interfejsu API o niskim obciążeniu, który umożliwia tworzenie wydajnej grafiki 3D. Vulkan 1.1 jest teraz wymagany na wszystkich urządzeniach 64-bitowych z Androidem w wersji 10 lub nowszej oraz zalecany na wszystkich urządzeniach 32-bitowych. W ekosystemie widać już znaczny wzrost obsługi Vulkana – na urządzeniach z Androidem N lub nowszym 53% z nich obsługuje Vulkana 1.0.3 lub nowszego. Ze względu na nowy wymóg w Androidzie 10 spodziewamy się, że w przyszłym roku jeszcze bardziej wzrośnie liczba użytkowników.

Łączność

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

Zmodyfikowaliśmy pakiet Wi-Fi, aby poprawić ochronę prywatności i wydajność, a także aby ulepszyć typowe przypadki użycia, takie jak zarządzanie urządzeniami IoT i proponowanie połączeń z internetem – bez konieczności uzyskiwania uprawnień do lokalizacji. Interfejsy API do obsługi połączeń sieciowych ułatwiają zarządzanie urządzeniami IoT w lokalnej sieci Wi-Fi, aby można było korzystać z 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 do łączenia się z internetem.

Tryby wydajności Wi-Fi

Aplikacje mogą teraz żądać adaptacyjnego Wi-Fi, włączając tryby wysokiej wydajności i niskiej latencji. Mogą one być bardzo przydatne w przypadku, gdy niskie opóźnienie jest ważne dla wygody użytkowników, np. w grach w czasie rzeczywistym, aktywnych połączeniach głosowych i podobnych zastosowaniach. Platforma współpracuje z oprogramowaniem układowym urządzenia, aby spełniać wymagania przy minimalnym zużyciu energii. Aby korzystać z nowych trybów wydajności, wywołaj metodę WifiManager.WifiLock.createWifiLock() z parametrami 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łniać wymagania dotyczące minimalnego zużycia energii.

Podstawy Androida

Optymalizacja ART

Ulepszenia w czasie wykonywania ART pomagają aplikacjom szybciej się uruchamiać, zużywać mniej pamięci i płynniej działać – bez konieczności podejmowania przez Ciebie żadnych działań. Profili ART dostarczanych przez Google Play, dzięki którym ART może wstępnie skompilować części aplikacji jeszcze przed jej uruchomieniem. W czasie działania Android 10 dodaje do równoległego kopiowania (CC) w ART generacyjną kolekcję odpadów, aby zwiększyć wydajność procesu usuwania odpadów pod względem czasu i procesora, zmniejszyć zacięcia oraz poprawić działanie aplikacji na urządzeniach o niższej wydajności.

Ten wykres pokazuje procentowy spadek czasu uruchamiania poszczególnych aplikacji w przypadku testów z użyciem profili Play.

Neural Networks API 1.2

Dodaliśmy 60 nowych operacji, w tym ARGMAX, ARGMIN i kwantyzację LSTM, a także szereg ulepszeń wydajności. Stanowi to podstawę do przyspieszenia znacznie szerszego zakresu modeli, takich jak modele 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ę przegrzeją, mogą ograniczyć działanie procesora lub karty graficznej, co może mieć nieoczekiwany wpływ na działanie aplikacji i gier. 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 strumieniowego przesyłania danych mogą zmniejszyć rozdzielczość/szybkość transmisji bitów lub ruch sieciowy, aplikacja do obsługi aparatu może wyłączyć lampę błyskową lub intensywne wzbogacanie obrazu, a gra może zmniejszyć częstotliwość klatek lub tesselację wielokątów. Więcej informacji znajdziesz tutaj.

Zgodność dzięki publicznym interfejsom API

Android 10 wprowadza dalsze ograniczenia interfejsów innych niż SDK, aby aplikacje stopniowo korzystały tylko 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 i zapobiec nieprawidłowemu działaniu aplikacji, włączamy te ograniczenia tylko wtedy, gdy Twoja aplikacja jest kierowana na Androida 10 (interfejs API 29). Więcej informacji o ograniczeniach znajdziesz w przewodniku dla programistów.

Szybsze aktualizacje i nowocześniejszy kod

Android 10 został stworzony 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 pochodzącym od producentów urządzeń i producentów układów scalonych. Dzięki Treble producenci urządzeń mogą szybciej i taniej wdrożyć Androida 10 na urządzeniach zgodnych z Treble.

Android 10 to też pierwsza wersja, która obsługuje Project Mainline (oficjalnie nazywany aktualizacjami systemu Google Play), czyli naszą nową technologię zapewniającą bezpieczeństwo użytkowników Androida i aktualizowanie ich urządzeń o ważne zmiany kodu 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.

Te aktualizacje w Androidzie 10 powinny pomóc deweloperom w zapewnieniu spójności implementacji platformy na różnych urządzeniach, a z czasem – zwiększyć jednolitość, co pozwoli obniżyć koszty rozwoju i testowania.

Rozpocznij

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