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 przegląd funkcji Androida 10 przeznaczonych dla deweloperów i sposobów ich wykorzystania 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 urządzeń i innych urządzeń z dużym ekranem.

Urządzenia składane

Android 10 rozszerza tryb wielozadaniowy na wszystkie 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 składanych urządzeń znajdziesz w przewodniku dla programistów.

Sieci 5G

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

Inteligentna odpowiedź w powiadomieniach

Android 10 wykorzystuje uczenie maszynowe na urządzeniu, aby sugerować działania kontekstowe w powiadomieniach, takie jak inteligentne odpowiedzi na wiadomości czy otwieranie mapy dla adresu w powiadomieniu. Twoje aplikacje mogą korzystać z tej funkcji od razu, bez konieczności wykonywania jakichkolwiek 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 w przypadku poszczególnych powiadomień, używając funkcji 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ę Wymuś ciemny motyw, 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 umożliwia nawigację za pomocą przesuwania palcem po krawędzi ekranu zamiast przycisków. 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 cyklu 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 ShortcutInfo API. Interfejs API jest też obsługiwany w bibliotece ShareTarget na AndroidaX. 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 opiera się na poprzednich wersjach, zawiera rozległe zmiany, które mają na celu ochronę prywatności i zapewnienie użytkownikom większej kontroli. W ramach tych zmian poprawiliśmy interfejs użytkownika systemu, zaostrzyliśmy zasady dotyczące uprawnień i ograniczyliśmy dostęp aplikacji do danych. Szczegółowe informacje o tym, jak uwzględnić te zmiany w swoich aplikacjach, znajdziesz w artykule o zmianach w zakresie 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 jej używają (czyli gdy działa ona w planie pierwszym). W przypadku większości aplikacji zapewnia to wystarczający poziom dostępu, a dla użytkowników oznacza to większą przejrzystość i kontrolę. Więcej informacji o zmianach w lokalizacjach 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 śledzeniu urządzenia – aplikacje nie mają już dostępu do identyfikatorów urządzeń, których nie można zresetować i które 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 muszą używać MediaStore, aby uzyskać dostęp do udostępnionych plików multimedialnych, oraz okna wyboru plików systemowych, aby uzyskać dostęp do udostępnionych plików w nowej kolekcji Pobrane. Więcej informacji znajdziesz tutaj.

Blokowanie niechcianych przerw – Android 10 uniemożliwia uruchamianie 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ą użytkownikom większy poziom bezpieczeństwa 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ą wersję protokołu TLS, która zapewnia lepsze osiągi i lepszą 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 wyraźne przepływy uwierzytelniania. W przypadku procesu jawnego użytkownik musi wyraźnie potwierdzić transakcję w urządzeniu TEE podczas uwierzytelniania. Proces domyślny to lżejsza alternatywa dla transakcji z uwierzytelnianiem biernym. Android 10 ulepsza też alternatywne dane logowania na urządzeniu, gdy jest to potrzebne. 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 metadanych JPEG, XMP związanych z elementami związanymi z głębią oraz z 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 zezwalać innym aplikacjom na 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 mediów przesyłanie strumieniowo treści wideo wysokiej jakości na urządzenia z Androidem przy użyciu mniejszej ilości danych. 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.

Natywny interfejs MIDI API

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 możliwością powiększenia, co pozwala aplikacji kontrolować pole nagrywania.

Vulkan wszędzie

Android 10 rozszerza wpływ Vulkana dzięki naszej implementacji wieloplatformowego interfejsu API o niskim obciążeniu, który zapewnia wydajną grafikę 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 – wśród urządzeń z Androidem N lub nowszym 53% obsługuje Vulkana w wersji 1.0.3 lub nowszej. 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 sieci lokalnej Wi-Fi w celu wykonywania funkcji peer-to-peer, takich jak konfigurowanie, pobieranie czy drukowanie. Interfejsy API dotyczące sugestii sieci umożliwiają aplikacjom wyświetlanie użytkownikowi preferowanych sieci Wi-Fi, aby umożliwić mu połączenie 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 ma znaczenie dla wrażeń użytkownika, 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 uruchamiać się szybciej, zużywać mniej pamięci i działać płynniej – bez konieczności podejmowania jakichkolwiek 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 niższych klasy.

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 kwantyzacja LSTM, a także szereg ulepszeń wydajności. Stanowi to podstawę do przyspieszenia działania znacznie większej liczby 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ć flash lub intensywne wzbogacanie obrazu, a gra może zmniejszyć częstotliwość wyświetlania 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ł opracowany 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 ujednoliceniu implementacji platformy na różnych urządzeniach, a z czasem także w zmniejszeniu kosztów rozwoju i testowania.

Rozpocznij

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