Informacje o wydaniu Androida 9

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:

Dostawca NDK

Zmiany projektowe

Informacje na temat zmian projektowych VNDK w systemie Android 9 i nowszych wersjach można znaleźć na tych stronach:

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:

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:

  1. Wybierz Ustawienia > Aplikacje i powiadomienia > Specjalny dostęp do aplikacji > Kontrola Wi-Fi .
  2. Wybierz i wyłącz uprawnienia dla swojej aplikacji.
  3. 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.