Na tej stronie znajdziesz podsumowanie najważniejszych funkcji w wersji Androida 10 oraz linki do dodatkowych informacji. Podsumowania funkcji są uporządkowane według miejsca, w którym znajdują się ich dokumenty w tej witrynie.
Build
java_sdk_library
Android 10 wprowadza java_sdk_library
, nową regułę kompilacji, która rozwiązuje problemy z kompatybilnością w przypadku udostępnionych bibliotek Java. Producenci urządzeń mogą używać tego mechanizmu w przypadku własnych udostępnionych bibliotek Java, aby zachować zgodność wsteczną swoich interfejsów API.
Architektura
Komponenty systemu modułowego
Android 10 modularyzuje niektóre komponenty systemu Android i umożliwia ich aktualizowanie poza normalnym cyklem wydawniczym Androida. Oto niektóre z modułów:
- Android Runtime
- Conscrypt
- Resolver DNS
- DocumentsUI
- ExtServices
- Media
- ModuleMetadata
- Nawiązywanie kontaktów
- PermissionController
- Dane strefy czasowej
Warstwa abstrakcji sprzętowej (HAL)
Android 10 dodaje obsługę HAL-i, które automatycznie się wyłączają, gdy nie mają klientów.
Bąbelki
Interfejs ABI
Android 10 obsługuje nowe narzędzia do monitorowania interfejsu ABI, które pomagają porównywać, śledzić i ograniczać zmiany w interfejsie ABI jądra wpływające na zgodność z modułami jądra.
Android 10 wprowadza też oparty na symbolach sprawdzanie użycia interfejsu ABI. Sprawdzanie może wykrywać nieaktualne wstępnie skompilowane pliki binarne w czasie kompilacji, dzięki czemu deweloperzy bibliotek współdzielonych mogą wiedzieć, które wstępnie skompilowane pliki binarne mogą zostać uszkodzone przez ich zmianę i które z nich należy ponownie skompilować.
Demon Live-Lock na Androidzie
Android 10 zawiera demona blokady na żywo Androida (llkd), który ma wykrywać i łagodzić zakleszczenia jądra.
vDSO32 na ARM64
Android 10 obsługuje korzystanie z vDSO32 na 64-bitowych jądrach, co zapewnia o 0,4% dłuższy czas pracy na baterii i inne ulepszenia wydajności.
Wpisy fstab dla partycji montowanych wcześniej
Android 10 wymaga, aby urządzenia określały wpisy fstab
dla wcześniej zamontowanych partycji za pomocą pliku fstab
w pierwszym etapie dysku RAM.
HIDL
Przenoszenie BroadcastQueue
Android 10 zawiera nową kolejkę offload BroadcastQueue
oprócz dotychczasowych kolejek background i foreground. Kolejka przeniesienia ma taki sam priorytet i takie samo zachowanie limitu czasu jak kolejka w tle. Aby zapobiec blokowaniu kolejki w tle, w której mogą się pojawiać bardziej interesujące lub widoczne dla użytkownika transmisje, kolejka przeniesiona obsługuje transmisję BOOT_COMPLETED
, której wiele aplikacji nasłuchuje i która może trwać długo.
Kolejka wyładowania obsługuje obecnie tylko transmisję BOOT_COMPLETED
, ale może obsługiwać inne długie transmisje.
Usługa SystemSuspend
Android 10 zastępuje wątek w libsuspend
odpowiedzialny za inicjowanie zawieszenia systemu usługą HIDL SystemSuspend. Ta implementacja oferuje funkcje równoważne poprzednim wersjom, a jednocześnie korzysta z zalet infrastruktury HIDL Androida.
safe_union w HIDL
Android 10 wprowadza w HIDL typ safe_union
, który jest typem unii z jawnie oznaczonymi tagami.
Konfiguracja
Warstwa HAL ConfigStore
Android 10 wycofuje ConfigStore HAL ze względu na duże zużycie pamięci i trudności w użytkowaniu. Zastępuje go właściwościami systemu.
Config File Schema API
Platforma Android zawiera dużą liczbę plików XML do przechowywania danych konfiguracyjnych. Wiele plików XML znajduje się na partycji vendor
, ale są one odczytywane z partycji system
. W tym przypadku schemat pliku XML służy jako interfejs między dwoma partycjami, dlatego musi być wyraźnie określony i musi ewoluować w sposób zapewniający zgodność wsteczną. Przed Androidem 10 platforma nie udostępniała mechanizmów, które wymagałyby określania i używania schematu XML ani zapobiegałyby niezgodnym zmianom w schemacie. Android 10 udostępnia ten mechanizm, który nazywa się interfejsem API schematu pliku konfiguracyjnego.
Właściwości systemowe jako interfejsy API
Właściwości systemu, do których uzyskuje się dostęp w różnych partycjach, są schematyzowane w plikach opisu sysprop
, a interfejsy API do uzyskiwania dostępu do właściwości są generowane jako konkretne funkcje w C++ i klasy w Javie.
Obiekt interfejsu dostawcy (VINTF)
VINTF
Zmiany w VINTF w Androidzie 10 obejmują:
- Wycofywanie tagów wersji AVB
- Dodawanie informacji o jądrze w pakietach OTA
- Oficjalne tworzenie plików manifestu ODM
- Dodawanie macierzy zgodności produktów
- Powiązanie wpisu w pliku manifestu z modułem HAL w systemie kompilacji
Program rozruchowy
Ramdisk
W Androidzie 10 główny system plików nie jest już uwzględniany w ramdisk.img
, ale jest scalany z system.img
.
Tworzenie partycji ODM
Android 10 obsługuje tworzenie partycji odm
za pomocą systemu kompilacji Androida. Możesz użyć osobnej partycji /odm
na potrzeby dostosowań, co umożliwi Ci używanie jednego obrazu dostawcy w przypadku wielu kodów SKU sprzętu. Umożliwia to producentom oryginalnego sprzętu (ODM) dostosowywanie pakietów obsługi płyt (BSP) dostawców układów SOC do konkretnych urządzeń (płyt). Mogą one wdrażać moduły jądra dla komponentów specyficznych dla płyty, demony specyficzne dla płyty lub własne funkcje w warstwach abstrakcji sprzętu (HAL). Mogą też wymieniać lub dostosowywać komponenty SoC.
Wersjonowanie nagłówka obrazu rozruchowego
Android 10 aktualizuje nagłówek obrazu rozruchowego do wersji 2, która zawiera sekcję do przechowywania obrazu obiektu drzewa urządzenia (DTB). Testy VTS w Androidzie 10 weryfikują, czy wszystkie urządzenia uruchamiane z Androidem 10 używają wersji 2 nagłówka obrazu rozruchowego i zawierają prawidłowy obraz DTB jako część obrazów rozruchowych lub odzyskiwania.
Obrazy odzyskiwania na urządzeniach innych niż A/B
W Androidzie 9 i nowszych obraz odzyskiwania urządzenia musi zawierać informacje z obrazu nakładki. Producenci urządzeń mogą używać DeviceTree lub zaawansowanej konfiguracji i interfejsu zasilania (ACPI) do opisywania wszystkich urządzeń, których nie można wykryć. Android w wersji 10 i nowszej obsługuje architektury, które zamiast pliku binarnego DeviceTree do nakładki (DTBO) używają ACPI.
Stabilny AIDL
Android 10 obsługuje stabilny język definiowania interfejsu Androida (AIDL), nowy sposób śledzenia interfejsu programowania aplikacji (API) i interfejsu binarnego aplikacji (ABI) udostępnianych przez interfejsy AIDL.
Przenoszenie fastboot do przestrzeni użytkownika
W Androidzie 10 dodano obsługę partycji o zmiennej wielkości przez przeniesienie implementacji fastboota z programu rozruchowego do przestrzeni użytkownika.
Wyświetlacz
Odtwarzanie filmów HDR
Android 10 obsługuje odtwarzanie HDR10, VP9 i HDR10+.
Klasyfikacja tekstu
Klasyfikacja tekstu wykorzystuje techniki uczenia maszynowego, aby pomagać deweloperom w klasyfikowaniu tekstu. Android 10 wprowadza 2 metody interfejsu TextClassifier API: suggestConversationActions
i detectLanguage
.
Metoda suggestConversationActions
generuje sugerowane odpowiedzi i działania na podstawie danej rozmowy, a metoda detectLanguage
wykrywa język tekstu.
Obsługa renderowania czcionki Zawgyi
Zawgyi to najpopularniejsza czcionka w Mjanmie. Android 9 i starsze wersje nie obsługiwały renderowania czcionki Zawgyi, ponieważ nie jest ona zgodna ze standardem Unicode. Android 10 rozwiązuje ten problem, ponieważ zawiera czcionkę Unicode, która umożliwia jednoczesne renderowanie znaków Unicode w języku birmańskim i Zawgyi. Aby obsługiwać renderowanie czcionki Zawgyi na urządzeniach wprowadzanych na rynek z Androidem 10, nie trzeba niczego wdrażać. Jeśli Twoje urządzenia mają niestandardową implementację obsługującą Zawgyi, możesz:
- Cofnij te zmiany i użyj metody obsługiwanej przez platformę.
- Zachowaj w systemie popularną czcionkę Zawgyi i użyj kodu języka
my-qaag
wfonts.xml
. Więcej informacji znajdziesz w informacjach o wersji CLDR Unicode dotyczących języka Zawgyi (Qaag).
Ograniczenia dotyczące ukrywania ikon aplikacji
Android 10 ogranicza możliwość ukrywania ikon aplikacji w programie uruchamiającym. Jeśli aplikacja nie ma włączonej aktywności programu uruchamiającego, system wyświetla w programie uruchamiającym syntetyzowaną aktywność. Ta aktywność reprezentuje stronę szczegółów aplikacji w ustawieniach systemu.
Więcej informacji o logice wyświetlania ikon aplikacji, w tym o typach aplikacji, których ikony nie są wyświetlane, znajdziesz w dokumentacji getActivityList()
w informacjach o interfejsie API.
Ustawienia
Aby zwiększyć dostępność, Android 10 zawiera ustawienia limitu czasu, które użytkownik może dostosować. Zmiany w interfejsie API i ustawieniach są dostępne w Androidzie 10. Jeśli dostosujesz ustawienia, upewnij się, że ta funkcja jest obsługiwana. Jeśli na urządzeniu masz elementy interfejsu, które wygasają, użyj w ich przypadku interfejsu Timeouts API. Więcej informacji znajdziesz w wytycznych dotyczących ułatwień dostępu dla programistów na Androida.
Zgodność
Dokument definicji zgodności z Androidem (CDD)
Dokument definicji zgodności z Androidem 10 jest rozwinięciem poprzednich wersji i zawiera aktualizacje dotyczące nowych funkcji oraz zmiany wymagań dotyczących wcześniej udostępnionych funkcji.
Testy
Compatibility Test Suite (CTS)
Android CTS ma osobną stronę z informacjami o wersji, na której wymieniono wiele ważnych zmian w Androidzie 10.
Pobieranie pakietu CTS
Pakiety CTS obsługujące Androida 10 są dostępne na stronie Pobieranie CTS. Kod źródłowy testów zawartych w android-cts-10_r1
można zsynchronizować z tagiem w drzewie open source.
CTS shim APEX
Android 10 wprowadza pakiet o nazwie CtsShimApex
, który musi być wstępnie zainstalowany na urządzeniu, aby można było pisać testy CTS dotyczące zarządzania APEX.
Tryb jarzma testowego
Tryb platformy testowej CTS pomaga deweloperom automatyzować testowanie urządzenia lub floty urządzeń.
Tryb aplikacji błyskawicznych
Od Androida 10 CTS działa w trybie aplikacji błyskawicznych, co oznacza, że instaluje plik APK testu jako aplikację błyskawiczną i przeprowadza testy.
Oprócz trybu CTS dla aplikacji błyskawicznych Android 10 zawiera weryfikator CTS dla aplikacji błyskawicznych.
Test audio profesjonalnego weryfikatora CTS
W Androidzie 10 dodano test weryfikatora CTS sprawdzający zgodność z Pro Audio.
Testy MIDI weryfikatora CTS
W Androidzie 10 test MIDI w ramach CTS Verifier sprawdza funkcje MIDI za pomocą interfejsów MIDI przez USB, interfejsów MIDI przez Bluetooth i wirtualnego urządzenia MIDI.
Interpretacja testu CTS
Android 10 aktualizuje mechanizm interpretowania wyników CTS.
Vendor Test Suite (VTS)
Testowanie VTS za pomocą debugowania ramdysku
W Androidzie 10 ogólny obraz systemu (GSI) używany do przeprowadzania testów zgodności CTS-on-GSI/VTS zmienia typ kompilacji z userdebug na user, ponieważ GSI jest podpisany w wersji. Jednak polecenie adb root
, które przyznaje hostowi uprawnienia roota na testowanym urządzeniu z Androidem, nie jest dostępne w kompilacji użytkownika. Jest to problem, ponieważ VTS wymaga adb root
do działania.
Dysk RAM do debugowania umożliwia adb root
, jeśli urządzenie jest odblokowane. Upraszcza to proces testowania, ponieważ można ponownie użyć tej samej kompilacji użytkownika system.img
(GSI lub kompilacji OEM system.img
).
Weryfikacja sprzętowego komponentu Composer
Android 10 dodaje nową klasę testów VTS do weryfikacji Hardware Composer za pomocą interfejsu readback
w IComposerClient.hal
.
Jeśli dostawcy nie wdrożą readback
, testy zostaną automatycznie zaliczone.
Debugowanie
Wczytywanie bibliotek udostępnionych za pomocą różnych programów wczytujących klasy
W Androidzie 9 i starszych wersjach aplikacje ładowały połączone biblioteki współdzielone Java w ładowarce klas aplikacji. W Androidzie 10 platforma używa innego narzędzia do wczytywania klas niż narzędzie do wczytywania klas aplikacji, aby wczytywać udostępnione biblioteki Java połączone za pomocą uses-library
lub uses-static-library
.
Ogólnie rzecz biorąc, aplikacje nie powinny polegać na używaniu konkretnego programu ładującego klasy, więc ta zmiana nie powinna zakłócać ich działania. Jeśli jednak aplikacja korzysta z jednego modułu ładującego klasy, to działanie jest nieprawidłowe. Dodatkowo widoczność klas w tym samym pakiecie na poziomie pakietu jest nadal obsługiwana, ale nie jest obsługiwana w bibliotekach współużytkowanych.
Producenci urządzeń mogą napotkać problemy ze zgodnością aplikacji podczas testowania urządzeń z Androidem 10.
Funkcje zabezpieczeń
Pełniejszą listę ulepszeń związanych tylko z bezpieczeństwem i prywatnością znajdziesz na stronie Ulepszenia dotyczące bezpieczeństwa i prywatności w Androidzie 10.
Uwierzytelnianie twarzą
Uwierzytelnianie twarzą umożliwia użytkownikom odblokowywanie urządzenia przez spojrzenie na jego przednią część. Android 10 obsługuje nowy stos uwierzytelniania za pomocą rozpoznawania twarzy, który może bezpiecznie przetwarzać klatki z kamery, zachowując bezpieczeństwo i prywatność podczas uwierzytelniania za pomocą rozpoznawania twarzy na obsługiwanym sprzęcie. Android 10 zapewnia też prosty sposób na włączenie integracji aplikacji w przypadku transakcji takich jak bankowość online lub inne usługi, które wymagają zgodności z wymaganiami dotyczącymi bezpieczeństwa.
Rozszerzony dostęp
Agenty zaufania, czyli mechanizm bazowy używany przez mechanizmy uwierzytelniania dodatkowego, takie jak Smart Lock, mogą przedłużać odblokowanie tylko na urządzeniach z Androidem 10. Agenty zaufania nie mogą już odblokowywać zablokowanego urządzenia, a mogą utrzymywać je w stanie odblokowanym przez maksymalnie 4 godziny.
Szyfrowanie
OEMCrypto
Android 10 korzysta z interfejsu OEMCrypto API w wersji 15.
Testowanie
BoundsSanitizer
Android 10 wdraża BoundsSanitizer (BoundSan) w Bluetoothie i kodekach. BoundSan korzysta z mechanizmu sprawdzania granic UBSan. Ograniczanie skutków jest włączone na poziomie poszczególnych modułów. Pomaga ona chronić najważniejsze komponenty Androida i nie należy jej wyłączać. BoundSan jest włączony w przypadku tych kodeków:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
libaac
libxaac
Oczyszczanie przepełnienia liczb całkowitych
Android 10 umożliwia czyszczenie przepełnienia liczb całkowitych (IntSan) w kodekach programowych. Sprawdź, czy wydajność odtwarzania jest zadowalająca w przypadku kodeków, które nie są obsługiwane przez sprzęt urządzenia. IntSan jest włączony w przypadku tych kodeków:
libFLAC
libavcdec
libavcenc
libhevcdec
libmpeg2
libopus
libvpx
libspeexresampler
libvorbisidec
Pamięć tylko do wykonywania
Domyślnie sekcje kodu wykonywalnego w przypadku binarnych plików systemowych AArch64 są oznaczane jako tylko do wykonania (nie do odczytu), co stanowi zabezpieczenie przed atakami polegającymi na ponownym wykorzystaniu kodu wykonywanego w momencie użycia. Kod, który łączy dane i kod, oraz kod, który celowo sprawdza te sekcje (bez wcześniejszego ponownego mapowania segmentów pamięci jako odczytywalnych), nie działa już prawidłowo. Dotyczy to aplikacji, których docelowy pakiet SDK to Android 10 (poziom interfejsu API 29 lub wyższy), jeśli aplikacja próbuje odczytać sekcje kodu pamięci tylko do wykonywania (XOM) w pamięci systemowych bibliotek z włączoną tą funkcją bez wcześniejszego oznaczenia sekcji jako możliwej do odczytu.
Scudo
Scudo to dynamiczny alokator pamięci w trybie użytkownika, który jest bardziej odporny na luki w zabezpieczeniach związane ze stertą. Udostępnia standardowe funkcje przydzielania i zwalniania pamięci w języku C, a także funkcje w języku C++.
ShadowCallStack
ShadowCallStack
(SCS) to tryb instrumentacji LLVM, który chroni przed nadpisywaniem adresu powrotu (np. przepełnieniem bufora stosu) przez zapisywanie adresu powrotu funkcji w osobno przydzielonym wystąpieniu ShadowCallStack
w prologu funkcji niebędących liśćmi i wczytywanie adresu powrotu z wystąpienia ShadowCallStack
w epilogu funkcji.
Audio
HAL dźwięku
Android 10 zawiera te nowe funkcje warstwy HAL audio:
AudioSource
AudioFormat
AudioChannelMask
Dodano dodatkowe wymagania dotyczące implementacji HAL audio i podsystemu.
Efekty przetwarzania wstępnego
Android udostępnia efekty przetwarzania wstępnego, takie jak usuwanie echa akustycznego, automatyczna kontrola wzmocnienia i eliminowanie szumu.
Android 10 zawiera nowe wymagania dotyczące rejestrowania za pomocą
VOICE_COMMUNICATION
.
Menedżer zasad audio
Android 10 zawiera znaczną refaktoryzację menedżera zasad audio, aby zapewnić większą elastyczność w obsłudze złożonych przypadków użycia w motoryzacji.
Dźwięk w wysokiej rozdzielczości
Android 10 zawiera te ulepszenia dotyczące dźwięku o wysokiej rozdzielczości:
- Obsługa liczb zmiennoprzecinkowych
- Obsługa częstotliwości 192 kHz
- Obsługa 8 kanałów
- Uwzględnianie informacji o czasie
Równoczesne rejestrowanie
Android 10 poprawia komfort korzystania z funkcji jednoczesnego nagrywania, która wymaga jednoczesnego nagrywania więcej niż jednego aktywnego dźwięku.
AudioPlaybackCapture
Android 10 zawiera nowy interfejs API o nazwie
AudioPlaybackCapture
, który umożliwia aplikacjom kopiowanie dźwięku odtwarzanego przez inne aplikacje. Ta funkcja jest podobna do zrzutu ekranu, ale dotyczy dźwięku.
Głównym zastosowaniem jest umożliwienie aplikacjom do strumieniowania przechwytywania dźwięku odtwarzanego przez gry.
Interfejs API przechwytywania nie wpływa na opóźnienie aplikacji, z której przechwytywany jest dźwięk.
MIDI
Android 10 ułatwia przenoszenie profesjonalnych aplikacji audio korzystających z MIDI na platformę Android za pomocą AMidi
interfejsu NDK API.
Aparat
Podsumowanie zmian w interfejsie API aparatu, HAL aparatu i module aparatu wprowadzonych w Androidzie 10 znajdziesz w artykule Aktualizacje aparatu w Androidzie 10.
Ulepszenia w zakresie prywatności w trybie aparatu
Android 10 wprowadza ulepszenia w zakresie ochrony prywatności w strukturze aparatu. Aby uniknąć ujawnienia potencjalnie poufnych informacji o statycznym aparacie w CameraCharacteristics
bez zgody użytkownika, aplikacje muszą uzyskać uprawnienie CAMERA
do pobierania statycznych metadanych z tagiem związanym z prywatnością za pomocą metody getCameraCharacteristics
.
Aby uzyskać listę kluczy charakterystyki aparatu, które wymagają uprawnienia CAMERA
, wywołaj metodę getKeysNeedingPermission
.
Zapytanie o ponowną konfigurację sesji
Android 10 wprowadza funkcję zapytania o ponowną konfigurację sesji, która pozwala zwiększyć wydajność dzięki większej kontroli nad wewnętrzną logiką ponownej konfiguracji parametrów sesji.
Interfejsy API zarządzania buforem HAL3 aparatu
Android 10 wprowadza opcjonalne interfejsy API zarządzania buforami HAL3 aparatu, które umożliwiają wdrożenie logiki zarządzania buforami w celu uzyskania różnych kompromisów między pamięcią a opóźnieniem przechwytywania w implementacjach HAL aparatu.
Dynamiczny przełącznik fizyczny HAL aparatu
Android 10 wprowadza dynamiczny tag metadanych,
ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID
,
który wskazuje aktywny bazowy aparat fizyczny urządzenia z aparatem logicznym. Więcej informacji znajdziesz w artykule Obsługa wielu kamer.
Obsługa ukrywania kamer fizycznych
W Androidzie 10 komponent HAL aparatu może zmniejszyć liczbę fizycznych aparatów, które aplikacja może bezpośrednio otworzyć. Więcej informacji znajdziesz w sekcji Obsługa wielu aparatów.
Camera2 VNDK API
W Androidzie 10 moduły dostawcy mogą uzyskiwać dostęp do urządzeń z aparatem i nimi sterować za pomocą 2 nowych standardowych interfejsów HIDL: android.frameworks.cameraservice.service@2.0
i android.frameworks.cameraservice.device@2.0
. Aby ułatwić korzystanie z interfejsów HIDL, Android 10 wprowadza też bibliotekę dostępną dla dostawców, libcamera2_vendor
. Ta biblioteka jest podobna do biblioteki Camera NDK, ale ma kilka drobnych modyfikacji.
Konfiguracje strumieniowania
Android 10 zawiera funkcje, które umożliwiają dostawcom aparatów reklamowanie zalecanych strumieni kamery klientom kamery i obsługę interfejsu API do wysyłania zapytań o kombinacje strumieni.
Wymagania dotyczące łączenia strumieni z kamery
Urządzenia z Androidem 10 nie muszą już obsługiwać kombinacji strumieni ze strumieniami z fizycznych podkamer. Urządzenia z Androidem 10 z wersją urządzenia HAL aparatu 3.5 muszą jednak obsługiwać isStreamCombinationSupported()
, aby aplikacje mogły sprawdzać, czy obsługiwana jest kombinacja strumieni zawierająca strumienie fizyczne.
Więcej informacji znajdziesz w artykule Obsługa wielu kamer.
zdjęcia HEIF
Android 10 zapewnia natywną obsługę aparatu w przypadku obrazów w formacie HEIF, które oferują lepszą jakość obrazu i mniejsze rozmiary niż obrazy JPEG. Urządzenia muszą mieć koder HEIC lub HEVC, aby obsługiwać obrazy HEIF.
Kamery monochromatyczne
Android 10 zapewnia dodatkową obsługę formatu strumienia Y8, statycznych metadanych tablicy filtrów kolorów monochromatycznych i bliskiej podczerwieni (NIR) oraz funkcji DngCreator
w przypadku aparatów monochromatycznych.
Łączność
Połączenia i wiadomości
Numery alarmowe i połączenia alarmowe
Android 10 zapewnia lepszą obsługę połączeń alarmowych. W sytuacji awaryjnej urządzenia obsługujące IRadio HAL w wersji 1.4 mogą inicjować połączenie alarmowe, korzystając z numerów alarmowych pobranych ze źródła, takiego jak karta SIM, sygnał sieci lub baza danych Androida. Numery można podzielić na kategorie służb ratunkowych, takie jak policja, straż pożarna i pogotowie ratunkowe.
Interfejsy API połączeń grupowych
Interfejsy API połączeń grupowych są rozszerzeniem interfejsów eMBMS API dodanych w Androidzie 9. Nowe interfejsy API określają standard umożliwiający aplikacjom dołączanie do grupowych połączeń komórkowych i nadawanie w nich treści poprzez interakcję z pakietami oprogramowania pośredniczącego eMBMS. Połączenia grupowe wymagają wsparcia ze strony dostawcy chipsetu, dostawcy oprogramowania pośredniczącego i operatora komórkowego, aby działać prawidłowo. Dokumentacja dla deweloperów znajduje się na stronie developer.google.com.
Funkcje zdalnej karty SIM
Android 10 wprowadza funkcje zdalnej karty SIM, które umożliwiają aplikacjom do obsługi wiadomości na urządzeniu hosta z Androidem wysyłanie SMS-ów za pomocą telefonów z wykorzystaniem mechanizmów takich jak Bluetooth. Więcej informacji znajdziesz w dokumentacji referencyjnej metody getSubscriptionType
i stałej SUBSCRIPTION_TYPE_REMOTE_SIM
.
Wiele kart eSIM
W Androidzie 10 klasa EuiccManager
obsługuje urządzenia z wieloma wbudowanymi kartami SIM (eSIM) lub eUICCs.
Aktualizacje eSIM
W przypadku urządzeń z Androidem 10, które obsługują karty eSIM, musi być zdefiniowana tablica identyfikatorów gniazd eUICC, których nie można usunąć. Urządzenia muszą też obsługiwać IRadio HAL w wersji 1.4 i IRadioConfig HAL w wersji 1.2. Więcej informacji znajdziesz w sekcjach Wdrażanie karty eSIM i Wymagania dotyczące HAL.
5G Non-Standalone (NSA)
Android 10 obsługuje 5G w trybie NSA. 5G NSA to rozwiązanie dla sieci 5G, w którym sieć jest obsługiwana przez istniejącą infrastrukturę 4G. Na urządzeniach z Androidem 10 ikona 5G może być wyświetlana na pasku stanu, gdy urządzenie połączy się z siecią 5G.
Sugestia konta w telefonie
Android 10 wprowadza usługę sugestii kont telefonicznych, która umożliwia wyświetlanie użytkownikom sugestii dotyczących kont telefonicznych podczas wykonywania połączenia.
Operator
Migracja ustawień sieci komórkowej
W Androidzie 10 zmieniliśmy architekturę kodu interfejsu ustawień sieci komórkowej i przenieśliśmy go ze stosu telefonicznego do stosu ustawień. Aby obsługiwać przeniesiony kod, zmień te wartości konfiguracji ustawień sieci komórkowej z zasobów Androida na zasoby CarrierConfig
:
config_world_mode
->
CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL
config_support_tdscdma
->
CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL
config_support_tdscdma_roaming_on_networks
->
CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY
config_enabled_lte
->
CarrierConfigManager#KEY_LTE_ENABLED_BOOL
Identyfikatory urządzeń
Trwałe identyfikatory urządzenia (IMEI/MEID, IMSI i numer seryjny kompilacji) są chronione przez uprawnienia uprzywilejowane, a dostęp do nich mają też aplikacje właściciela urządzenia i właściciela profilu. Numer IMSI i numer seryjny karty SIM są dostarczane przez operatora, dlatego dostęp do tych identyfikatorów jest przyznawany pakietom z uprawnieniami operatora.
Wi-Fi
Wybór sieci
Android stale ocenia jakość połączonej sieci i dostępnych sieci. Android 10 ma zaktualizowane algorytmy i procedury wybierania sieci Wi-Fi i przełączania się między nimi.
Skanowanie w celu odciążania wybranej sieci Wi-Fi
Android 10 wprowadza opcjonalną metodę interfejsu API o nazwie setDeviceMobilityState()
w WifiManager
, która zwiększa interwał między skanami preferowanego odciążania sieci (PNO), gdy urządzenie jest nieruchome, aby zmniejszyć zużycie energii.
Wi-Fi operatora
W Androidzie 10 urządzenia z funkcją Wi-Fi operatora automatycznie łączą się ze skonfigurowanymi sieciami Wi-Fi operatora (sieciami z certyfikatami klucza publicznego).
Wi-Fi Easy Connect
W Androidzie 10 urządzenia mogą używać Wi-Fi Easy Connect, czyli protokołu udostępniania urządzeń (DPP) wprowadzonego przez Wi-Fi Alliance (WFA), do udostępniania i konfigurowania urządzeń Wi-Fi.
Tryb niskiego opóźnienia Wi-Fi
Android 10 wprowadza tryb niskiego opóźnienia Wi-Fi, który konfiguruje układ Wi-Fi w taki sposób, aby zmniejszyć opóźnienie.
Zaktualizowany serwer DHCP
W ramach tworzenia parasola usług „Serwer IP” usługa dnsmasq
zostanie usunięta. Android 10 zastępuje serwer DHCPv4 osobnym komponentem, napisanym głównie w Javie, aby lepiej integrować się z płaszczyzną sterowania frameworka Java. Zwiększa to bezpieczeństwo i możliwość aktualizacji serwera DHCP. Więcej informacji znajdziesz w sekcji packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java
.
Aby wdrożyć tę zmianę, nie musisz nic robić: wszystkie urządzenia z Androidem 10 i nowszym domyślnie korzystają z DhcpServer
.
Jeśli masz dostosowania serwera DHCP, możesz przywrócić działanie Androida 9, ustawiając ustawienie globalne tether_enable_legacy_dhcp_server=1
.
Nowy DhcpServer
jest zawarty w module komponentów sieciowych, więc wszelkie dostosowania funkcji serwera DHCP powinny być przesyłane do repozytorium nadrzędnego.
WPA3 i Wi-Fi Enhanced Open
Android 10 obsługuje standardy zabezpieczeń Wi-Fi Protected Access 3 (WPA3) i Wi-Fi Enhanced Open, które zapewniają większą prywatność i odporność na znane ataki.
Wi-Fi Direct
Wi-Fi Direct, znane też jako Wi-Fi P2P, umożliwia obsługiwanym urządzeniom wykrywanie się nawzajem i bezpośrednie łączenie się ze sobą za pomocą protokołu Wi-Fi Direct bez dostępu do internetu lub sieci komórkowej.
Ulepszenia randomizacji adresu MAC
Od Androida 10 randomizacja MAC jest domyślnie włączona w przypadku trybu klienta, SoftAp i Wi-Fi Direct. Urządzenia muszą udostępniać opcję włączania i wyłączania randomizacji adresów MAC dla każdego identyfikatora SSID w interfejsie systemu.
Passpoint R2
Android 10 wprowadza obsługę funkcji Passpoint R2. Passpoint R2 implementuje rejestrację online (OSU), standardową metodę udostępniania nowych profili Passpoint. Android 10 obsługuje udostępnianie profili EAP-TTLS za pomocą protokołu SOAP-XML.
NFC
Zabezpiecz komunikację NFC
Bezpieczna komunikacja NFC umożliwia włączenie emulacji karty NFC poza urządzeniem tylko wtedy, gdy ekran urządzenia jest odblokowany. Wdrożenie tej funkcji daje użytkownikom możliwość włączenia bezpiecznej technologii NFC, co zwiększa bezpieczeństwo.
Wycofanie Androida Beam
W Androidzie 10 funkcja Android Beam nie jest już wymagana, a te interfejsy i metody zostały wycofane:
Interfejsy:
NfcAdapter.CreateBeamUrisCallback
NfcAdapter.CreateNdefMessageCallback
NfcAdapter.OnNdefPushCompleteCallback
Metody:
createBeamUris
invokeBeam
isNdefPushEnabled
setBeamPushUris
setBeamPushUrisCallback
setNdefPushMessage
setNdefPushMessageCallback
setOnNdefPushCompleteCallback
createNdefMessageCallback
onNdefPushCompleteCallback
Aby korzystać z Androida Beam, zgłoś stałą funkcji
android.sofware.nfc.beam
.
Grafika
ASurfaceControl
Android 10 dodaje ASurfaceControl
, czyli nowy sposób akceptowania buforów przez SurfaceFlinger
.
Implementacja grafiki
Warstwy OpenGL ES
Android 10 wprowadza system warstw dla GLES.
EGL 1.5
Android 10 implementuje interfejs EGL 1.5. Informacje o nowych funkcjach w EGL 1.5 znajdziesz w artykule Khronos Releases EGL 1.5 Specification.
Vulkan
Android 10 obsługuje grafikę Vulkan 1.1.
Platforma obsługuje też VK_KHR_swapchain
v70, więc aplikacja Vulkan może utworzyć VkImage
wspierany przez pamięć łańcucha wymiany.
Częstotliwość odświeżania wydajności
Android 10 obsługuje częstotliwość odświeżania dostosowaną do wydajności. Ta funkcja jest domyślnie wyłączona.
Interakcja
Automotive
Samochodowy sprzęt audio
W Androidzie 10 kontekst Audio HAL jest mapowany na
AudioAttributes.usage
w celu identyfikacji dźwięków. Android obsługuje 1 instancjęAUDIO_DEVICE_OUT_BUS
na kontekst. IAudioControl
Interfejs HAL udostępnia rozszerzenia interfejsu HAL audio specyficzne dla pojazdu.
Nawigacja przy użyciu gestów
Android 10 wprowadza opcję nawigacji w systemie za pomocą gestów. Informacje o tym, jak przygotować aplikacje do korzystania z tej funkcji, znajdziesz na stronie Nawigacja gestami na stronie dla deweloperów aplikacji na Androida.
Sieci neuronowe
Android 10 wprowadza aktualizacje interfejsu Neural Networks API i warstwy HAL sieci neuronowych. Podsumowanie zmian znajdziesz w sekcji Sieci neuronowe.
Nowa i zaktualizowana dokumentacja sieci neuronowych na Androida 10:
- Omówienie
- AHardwareBuffer
- Wykonywanie pakietowe i szybkie kolejki wiadomości
- Buforowanie kompilacji
- Wykrywanie i przypisywanie urządzeń
- Rozszerzenia dostawców
Czujniki
Sensors HAL 2.0
Sensors HAL 2.0 obsługuje używanie kolejek szybkich wiadomości (FMQ) do wysyłania zdarzeń czujników z HAL do platformy Android Sensors Framework.
Wyłącz czujniki
Android 10 zawiera ustawienie deweloperskie, które umożliwia wyłączenie wszystkich czujników na urządzeniu. Ta funkcja pomaga deweloperom testować działanie aplikacji w sytuacjach, w których te czujniki stają się niedostępne, a także umożliwia użytkownikom sterowanie czujnikami w ich urządzeniu.
Jeśli Twoje urządzenia korzystają z domyślnej implementacji SensorService
, CameraService
i AudioPolicyService
, nie musisz dodatkowo dostosowywać projektu referencyjnego. Jeśli masz inne czujniki, więcej informacji o obsłudze tej funkcji znajdziesz w sekcji Dostosowywanie.
Multimedia
Komponenty multimedialne, które można aktualizować
Android 10 udostępnia komponenty multimedialne, które można aktualizować. Umożliwiają one aktualizowanie modułów systemowych związanych z multimediami za pomocą infrastruktury Sklepu Google Play lub mechanizmu aktualizacji bezprzewodowych (OTA) udostępnianego przez partnera.
DRM multimediów
Android 10 zwiększa użyteczność interfejsów API MediaDrm
Java i NDK.
Dekodowanie
Android 10 obsługuje dekodowanie programowe AV1.
Uprawnienia
Android 10 udostępnia dodatkowe konfiguracje uprawnień, które zapewniają przejrzystość i prywatność użytkowników.
Informacje o dostawcy kontaktów i zainteresowaniach
Od Androida 10 dane związane z powiązaniami kontaktów, którymi zarządza komponent dostawcy kontaktów, są dostępne w inny sposób niż w Androidzie 9 i starszych wersjach. Te zmiany dotyczące dostępności danych zwiększają prywatność użytkowników wszystkich urządzeń z Androidem 10, które korzystają z komponentu dostawcy kontaktów. Baza danych nie zawiera już danych o powiązaniach z kontaktami. Dlatego aplikacje nie mogą zapisywać w nim danych ani ich odczytywać.
Zmiany w Androidzie 10 będą miały duży wpływ na interfejsy API. Jeśli Twoje aplikacje korzystają z wycofanych funkcji wymienionych w sekcjach Dostawca kontaktów i Informacje o powiązaniach, możesz je zaktualizować, aby uwzględnić wszelkie zmiany. Jeśli używasz rozwidlonej wersji dostawcy kontaktów, musisz ją zaktualizować.
Trójstanowe uprawnienia dostępu do lokalizacji
Trójstanowe uprawnienia do lokalizacji w Androidzie 10 zapewniają użytkownikom większą kontrolę nad tym, jak aplikacje uzyskują dostęp do lokalizacji urządzenia.
Przypomnienie o dostępie do lokalizacji w tle
Android 10 ma przypomnienie o dostępie do lokalizacji w tle, które zwiększa przejrzystość informacji o tym, jak duży dostęp aplikacje mają do lokalizacji urządzenia, i pomaga użytkownikom zachować kontrolę nad tym dostępem.
Ograniczanie lokalizacji oportunistycznych
Gdy aplikacja poprosi o lokalizację urządzenia, może poczekać na odpowiedź lub, korzystając z aktywnych odbiorników lokalizacji, uzyskać aktualizację lokalizacji. Od Androida 10, aby otrzymywać okazjonalne aktualizacje lokalizacji, deweloperzy muszą określić, że potrzebują pasywnych aktualizacji lokalizacji z klasy FusedLocationProviderClient
.
Uruchamianie aplikacji w tle
W Androidzie 10 aplikacje bez uprawnień, które nie mają widocznego okna, nie mogą uruchamiać się automatycznie na pierwszym planie. Ta zmiana blokuje wyskakujące reklamy i złośliwe przejęcia. Nie musisz nic robić, aby włączyć tę funkcję.
Piaskownica aplikacji
W Androidzie 10 aplikacje mają ograniczony dostęp do systemu plików i nie mogą bezpośrednio uzyskiwać dostępu do ścieżek takich jak /sdcard/DCIM
. Aplikacje zachowują jednak pełny dostęp do ścieżek specyficznych dla pakietu, zwracanych przez odpowiednie metody, takie jak Context.getExternalFilesDir()
.
Aplikacje nadal mają pełny dostęp do ścieżek specyficznych dla pakietu.
Postępuj zgodnie z wytycznymi dotyczącymi udostępniania plików w piaskownicy aplikacji, aby zapewnić odpowiedni poziom szczegółowości udostępniania danych.
Ograniczanie dostępu aplikacji do schowka
W Androidzie 10 dostęp do schowka został zmieniony, aby zawartość schowka nie mogła być monitorowana przez wywołanie funkcji
ClipboardManager.getPrimaryClip
ani przez dodanie odbiornika
onPrimaryClipChangedListener
powiadomień o zmianach w schowku. Zwiększa to prywatność użytkowników i uniemożliwia aplikacjom typu malvertising modyfikowanie schowka.
W Androidzie 10 dostęp do odczytu jest dozwolony tylko w przypadku bieżącej aplikacji, która ma fokus, lub bieżącej klawiatury. Wywołanie funkcji nasłuchującej ClipboardManager.onPrimaryClipChanged()
jest teraz wywoływane tylko w przypadku aplikacji, które spełniają takie ograniczenia.
ClipboardManager.getPrimaryClip
i ClipboardManager.getPrimaryClipDescription
zwracają null
, jeśli aplikacja wysyłająca żądanie nie jest domyślnym edytorem metody wprowadzania (IME) lub nie ma fokusu na wprowadzanie danych.
Uprawnienia w czasie działania aplikacji obejmują rozpoznawanie aktywności
Gdy aplikacja uzyskuje dostęp do lokalizacji urządzenia w tle, użytkownicy widzą teraz okno dialogowe rozpoznawania aktywności. Uprawnienia czasu działania z ograniczeniami ścisłymi muszą być prawidłowo dodane do listy dozwolonych w Androidzie 10.
Uprawnienie MANAGE_DEVICE_ADMINS
Android 10 zmienia uprawnienie MANAGE_DEVICE_ADMINS
z podpisu lub uprawnień na tylko podpis. Oznacza to, że tylko aplikacje podpisane przez platformę mogą ustawiać inne aplikacje jako administratora urządzenia.
Ulepszenia interfejsu Sharing API
Android 10 udostępnia szereg nowych funkcji interfejsu Android Platform API związanych z udostępnianiem. Jeśli w swojej implementacji zmodyfikowano kod arkusza udostępniania, upewnij się, że obsługuje ona te nowe funkcje. Jeśli nie zmodyfikowano kodu arkusza udostępniania w Twojej implementacji, nie musisz nic robić, aby obsługiwać te nowe funkcje.
Środowisko uruchomieniowe Androida (ART)
Podpisana konfiguracja
Funkcja Podpisana konfiguracja umożliwia osadzanie w plikach APK konfiguracji ograniczeń interfejsu innego niż SDK. Umożliwia to usunięcie z czarnej listy konkretnych interfejsów spoza SDK, dzięki czemu AndroidX może bezpiecznie z nich korzystać. Dzięki tej zmianie AndroidX może dodawać obsługę nowych funkcji w starszych wersjach Androida.
Wydajność
Warstwa abstrakcji cgroup
Android 10 zawiera warstwę abstrakcji cgroup i profile zadań, których deweloperzy mogą używać do opisywania zestawu ograniczeń, które mają być stosowane do wątku lub procesu.
Demon Low Memory Killer (lmkd)
Android 10 obsługuje nowy lmkd
tryb, który do wykrywania obciążenia pamięci wykorzystuje monitory informacji o obciążeniu jądra (PSI).
Moc
Zarządzanie zasilaniem platformy
W Androidzie 10 tryb uśpienia można włączyć zarówno na urządzeniach zawsze aktywnych, jak i na urządzeniach zasilanych bateryjnie.
Oszczędzanie baterii w ramach rutyny
W Androidzie 10 wprowadziliśmy nową opcję harmonogramu oszczędzania baterii o nazwie na podstawie rutyny. Oszczędzanie baterii w ramach rutyny umożliwia aplikacji wybranej przez producenta OEM wysyłanie sygnałów do systemu w celu bardziej inteligentnego planowania oszczędzania baterii. Ta opcja wymaga konfiguracji i jest opcjonalna.
Warstwa HAL statystyk zasilania
W Androidzie 10 interfejsy API do zbierania statystyk zużycia energii IPowerStats.hal
zastępują interfejsy API w IPower.hal
.
Chociaż interfejs HAL zasilania nadal obsługuje interfejsy API, w przyszłości zostaną one przeniesione wyłącznie do interfejsu HAL statystyk zasilania.
Warstwa HAL statystyk zasilania zawiera nowe interfejsy API, które umożliwiają zbieranie danych z pomiarów zasilania na urządzeniu w przypadku obsługiwanych urządzeń. Zaktualizowaliśmy też dotychczasowe interfejsy API do zbierania statystyk dotyczących zasilania, aby zwiększyć ich elastyczność. Interfejsy API podpowiedzi dotyczących zasilania pozostają w warstwie HAL zasilania i nie ulegają zmianie.
Ochrona przed przegrzaniem
Platforma termiczna w Androidzie 10 abstrahuje interfejsy urządzenia dla czujnika temperatury podsystemu termicznego, w tym procesora, GPU, baterii, skóry i urządzenia chłodzącego. Platforma wprowadza interfejs odpytywania, który umożliwia sprawdzanie stanu termicznego w celu rozpoczęcia ograniczania wydajności, oraz interfejs wywołania zwrotnego, który służy do wysyłania wiadomości do użytkownika po przekroczeniu progu.
Android 10 udostępnia nowe typy danych za pomocą interfejsu IThermalService
, korzystając z tych 3 nowych metod:
getCurrentThermalStatus()
zwraca aktualny stan termiczny urządzenia jako liczbę całkowitą, chyba że urządzenie jest poddawane ograniczeniu wydajności.addThermalStatusListener()
dodaje słuchacza.removeThermalStatusListener()
usuwa wcześniej dodanego słuchacza.
Aplikacje dodają i usuwają odbiorców oraz uzyskują dostęp do stanu temperatury w klasie
PowerManager
. Dostęp do informacji o powiązanych zdarzeniach przyczynowych może mieć tylko zaufana usługa systemowa, np. interfejs API Androida lub interfejs API producenta urządzenia. Aby włączyć pełną funkcjonalność nowych ram termicznych, producenci urządzeń lub układów SoC muszą wdrożyć thermal HAL 2.0
.
Przykład implementacji ograniczania ryzyka związanego z temperaturą znajdziesz w implementacji referencyjnej.
Aktualizacje
Format pliku APEX
Android Pony EXpress (APEX) to nowy format kontenera używany w procesie instalacji modułowych komponentów systemu.
Partycje dynamiczne
Partycje dynamiczne wprowadzają do Androida system partycjonowania przestrzeni użytkownika, który umożliwia tworzenie, zmianę rozmiaru i usuwanie partycji podczas aktualizacji OTA. Producenci urządzeń nie muszą się martwić o rozmiary poszczególnych partycji, takich jak system
, vendor
i product
. Zamiast tego przydzielana jest jedna duża partycja super
, a podpartycje mogą być w niej dynamicznie dostosowywane.
Dynamiczne aktualizacje systemu
Dynamiczne aktualizacje systemu (DSU) umożliwiają utworzenie obrazu systemu Android, który użytkownicy mogą pobrać z internetu i wypróbować bez ryzyka uszkodzenia bieżącego obrazu systemu.
Tworzenie i przywracanie kopii zapasowej w przypadku wielu użytkowników
Android 10 obsługuje funkcję tworzenia kopii zapasowych i przywracania dla wszystkich użytkowników urządzenia. Wcześniej tworzenie i przywracanie kopii zapasowej było dostępne tylko dla użytkownika systemu. Tworzenie kopii zapasowych i przywracanie danych użytkowników innych niż systemowi jest domyślnie wyłączone, ponieważ obejmuje tylko częściowo ustawienia, tapetę i komponenty systemu.
OverlayFS
Użytkownicy korzystający z wersji userdebug
lub eng
oczekują, że będą mogli skutecznie ponownie zamontować partycję systemową jako odczyt-zapis, a następnie dodać lub zmodyfikować dowolną liczbę plików bez ponownego flashowania obrazu systemu. Możesz użyć Overlayfs
, które automatycznie konfiguruje pamięć zapasową dla systemu plików z możliwością zapisu jako górne odniesienie i montuje się nad dolnym. Te działania są wykonywane w przypadku żądań adb disable-verity
i adb remount
. Więcej informacji znajdziesz w pliku README Overlayfs w AOSP.
Obsługa biblioteki udostępnionej w trybie odzyskiwania
W Androidzie 10 biblioteki współużytkowane są dostępne w partycji odzyskiwania, co eliminuje konieczność statycznego działania wszystkich plików wykonywalnych w trybie odzyskiwania. Biblioteki współdzielone znajdują się w katalogu
/system/lib
(lub /system/lib64
w przypadku urządzeń 64-bitowych) na partycji.
Aby dodać nową bibliotekę współdzieloną do partycji odzyskiwania, dodaj recovery_available: true
lub recovery: true
do Android.bp
biblioteki współdzielonej. Pierwsza opcja instaluje bibliotekę zarówno w systemie, jak i w partycji odzyskiwania, a druga – tylko w partycji odzyskiwania.
Obsługi bibliotek współdzielonych nie można utworzyć za pomocą systemu kompilacji opartego na make w Androidzie.
Aby przekonwertować istniejący statyczny plik wykonywalny dla trybu odzyskiwania na dynamiczny, usuń LOCAL_FORCE_STATIC_EXECUTABLE := true
w Android.mk
lub static_executable: true
(w Android.bp
).
Punkt kontrolny danych użytkownika (UDC)
Android 10 wprowadza funkcję punktu kontrolnego danych użytkownika (UDC), która umożliwia przywrócenie poprzedniego stanu systemu Android w przypadku niepowodzenia aktualizacji bezprzewodowej (OTA).