Android 10 dla deweloperów

Android 10 opiera się na 3 ważnych motywach. 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. Ponadto Android 10 skupia się na prywatności i bezpieczeństwie i oferuje prawie 50 funkcji, które zapewniają użytkownikom lepszą 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 dla deweloperów i sposobów ich wykorzystania już dziś.

Innowacje i nowe doświadczenia

Dzięki Androidowi 10 możesz korzystać z najnowszych innowacji sprzętowych i programowych, aby tworzyć niesamowite aplikacje.

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 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ń. Interfejsy API dotyczące łączności umożliwiają wykrywanie, czy urządzenie ma połączenie o dużej przepustowości, oraz sprawdzanie, czy jest to połączenie z opłatą. 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ą 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 podać 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ę Wymuś ciemny motyw, która pozwala systemowi dynamicznie tworzyć ciemną wersję na podstawie dotychczasowego 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 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, a do poruszania się po ekranie służą gesty 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 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. 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

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. Szczegóły znajdziesz w przykładowej aplikacji.

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 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 przyznawać 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 również domyślnie losowany 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.

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 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ę.

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 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 opcje 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 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ś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;

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 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 wprowadza prostszy sposób określania 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 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 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 przedniej stronie urządzenia. Interfejs API wprowadza też standardowy sposób sterowania mikrofonami z zoomem, co pozwala aplikacji kontrolować wymiar pola nagrywania.

Vulkan wszędzie

Android 10 zwiększa możliwości Vulkan dzięki wdrożeniu niskobudżetowego, wieloplatformowego interfejsu API do wysokiej wydajności 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. 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. 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

Przekształciliśmy pakiet Wi-Fi, aby poprawić prywatność i wydajność, a także 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, 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 uruchamiać się szybciej, zużywać mniej pamięci i działać płynniej – bez konieczności wykonywania przez Ciebie 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ą zbiórkę elementów, aby zbiórka elementów była bardziej wydajna pod względem czasu i procesora, zmniejszała zacięcia oraz pomagała aplikacjom działać lepiej na urządzeniach tańszych.

Ten wykres pokazuje procentowy spadek czasu uruchamiania określonych 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 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. Teraz w Androidzie 10 aplikacje i gry mogą korzystać z interfejsu The API , aby monitorować zmiany na urządzeniu i podejmować działania, aby 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

W Androidzie 10 nadal wprowadzamy ograniczenia dotyczące interfejsów innych niż SDK, aby aplikacje stopniowo przechodziły na wyłącznie korzystanie 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 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ł 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 zapewnieniu spójności implementacji platformy na różnych urządzeniach, a z czasem – zwiększyć jednolitość, co pozwoli im obniżyć koszty rozwoju i testowania.

Rozpocznij

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