Ta strona zawiera podsumowanie głównych funkcji wersji Androida 9 i zawiera łącza do dodatkowych informacji. Te podsumowania funkcji są uporządkowane zgodnie z lokalizacją dokumentacji funkcji w tej witrynie. Zobacz aktualizacje witryny z sierpnia 2018 r. , aby zapoznać się z przewodnikiem dotyczącym przenoszenia sekcji i zmiany nazw.
Zbudować
Ogólny obraz systemu (GSI)
Ogólny obraz systemu (GSI) to obraz systemu z dostosowanymi konfiguracjami dla urządzeń z systemem Android. Generic System Image (GSI) zawiera szczegółowe informacje na temat różnic między GSI dla urządzeń uruchamianych z systemem Android 9 i urządzeniami aktualizującymi się do Androida 9.
Architektura
Warstwa abstrakcji sprzętu (HAL)
Kompatybilność wsteczna frameworku HIDL
Weryfikacja wstecznej kompatybilności frameworka HIDL to metoda sprawdzania wstecznej kompatybilności frameworka.
Dynamicznie dostępne warstwy HAL
Dynamicznie dostępne warstwy HAL obsługują dynamiczne zamykanie podsystemów sprzętowych systemu Android, gdy nie są one używane lub potrzebne.
HIDL
Blok pamięci HIDL
HIDL MemoryBlock to warstwa abstrakcyjna zbudowana na hidl_memory
, HIDL @1.0::IAllocator
i HIDL @1.0::IMapper
. Jest przeznaczony dla usług HIDL, które mają wiele bloków pamięci współdzielących pojedynczy stos pamięci.
Nakładki drzewa urządzeń
Skompresowane nakładki
System Android 9 i nowsze wersje obsługują skompresowane nakładki w obrazie nakładki obiektu blob drzewa urządzeń (DTBO) w przypadku korzystania z wersji 1 nagłówka tabeli drzewa urządzeń.
Aktualizacje DTO
Android 9 i nowsze wersje wymagają, aby program ładujący przekazał do jądra obiekt blob zunifikowanego drzewa urządzeń przed zmodyfikowaniem właściwości zdefiniowanych w nakładkach drzewa urządzeń (DTO) .
Wersjonowanie nagłówka obrazu DTBO
Android 9 i nowsze wersje zawierają pole wersji w nagłówku obrazu DTBO.
Weryfikacja DTBO
Android 9 i nowsze wymagają partycji DTBO. Aby dodać węzły lub wprowadzić zmiany we właściwościach SoC DT, program ładujący musi dynamicznie nakładać identyfikator specyficzny dla urządzenia na identyfikator SoC DT. Aby uzyskać więcej informacji, zobacz Kompilowanie i weryfikacja .
Zgodność jądra
Android 9 i nowsze wersje zawierają wymagania dotyczące jądra, jego interfejsów i użycia DTBO. Więcej informacji znajdziesz na tych stronach:
- Stabilne wydania i aktualizacje jądra
- Wspólne jądra Androida
- Wymagania dotyczące jądra modułowego
- Wymagania dotyczące interfejsu
- Nakładki drzewa urządzeń
Dostawca NDK
Zmiany projektowe
Informacje na temat zmian projektowych VNDK w systemie Android 9 i nowszych wersjach można znaleźć na tych stronach:
- Natywny zestaw programistyczny dostawcy (VNDK)
- Obsługa systemu kompilacji VNDK
- Narzędzie definicji VNDK
- Katalogi, zasady i sepolicy
- Rozszerzenia VNDK
- Przestrzeń nazw linkera
Kontroler ABI
Strona stabilności ABI opisuje moduł sprawdzający interfejs binarny aplikacji (ABI), który zapewnia, że zmiany wprowadzone w bibliotekach VNDK zachowują zgodność z ABI.
Migawki VNDK
Obraz systemu może korzystać z migawek VNDK , aby zapewnić prawidłowe biblioteki VNDK obrazom dostawców, nawet jeśli obrazy systemu i dostawcy są zbudowane z różnych wersji Androida.
Obiekt interfejsu dostawcy (obiekt VINTF)
Na poniższych stronach w sekcji Obiekt interfejsu dostawcy opisano aktualizacje w systemie Android 9 i nowszych wersjach:
Harmonogram wycofywania HIDL
Na poniższych stronach opisano, jak Android wycofuje i usuwa warstwy HAL HIDL:
Program rozruchowy
Podziały produktów
Android 9 i nowsze wersje obsługują tworzenie partycji /product
przy użyciu systemu kompilacji Android. Wcześniej system Android 8.x wymuszał oddzielenie komponentów specyficznych dla systemu na chipie (SoC) od partycji /system
do partycji /vendor
bez przeznaczania miejsca na komponenty specyficzne dla OEM zbudowane z systemu kompilacji Androida.
Zgodność z kanonicznym powodem rozruchu
Strona Canonical Boot Powód opisuje zmiany w specyfikacji przyczyny rozruchu programu ładującego w systemie Android 9 i nowszych wersjach.
System jako root
Wszystkie urządzenia uruchamiane z systemem Android 9 i nowszym muszą używać systemu jako root , który łączy ramdisk.img
z system.img
(znanym również jako no-ramdisk), który z kolei jest montowany jako rootfs.
Wersjonowanie nagłówka obrazu rozruchowego
W Androidzie 9 i nowszych nagłówek obrazu rozruchowego zawiera pole wskazujące wersję nagłówka . Program ładujący musi sprawdzić to pole wersji i odpowiednio przeanalizować nagłówek.
DTBO w trakcie odzyskiwania
Aby zapobiec awariom OTA wynikającym z niezgodności między obrazem odzyskiwania a partycją DTBO na urządzeniach innych niż A/B, obraz odzyskiwania musi zawierać informacje z obrazu DTBO .
Wyświetlacz
Wyświetl wycięcia
Wycięcia w wyświetlaczu umożliwiają twórcom aplikacji tworzenie wciągających wrażeń od krawędzi do krawędzi, jednocześnie zapewniając miejsce na ważne czujniki z przodu urządzeń.
Obróć sugestie
Aktualizacje dotyczące obracania ekranu w systemie Android 9 i nowszych wersjach obejmują obsługę skierowanej do użytkownika kontroli umożliwiającej przypinanie obracania ekranu do poziomu lub pionu, nawet jeśli zmienia się pozycja urządzenia.
Zsynchronizowane przejścia aplikacji
Zsynchronizowane przejścia aplikacji umożliwiają tworzenie nowych animacji przejścia aplikacji.
Klasyfikacja tekstu (dawniej TEXTCLASSIFIER)
Android 9 i nowsze wersje zawierają usługę klasyfikatora tekstu , która jest zalecanym sposobem implementacji klasyfikacji tekstu, oraz domyślną implementację usługi.
Szeroka gama kolorów
Android 9 i nowsze wersje obsługują szeroką gamę kolorów, w tym:
- Wysoki zakres dynamiki (HDR)
- Przetwarzanie treści w przestrzeni kolorów BT2020, ale nie jako docelowej przestrzeni danych
Aby móc korzystać z szerokiej gamy kolorów, cały stos wyświetlaczy urządzenia (taki jak ekran, sprzętowy kompozytor, procesor graficzny) musi obsługiwać szeroką gamę kolorów lub formaty buforów. Urządzenia nie muszą zapewniać obsługi treści szerokogamutowych, nawet jeśli sprzęt je obsługuje. Aby w pełni wykorzystać możliwości sprzętu, należy jednak włączyć szeroką gamę kolorów. Aby uniknąć niespójnych wrażeń wizualnych, nie należy wyłączać kolorów o szerokiej gamie kolorów w czasie działania.
Zgodność
Dokument definicji zgodności z Androidem
Dokument definicji zgodności Androida 9 (CDD) nawiązuje do poprzednich wersji , wprowadzając aktualizacje nowych funkcji i zmiany wymagań dotyczących wcześniej wydanych funkcji.
Ustawienia
Lepsze widżety aplikacji
Struktura widżetów aplikacji na Androida zapewnia większy wgląd w interakcje użytkownika, szczególnie gdy użytkownik usuwa lub ręcznie dodaje widżety. Ta funkcja jest domyślnie dostępna w programie Launcher3.
Producenci muszą zaktualizować swoje aplikacje uruchamiające (dostarczane z urządzeniami), aby obsługiwały tę funkcję, jeśli nie są oparte na programie Launcher3. Producenci OEM muszą obsługiwać nowe pole widgetFeatures w domyślnym programie uruchamiającym.
Należy pamiętać, że ta funkcja działa kompleksowo tylko wtedy, gdy programy uruchamiające zaimplementują ją zgodnie z oczekiwaniami. AOSP zawiera przykładową implementację. Zobacz identyfikator zmiany AOSP Iccd6f965fa3d61992244a365efc242122292c0ca, aby zapoznać się z dostarczonym przykładowym kodem.
Powiadomienia o zmianie stanu urządzenia dla instalatorów pakietów
Chronioną transmisję systemową można wysłać do aplikacji posiadających uprawnienie INSTALL_PACKAGES
za każdym razem, gdy nastąpi zmiana właściwości, takich jak ustawienia regionalne lub gęstość wyświetlania. Odbiorcy mogą zostać zarejestrowani w manifeście i rozpoczyna się proces odbioru transmisji. Jest to przydatne w przypadku instalatorów pakietów, którzy chcą zainstalować dodatkowe składniki aplikacji po takich zmianach, co jest rzadkością, ponieważ zmiany konfiguracji kwalifikujące się do wyzwolenia tej emisji są rzadkie.
Kod źródłowy powiadomienia o zmianie stanu urządzenia znajduje się w następujących lokalizacjach w obszarze platform/frameworks/base
:
-
api/system-current.txt
-
core/java/android/content/Intent.java
-
core/res/AndroidManifest.xml
-
services/core/java/com/android/server/am/ActivityManagerService.java
Architektura informacji
Zmiany w architekturze informacji w aplikacji Ustawienia zapewniają większą funkcjonalność i łatwiejszą implementację.
Testy
Badanie
Narzędzie wiersza poleceń Atest umożliwia lokalne tworzenie, instalowanie i uruchamianie testów systemu Android, co znacznie przyspiesza ponowne uruchamianie testów bez konieczności znajomości opcji wiersza poleceń wiązek testowych Federacji Handlowej.
Zestaw testów zgodności
Pliki do pobrania CTS
Pakiety Compatibility Test Suite (CTS) obsługujące system Android 9 są dostępne na stronie pobierania CTS . Kod źródłowy dołączonych testów można zsynchronizować ze znacznikiem android-cts-9.0_r1
w drzewie open source.
Opcje CTS
W systemie Android 9 CTS v2 zyskuje następujące polecenie i argument :
-
run retry
ponawia wszystkie testy, które zakończyły się niepowodzeniem lub które nie zostały wykonane w poprzednich sesjach. -
'--shard-count
dzieli CTS na określoną liczbę niezależnych fragmentów, aby działać równolegle na wielu urządzeniach.
Ponadto do tego samego opisu poleceń konsoli CTS v2 dodano wcześniej nieudokumentowaną komendę --retry-type
.
Usługa bezpiecznego elementu (SE).
Usługa Secure Element sprawdza bezpieczne elementy obsługiwane przez platformę globalną, identyfikując, czy urządzenia mają implementację SE HAL, a jeśli tak, to ile. Służy to jako podstawa do testowania interfejsu API i podstawowej implementacji bezpiecznego elementu.
Skrzynka zgrzewająca czujnik
Moduł fuzji czujników jest używany w teście fuzji czujników pakietu Camera Image Test Suite (Camera ITS) i teście synchronizacji wielu kamer. Zapewnia spójne środowisko testowe do pomiaru dokładności sygnatury czasowej kamery i innych czujników w telefonach z systemem Android. Więcej informacji znajdziesz na tych stronach:
- Skrócona instrukcja obsługi modułu Sensor Fusion Box zawiera kroki niezbędne do skonfigurowania testu zgrzewania czujnika i modułu zgrzewania czujnika po raz pierwszy.
- Montaż skrzynki zgrzewającej czujnika zawiera etapy montażu skrzynki zgrzewającej czujnika.
Szerokie pole widzenia ITS-in-a-box
Szerokie pole widzenia ITS-in-a-box to zautomatyzowany system przeznaczony do testowania systemów kamer o szerokim polu widzenia (WFoV) i regularnym polu widzenia (RFoV) w Camera ITS.
Zestaw testów dostawcy
Architektura kontrolera hosta
Architektura kontrolera hosta Vendor Test Suite (VTS) to architektura platformy testowej VTS zintegrowana z opartą na chmurze usługą testowania.
Testowanie HAL uwzględniające nazwę usługi
Testowanie HAL rozpoznające nazwę usługi VTS umożliwia uzyskanie nazwy usługi danej instancji HAL na podstawie urządzenia, na którym działają testy VTS.
Kontrola testowalności HAL
Kontrola testowalności VTS HAL obejmuje metodę uruchomieniową umożliwiającą wykorzystanie konfiguracji urządzenia do określenia, które testy VTS należy pominąć dla tego urządzenia docelowego.
Zautomatyzowana infrastruktura testowa
Infrastruktura testów automatycznych to infrastruktura VTS służąca do automatycznego testowania VTS, CTS lub innych testów na urządzeniach partnerskich, na których działa ogólny obraz systemu AOSP (GSI).
Debugowanie
Zaawansowana telemetria
W systemie Android telemetria to proces automatycznego zbierania informacji o użytkowaniu i diagnostyce urządzenia, systemu Android i aplikacji. W poprzednich wersjach systemu Android stos telemetryczny był ograniczony i nie przechwytywał informacji potrzebnych do identyfikowania i rozwiązywania problemów z niezawodnością systemu oraz urządzeniami lub aplikacjami. Utrudniało to, jeśli nie niemożliwe, identyfikację pierwotnych przyczyn problemów.
Android 9 zawiera funkcję telemetrii statsd
, która rozwiązuje ten problem, szybciej zbierając lepsze dane. statsd
zbiera statystyki dotyczące użytkowania aplikacji, baterii i procesów oraz awarie. Dane są analizowane i wykorzystywane do ulepszania produktów, sprzętu i usług.
Aby uzyskać więcej informacji, zobacz frameworks/base/cmds/statsd/
.
Funkcjonalność związana z bezpieczeństwem
Podpisywanie aplikacji
Schemat podpisu APK w wersji 3 obsługuje rotację kluczy APK.
Wsparcie biometryczne
Android 9 zawiera publiczną klasę BiometricPrompt
, której aplikacje mogą używać do integrowania obsługi uwierzytelniania biometrycznego w sposób niezależny od urządzenia i modalności. Aby uzyskać więcej informacji na temat integrowania stosu danych biometrycznych w celu uwzględnienia BiometricPrompt
, zobacz Biometrics .
Analiza dynamiczna
Android 9 obsługuje więcej narzędzi do ograniczania i analizy exploitów .
Integralność przepływu sterowania (CFI)
Integralność przepływu sterowania (CFI) to mechanizm bezpieczeństwa, który zabrania zmian w oryginalnym wykresie przepływu sterowania skompilowanego pliku binarnego, co znacznie utrudnia przeprowadzenie takich ataków.
CFI jądra
Oprócz systemowego interfejsu CFI, który jest domyślnie włączony, system Android 9 i nowsze wersje obsługują integralność przepływu sterowania jądra (CFI) .
Szyfrowanie
Szyfrowanie oparte na plikach
Zaktualizowano szyfrowanie oparte na plikach (FBE), aby działało z akceptowalną pamięcią masową . Nowe urządzenia powinny używać szyfrowania opartego na plikach zamiast szyfrowania całego dysku.
Szyfrowanie metadanych
Android 9 i nowsze wersje obsługują szyfrowanie metadanych tam, gdzie dostępna jest obsługa sprzętu. W przypadku szyfrowania metadanych pojedynczy klucz obecny podczas rozruchu wykorzystuje szyfrowanie oparte na plikach do szyfrowania dowolnej niezaszyfrowanej zawartości.
Magazyn kluczy
Android 9 i nowsze wersje zawierają Keymaster 4 , który ma te funkcje.
Kasa pancerna
Android 9 i nowsze wersje obsługują klucze Android Keystore, które są przechowywane i używane w fizycznie oddzielnym procesorze zaprojektowanym specjalnie do zastosowań o wysokim poziomie bezpieczeństwa, takim jak wbudowany bezpieczny element (SE) . StrongBox Keymaster to implementacja Keymaster HAL w dyskretnym, bezpiecznym sprzęcie. StrongBox posiada:
- Dyskretny procesor
- Zintegrowane bezpieczne przechowywanie
- Wysokiej jakości generator liczb losowych
- Opakowanie odporne na manipulacje
- Rezystancja kanału bocznego
Bezpieczny import kluczy
Aby bezpiecznie zaimportować klucz do Keymaster 4, klucz utworzony poza urządzeniem jest szyfrowany przy użyciu specyfikacji autoryzacji, które definiują sposób użycia klucza.
Obsługa 3DES
Keymaster 4 zawiera technologię 3DES zapewniającą kompatybilność ze starszymi systemami korzystającymi z technologii 3DES.
Wersja wiążąca
Aby wesprzeć modułową strukturę Treble i przerwać powiązanie system.img
z boot.img
, Keymaster 4 zmienił model powiązania wersji klucza , aby mieć oddzielne poziomy poprawek dla każdej partycji. Umożliwia to niezależną aktualizację każdej partycji, zapewniając jednocześnie ochronę przed wycofywaniem zmian.
Interfejs API chronionych potwierdzeń dla systemu Android
Obsługiwane urządzenia, które uruchamiają się z zainstalowanym systemem Android 9, umożliwiają programistom korzystanie z interfejsu API Android ProtectedConfirmation . Dzięki temu interfejsowi API aplikacje mogą używać ConfirmationPrompt
do wyświetlania użytkownikowi monitu z prośbą o zatwierdzenie krótkiego oświadczenia. To oświadczenie pozwala aplikacji ponownie potwierdzić, że użytkownik chce dokończyć poufną transakcję, np. dokonać płatności.
SELinux
Piaskownica SELinux dla aplikacji
Piaskownica aplikacji ma nowe zabezpieczenia i przypadki testowe, które zapewniają, że wszystkie nieuprzywilejowane aplikacje przeznaczone dla systemu Android 9 i nowszych wersji działają w indywidualnych piaskownicach SELinux.
Zmiany w Treble SELinux
Aktualizacje Treble SELinux w systemie Android 9 i nowszych są udokumentowane na kilku stronach w sekcji SELinux .
Inicjacja dostawcy
Vendor init zamyka lukę w podziale systemu Treble na dostawców, używając oddzielnej domeny SELinux do uruchamiania poleceń /vendor
z uprawnieniami specyficznymi dla dostawcy.
Właściwości systemu
Android 9 ogranicza niepotrzebne udostępnianie właściwości systemu pomiędzy partycjami system
i vendor
oraz zapewnia metodę zapewnienia spójności między udostępnionymi właściwościami systemu.
Testy atrybutów SELinux
Android 9 zawiera nowe testy w czasie kompilacji , które zapewniają, że wszystkie pliki w określonych lokalizacjach mają odpowiednie atrybuty . Na przykład wszystkie pliki w sysfs
mają wymagany atrybut sysfs_type
.
Audio
Efekty dźwiękowe o wysokiej rozdzielczości
Aktualizacje efektów dźwiękowych o wysokiej rozdzielczości obejmują konwersję przetwarzania efektów z formatu int16 na format float oraz zwiększenie liczby jednoczesnych ścieżek wyjściowych klienta, maksymalnej pamięci klienta/serwera i całkowitej liczby zmiksowanych ścieżek.
Kamera
Zewnętrzne kamery USB
Android 9 i nowsze wersje obsługują kamery USB typu plug-and-play (czyli kamery internetowe) korzystające ze standardowego interfejsu API Android Camera2 i interfejsu HIDL aparatu.
Śledzenie ruchu
Urządzenia z kamerą mogą ogłaszać możliwość śledzenia ruchu .
Obsługa wielu kamer
Obsługa wielu kamer obejmuje obsługę interfejsu API dla urządzeń z wieloma kamerami za pośrednictwem nowego logicznego urządzenia kamery składającego się z dwóch lub więcej fizycznych kamer skierowanych w tym samym kierunku.
Parametry sesji
Implementacja parametrów sesji może zmniejszyć opóźnienia, umożliwiając klientom kamer aktywną konfigurację podzbioru kosztownych parametrów żądań w ramach fazy inicjowania sesji przechwytywania.
Jeden producent, wielu buforów konsumenckich
Transport buforowy kamery jednego producenta, wielu konsumentów to zestaw metod, które umożliwiają klientom kamer dynamiczne dodawanie i usuwanie powierzchni wyjściowych, gdy sesja przechwytywania jest aktywna i trwa przesyłanie strumieniowe z kamery.
Łączność
Dzwonienie i wysyłanie wiadomości
Wdrażaj plany danych
Android 9 i nowsze zapewniają ulepszoną obsługę operatorów wdrażających plany transmisji danych przy użyciu interfejsów API SubscriptionPlan.
Aplikacje do połączeń innych firm
Android 9 i nowsze wersje udostępniają interfejsy API, które umożliwiają aplikacjom do obsługi połączeń innych firm (3P) obsługę równoczesnych połączeń przychodzących od operatora i rejestrowanie połączeń w rejestrze połączeń systemowych.
Przewoźnik
Identyfikacja przewoźnika
W systemie Android 9 AOSP dodaje bazę danych identyfikatorów przewoźnika, aby pomóc w identyfikacji operatora . Baza danych minimalizuje powielanie logiki i fragmentację aplikacji, zapewniając wspólny sposób identyfikacji przewoźników.
eSIM
Wbudowana karta SIM (eSIM lub eUICC) to najnowsza technologia umożliwiająca użytkownikom mobilnym pobranie profilu operatora i aktywację usługi operatora bez konieczności posiadania fizycznej karty SIM. W systemie Android 9 i nowszych struktura systemu Android zapewnia standardowe interfejsy API umożliwiające dostęp do karty eSIM i zarządzanie profilami subskrypcji na karcie eSIM. Aby uzyskać więcej informacji, zobacz:
Obsługa wielu kart SIM dla ustawień IMS
Android 9 i nowsze wersje zapewniają ulepszenia ustawień użytkownika dla podsystemu multimediów IP (IMS) . Możesz skonfigurować połączenia głosowe LTE (VoLTE), połączenia wideo i połączenia Wi-Fi dla poszczególnych subskrypcji, zamiast udostępniać te ustawienia wszystkim subskrypcjom.
Transmisje stanu karty SIM
W systemie Android 9 i nowszych wersjach Intent.ACTION_SIM_STATE_CHANGED
jest przestarzały i dodano dwie oddzielne transmisje stanu karty i stanu aplikacji karty, TelephonyManager.ACTION_SIM_CARD_STATE_CHANGED
i TelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED
.
Dzięki tym zmianom odbiorniki, które muszą jedynie wiedzieć, czy karta jest obecna, nie muszą nasłuchiwać zmian stanu aplikacji, a odbiorniki, które muszą jedynie wiedzieć, czy aplikacje na kartach są gotowe, nie muszą nasłuchiwać zmian stanu karty.
Dwie nowe transmisje to @SystemApis i nie są lepkie. Transmisje mogą odbierać tylko odbiorniki z uprawnieniem READ_PRIVILEGED_PHONE_STATE
.
Intencje nie są ponownie przesyłane po odblokowaniu urządzenia. Odbiorniki zależne od transmisji wysłanych przed odblokowaniem muszą albo użyć directBootAware
, albo muszą zapytać o stan po odblokowaniu użytkownika. Zapytania o stany można sprawdzać za pomocą odpowiednich interfejsów API w programie TelephonyManager, getSimCardState()
i getSimApplicationState()
.
Wi-Fi
Wi-Fi operatora
Funkcja Wi-Fi operatora umożliwia urządzeniom automatyczne łączenie się z sieciami Wi-Fi obsługiwanymi przez operatora. W obszarach o dużym natężeniu ruchu lub przy minimalnym zasięgu sieci komórkowej, takich jak stadion lub stacja metra, Wi-Fi operatora pomaga poprawić łączność i odciążyć ruch.
Randomizacja MAC
Randomizacja adresów MAC umożliwia urządzeniom używanie losowych adresów MAC podczas wyszukiwania nowych sieci, gdy nie są one aktualnie powiązane z siecią. W systemie Android 9 i nowszych wersjach można włączyć opcję programistyczną, dzięki której urządzenie będzie używać losowego adresu MAC podczas łączenia się z siecią Wi-Fi.
Włącz Wi-Fi automatycznie
Gdy włączona jest funkcja Włącz Wi-Fi automatycznie , Wi-Fi zostanie automatycznie ponownie włączone, gdy urządzenie znajdzie się w pobliżu zapisanej sieci Wi-Fi z wystarczająco wysokim wskaźnikiem względnej siły odbieranego sygnału (RSSI).
Czas podróży w obie strony Wi-Fi
Czas podróży w obie strony Wi-Fi (RTT) umożliwia urządzeniom pomiar odległości do innych urządzeń obsługujących, niezależnie od tego, czy są to punkty dostępowe (AP), czy urządzenia równorzędne Wi-Fi Aware (jeśli urządzenie obsługuje funkcję Wi-Fi Aware). Ta funkcja jest oparta na protokole IEEE 802.11mc i umożliwia aplikacjom korzystanie z większej dokładności i świadomości lokalizacji.
Ulepszenia punktacji Wi-Fi
Ulepszone modele punktacji Wi-Fi szybko i dokładnie określają, kiedy urządzenie powinno opuścić podłączoną sieć Wi-Fi lub wejść do nowej sieci Wi-Fi. Modele te zapewniają użytkownikom niezawodne i bezproblemowe działanie, unikając przerw w łączności.
Przejrzyj i dostosuj wartości RSSI w zasobach config.xml
, zwłaszcza następujące:
-
config_wifi_framework_wifi_score_bad_rssi_threshold_5GHz
-
config_wifi_framework_wifi_score_entry_rssi_threshold_5GHz
-
config_wifi_framework_wifi_score_bad_rssi_threshold_24GHz
-
config_wifi_framework_wifi_score_entry_rssi_threshold_24GHz
Współbieżność Wi-Fi STA/AP
Współbieżność Wi-Fi STA/AP to zdolność urządzeń do jednoczesnego działania w trybie stacji (STA) i punktu dostępu (AP). W przypadku urządzeń obsługujących dwuzakresową jednoczesną sieć Wi-Fi (DBS) otwiera to takie możliwości, jak niezakłócanie sieci Wi-Fi STA, gdy użytkownik chce włączyć hotspot (SoftAP).
Ulepszenia WiFiStateMachine
WifiStateMachine
to główna klasa używana do kontrolowania aktywności Wi-Fi, koordynowania działań użytkownika (tryby pracy: hotspot, skanowanie, łączenie lub wyłączanie) i kontrolowania działań w sieci Wi-Fi (takich jak skanowanie lub łączenie).
W systemie Android 9 i nowszych wersjach kod struktury Wi-Fi i implementacja WifiStateMachine
zostały przeprojektowane, co prowadzi do zmniejszenia rozmiaru kodu, łatwiejszej do przestrzegania logiki sterowania Wi-Fi, lepszej szczegółowości sterowania oraz zwiększonego zasięgu i jakości testów jednostkowych .
Na wysokim poziomie WifiStateMachine
pozwala Wi-Fi znajdować się w jednym z czterech stanów:
- Tryb klienta (można łączyć się i skanować)
- Tryb tylko skanowania
- Tryb SoftAP (hotspot Wi-Fi)
- Wyłączone (Wi-Fi całkowicie wyłączone)
Każdy tryb Wi-Fi ma inne wymagania dotyczące działania usług i powinien być skonfigurowany w sposób spójny, obsługujący tylko zdarzenia istotne dla jego działania. Nowa implementacja ogranicza kod do zdarzeń związanych z tym trybem, redukując czas debugowania i ryzyko wprowadzenia nowych błędów ze względu na złożoność. Oprócz jawnej obsługi funkcji trybu, zarządzanie wątkami jest obsługiwane w spójny sposób, a użycie kanałów asynchronicznych jako mechanizmu synchronizacji jest wyeliminowane.
Aktualizacje uprawnień Wi-Fi
W Androidzie 9 i nowszych uprawnienia aplikacji CHANGE_WIFI_STATE
są domyślnie włączone. Możesz wyłączyć uprawnienia dla dowolnej aplikacji na stronie ustawień , wybierając Ustawienia > Aplikacje i powiadomienia > Specjalny dostęp do aplikacji > Kontrola Wi-Fi .
Aplikacje muszą obsługiwać przypadki, w których nie przyznano uprawnienia CHANGE_WIFI_STATE
.
Aby sprawdzić to zachowanie, przeprowadź testy robotyczne i ręczne.
Do testów ręcznych:
- Wybierz Ustawienia > Aplikacje i powiadomienia > Specjalny dostęp do aplikacji > Kontrola Wi-Fi .
- Wybierz i wyłącz uprawnienia dla swojej aplikacji.
- Sprawdź, czy Twoja aplikacja może obsłużyć scenariusz, w którym nie przyznano uprawnienia
CHANGE_WIFI_STATE
.
Wycofanie WPS
Ze względów bezpieczeństwa konfiguracja chroniona Wi-Fi (WPS) w WiFiManager
jest przestarzała i wyłączona w systemie Android 9 i nowszych wersjach. Jednak WiFiDirect
nadal używa WPS w suplikacie WPA.
Grafika
Realizacja
API Vulkana 1.1
Android 9 i nowsze obsługują implementację graficznego API Vulkan 1.1 .
Narzędzie WinScope do śledzenia przejść okien
Android 9 i nowsze wersje zawierają narzędzie WinScope do śledzenia przejść okien. WinScope zapewnia infrastrukturę i narzędzia do rejestrowania i analizowania stanu menedżera okien podczas i po przejściach. Umożliwia nagrywanie i krokowe przejście przez okna, jednocześnie rejestrując wszystkie istotne stany menedżera okien w pliku śledzenia. Możesz użyć tych danych do ponownego odtworzenia i przejścia przez przejście.
Kod źródłowy narzędzia WinScope znajduje się pod adresem platform/development/tools/winscope
.
Interakcja
Dźwięk samochodowy
Automotive Audio opisuje architekturę audio dla wdrożeń Androida związanych z motoryzacją.
Sieci neuronowe (NN) HAL definiuje abstrakcję różnych akceleratorów. Sterowniki tych akceleratorów muszą być zgodne z tą warstwą HAL.
Pojazd HAL
Właściwości pojazdu opisują zmiany w interfejsie HAL pojazdu.
Wybór satelity GNSS
Podczas pracy z nowym globalnym systemem nawigacji satelitarnej (GNSS) HAL (wersja 1.1+) Android Framework monitoruje ustawienia Androida. Partnerzy mogą zmieniać ustawienia z usług Google Play lub innych aktualizacji systemu. Te ustawienia informują GNSS HAL, czy określone satelity GNSS nie powinny być używane. Może to być przydatne w przypadku utrzymujących się błędów satelity GNSS lub konstelacji lub do szybszego reagowania na problemy z implementacją GNSS HAL, które mogą wystąpić podczas mieszania konstelacji korzystających z różnych systemów czasowych i zdarzeń zewnętrznych, takich jak przesunięcie sekundy przestępnej, dnia lub tygodnia .
Model sprzętu GNSS
W systemie Android 9 GNSS HAL w wersji 1.1 lub wyższej może przekazywać informacje o sprzętowym API do platformy. Platforma musi zaimplementować interfejs IGnssCallback
i przekazać uchwyt do warstwy HAL. HAL GNSS przekazuje informacje o modelu sprzętu za pomocą metody LocationManager#getGnssHardwareModelName()
. Producenci urządzeń powinni współpracować ze swoimi dostawcami GNSS HAL, aby w miarę możliwości udostępniać te informacje.
Uprawnienia
Konfigurowanie uznaniowych aktualizacji kontroli dostępu
Konfigurowanie dyskrecjonalnej kontroli dostępu (DAC) zawiera aktualizacje mechanizmu identyfikatorów Androida (AID) w celu rozszerzenia możliwości systemu plików.
Umieszczanie na białej liście uprawnień aplikacji uprzywilejowanych
W systemie Android 9 i nowszych wersjach, jeśli istnieją uprawnienia, którym należy odmówić, zmodyfikuj plik XML, aby używać tagu deny-permission
zamiast tagu permission
używanego w poprzednich wersjach.
Dane
Ulepszenia szacowania przepustowości
Android 9 zapewnia ulepszoną obsługę szacowania przepustowości. Aplikacje na Androida mogą konfigurować bardziej odpowiednie ustawienia rozdzielczości dla rozmów wideo i strumieniowego przesyłania wideo, jeśli mają dostęp do dostępnej przepustowości danych.
Na urządzeniach z systemem Android 6.0 lub nowszym osoba dzwoniąca chcąca oszacować przepustowość sieci komórkowej wywołuje funkcję ConnectivityManager.requestBandwidthUpdate()
, a platforma może udostępnić szacunkową przepustowość łącza pobierającego.
Jednak na urządzeniach z wersją 9 lub nowszą wywołanie zwrotne onCapabilitiesChanged()
jest uruchamiane automatycznie, gdy nastąpi znacząca zmiana w szacowanej przepustowości, a wywołanie requestBandwidthUpdate()
nie daje żadnego efektu; powiązane metody getLinkDownstreamBandwidthKbps()
i getLinkUpstreamBandwidthKbps()
są wypełniane zaktualizowanymi informacjami dostarczonymi przez warstwę fizyczną.
Ponadto urządzenia mogą sprawdzać przepustowość komórek LTE za pomocą ServiceState.getCellBandwidths()
. Dzięki temu aplikacje mogą określić, jaka przepustowość (częstotliwość) jest dostępna w danej komórce. Informacje o przepustowości komórki są dostępne poprzez ukryte menu, dzięki czemu testerzy terenowi mogą sprawdzić najbardziej aktualne informacje.
Monitorowanie ruchu eBPF
Narzędzie ruchu sieciowego eBPF wykorzystuje kombinację implementacji jądra i przestrzeni użytkownika do monitorowania wykorzystania sieci na urządzeniu od ostatniego uruchomienia urządzenia. To narzędzie zapewnia dodatkowe funkcje, takie jak znakowanie gniazd, oddzielanie ruchu na pierwszym planie od tła oraz zapora sieciowa dla poszczególnych UID, która blokuje aplikacjom dostęp do sieci w zależności od stanu urządzenia.
Przywróć do niższych interfejsów API
Urządzenia mogą teraz przywracać dane z przyszłych wersji systemu operacyjnego. Jest to szczególnie przydatne, gdy użytkownicy zmodernizowali swoje telefony, ale potem je zgubili lub uszkodzili.
Jeśli OEM zmodyfikuje agentów kopii zapasowych dla któregokolwiek pakietu systemowego (Android, system, ustawienia), agenci ci powinni poradzić sobie z przywróceniem zestawów kopii zapasowych utworzonych na wyższych wersjach platformy bez awarii i z przywróceniem przynajmniej części danych.
Rozważ użycie walidatora do sprawdzenia nieprawidłowych wartości danego fragmentu danych kopii zapasowej i przywrócenia tylko prawidłowych danych, jak w core/java/android/provider/SettingsValidators.java
.
Ta funkcja jest domyślnie włączona. Obsługa przywracania przez SettingsBackupAgent z przyszłych wersji może zostać wyłączona poprzez Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION
. Nie jest wymagana żadna dodatkowa implementacja, chyba że producent urządzenia rozszerzy jednego z agentów zapasowych zawartych w pamięci ROM (lub doda agenta niestandardowego).
Ta funkcja umożliwia przywracanie systemu z przyszłych wersji platformy; jednak można się spodziewać, że przywrócone dane nie będą kompletne. Poniższe instrukcje dotyczą następujących agentów zapasowych:
PackageManagerBackupAgent obsługuje przyszłe wersje danych kopii zapasowych poprzez wersjonowanie formatu; rozszerzenia tutaj muszą być kompatybilne z bieżącym kodem przywracania lub postępować zgodnie z instrukcjami w klasie, które obejmują podbijanie odpowiednich stałych.
SystemBackupAgent określa
restoreAnyVersion = false
w systemie Android 9 i nowszych wersjach. Nie obsługuje przywracania z wyższych wersji API.SettingsBackupAgent określa
restoreAnyVersion = true
w systemie Android 9 i nowszych wersjach. Częściowe wsparcie istnieje za pośrednictwem walidatorów. Ustawienie można przywrócić z wyższej wersji API, jeśli w docelowym systemie operacyjnym istnieje dla niego moduł sprawdzający. Dodaniu dowolnego ustawienia powinien towarzyszyć jego walidator. Sprawdź szczegóły zajęć.Każdy niestandardowy agent kopii zapasowych zawarty w pamięci ROM powinien zwiększyć swój kod wersji za każdym razem, gdy zostanie dokonana niezgodna zmiana w formacie danych kopii zapasowej i upewnić się,
restoreAnyVersion = false
(wartość domyślna), jeśli ich agent nie jest przygotowany do radzenia sobie z danymi kopii zapasowej z przyszłej wersji ich kod.
Przedsiębiorstwo
Zarządzane ulepszenia profilu
Zmiany UX dla zarządzanych profili ułatwiają użytkownikom identyfikację zarządzanego profilu, dostęp do niego i kontrolowanie go.
Wstrzymaj OTA
Nowy @SystemApi pozwala właścicielom urządzeń na czas nieokreślony wstrzymywać aktualizacje OTA , w tym aktualizacje zabezpieczeń.
Wydajność
Zdrowie 2.0
Android 9 i nowsze wersje zawierają android.hardware.health
HAL 2.0, główną aktualizację wersji health@1.0 HAL. Więcej informacji znajdziesz na tych stronach:
Rozwiązanie buforowania APK
Android 9 i nowsze wersje zawierają rozwiązanie buforowania plików APK umożliwiające szybką instalację wstępnie załadowanych aplikacji na urządzeniu obsługującym partycje A/B. Producenci OEM mogą umieszczać wstępnie załadowane aplikacje i popularne aplikacje w pamięci podręcznej APK przechowywanej głównie na pustej partycji B na nowych urządzeniach z partycjami A/B bez wpływu na przestrzeń danych dostępną dla użytkownika.
Optymalizacja oparta na profilu
System Android 9 i nowsze obsługują optymalizację opartą na profilach (PGO) firmy Clang w natywnych modułach systemu Android, które mają reguły kompilacji planów.
Rejestrowanie z wyprzedzeniem
Specjalny tryb bazy danych SQLiteDatabase, nazywany rejestrowaniem z wyprzedzeniem zgodności (WAL), umożliwia bazie danych użycie journal_mode=WAL
przy jednoczesnym zachowaniu maksymalnie jednego połączenia na bazę danych.
Czasy rozruchu
W systemie Android 9 zmieniono optymalizację czasu rozruchu zgodnie z opisem w części Optymalizacja czasu rozruchu .
Moc
Ograniczenia tła
Android 9 i nowsze wersje zawierają ograniczenia działające w tle , które pozwalają użytkownikom ograniczać aplikacje, które mogą zużywać energię baterii. System może również sugerować wyłączenie aplikacji, które negatywnie wpływają na stan urządzenia.
Urządzenia bez baterii
Android 9 radzi sobie z urządzeniami bez baterii bardziej elegancko niż w poprzednich wersjach. Android 9 usuwa kod urządzeń bez baterii, które domyślnie zakładały, że bateria jest obecna, naładowana w 100% i jest w dobrym stanie, z normalnym odczytem temperatury na termistorze.