Informacje o wersji Androida 9

Na tej stronie znajdziesz podsumowanie najważniejszych funkcji w wersji Androida 9 oraz linki do dodatkowych informacji. Podsumowania funkcji są uporządkowane według miejsca, w którym znajdują się ich dokumenty w tej witrynie. Więcej informacji o przenoszeniu i zmianie nazwy sekcji znajdziesz w tym przewodniku.

Kompilacja

Podstawowy obraz systemu (GSI)

Podstawowy obraz systemu (GSI) to obraz systemu z dostosowanymi konfiguracjami dla urządzeń z Androidem. Podstawowy obraz systemu (GSI) zawiera szczegółowe informacje o różnicach między obrazami GSI dla urządzeń wprowadzonych na rynek z Androidem 9 a urządzeniami, które zostały zaktualizowane do Androida 9.

Architektura

Warstwa abstrakcji sprzętowej (HAL)

Zgodność wsteczna frameworka HIDL

Weryfikacja zgodności wstecznej platformy HIDL to metoda sprawdzania zgodności wstecznej platformy.

Dynamicznie dostępne HAL-e

Dynamicznie dostępne HAL-e obsługują dynamiczne wyłączanie podsystemów sprzętowych Androida, gdy nie są używane lub nie są potrzebne.

HIDL

HIDL MemoryBlock

HIDL MemoryBlock to warstwa abstrakcji zbudowana na hidl_memory, HIDL @1.0::IAllocatorHIDL @1.0::IMapper. Jest ona przeznaczona dla usług HIDL, które mają wiele bloków pamięci współdzielących jeden obszar pamięci.

Nakładki drzewa urządzeń

Skompresowane nakładki

Android 9 i nowszy obsługuje skompresowane nakładki w obrazie nakładki DTBO (Device Tree Blob Overlay) podczas korzystania z wersji 1 nagłówka tabeli drzewa urządzenia.

Aktualizacje nakładek drzewa urządzeń

Android 9 i nowsze wersje wymagają, aby program rozruchowy przekazywał do jądra ujednolicony plik binarny drzewa urządzenia przed zmodyfikowaniem właściwości zdefiniowanych w nakładkach drzewa urządzenia (DTO).

Wersjonowanie nagłówka obrazu DTBO

Android 9 i nowszy zawiera pole wersji w nagłówku obrazu DTBO.

Weryfikacja DTBO

Android 9 i nowsze wersje wymagają partycji DTBO. Aby dodać węzły lub wprowadzić zmiany we właściwościach w DT SoC, program rozruchowy musi dynamicznie nakładać DT specyficzne dla urządzenia na DT SoC. Więcej informacji znajdziesz w artykule Kompilowanie i weryfikowanie.

Zgodność jądra

Android 9 i nowsze wersje zawierają wymagania, które mają wpływ na jądro, jego interfejsy i korzystanie z plików DTBO. Więcej informacji znajdziesz na tych stronach:

NDK dostawcy

Zmiany w projekcie

Informacje o zmianach w projekcie VNDK w Androidzie 9 i nowszym znajdziesz na tych stronach:

Sprawdzanie interfejsu ABI

Na stronie Stabilność interfejsu ABI opisano narzędzie do sprawdzania interfejsu binarnego aplikacji (ABI), które zapewnia, że zmiany wprowadzone w bibliotekach VNDK zachowują zgodność z interfejsem ABI.

Zrzuty VNDK

Obraz systemu może używać migawek VNDK, aby dostarczać prawidłowe biblioteki VNDK do obrazów dostawców, nawet jeśli obrazy systemu i dostawców są tworzone na podstawie różnych wersji Androida.

Obiekt interfejsu dostawcy (VINTF)

Na tych stronach w sekcji Obiekt interfejsu dostawcy opisujemy aktualizacje w Androidzie 9 i nowszych wersjach:

Harmonogram wycofywania HIDL

Na tych stronach znajdziesz informacje o tym, jak Android wycofuje i usuwa interfejsy HAL HIDL:

Program rozruchowy

Podziały produktów

Android 9 i nowszy obsługuje tworzenie /productpartycji za pomocą systemu kompilacji Androida. Wcześniej Android w wersji 8.x wymuszał oddzielenie komponentów specyficznych dla systemu na chipie (SoC) od partycji /system i przeniesienie ich na partycję /vendor bez wydzielania miejsca na komponenty specyficzne dla producenta OEM, które zostały utworzone w systemie kompilacji Androida.

Zgodność z kanoniczną przyczyną rozruchu

Na stronie Canonical Boot Reason (Kanoniczna przyczyna rozruchu) opisano zmiany w specyfikacji przyczyny rozruchu programu rozruchowego w Androidzie 9 i nowszych.

System jako root

Wszystkie urządzenia z Androidem 9 lub nowszym muszą korzystać z systemu jako katalogu głównego, który łączy ramdisk.imgsystem.img (znanym też jako no-ramdisk), a ten z kolei jest montowany jako rootfs.

Wersjonowanie nagłówka obrazu rozruchowego

W Androidzie 9 i nowszych wersjach nagłówek obrazu rozruchowego zawiera pole wskazujące wersję nagłówka. Program rozruchowy musi sprawdzić to pole wersji i odpowiednio przeanalizować nagłówek.

DTBO w trybie odzyskiwania

Aby zapobiec niepowodzeniom aktualizacji OTA z powodu niezgodności między obrazem przywracania systemu a partycją DTBO na urządzeniach innych niż A/B, obraz przywracania systemu musi zawierać informacje z obrazu DTBO.

Wyświetlacz

Wycięcia w ekranie

Wycięcia w ekranie umożliwiają deweloperom tworzenie wciągających interfejsów od krawędzi do krawędzi, a jednocześnie zapewniają miejsce na ważne czujniki z przodu urządzenia.

Przełączanie sugestii

Zmiany w działaniu obracania ekranu Android 9 i nowsze wersje obsługują sterowanie obracaniem ekranu przez użytkownika, aby można było przypiąć obrót ekranu do trybu poziomego lub pionowego, nawet jeśli pozycja urządzenia się zmieni.

Synchronizowane przejścia między aplikacjami

Zsynchronizowane przejścia między aplikacjami umożliwiają nowe animacje przejść między aplikacjami.

Klasyfikacja tekstu (wcześniej 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:

  • High Dynamic Range (HDR)
  • Przetwarzanie treści w przestrzeni kolorów BT2020, ale nie jako docelowej przestrzeni danych

Aby korzystać z szerokiej gamy kolorów, cały stos wyświetlacza urządzenia (np. ekran, kompozytor sprzętowy, procesor graficzny) musi obsługiwać szeroką gamę kolorów lub formaty buforów. Urządzenia nie muszą deklarować obsługi treści o szerokiej gamie kolorów, nawet jeśli obsługują ją sprzętowo. 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ć szerokiej gamy kolorów podczas działania aplikacji.

Zgodność

Dokument definicji zgodności z Androidem

Dokument definicji zgodności (CDD) Androida 9 jest ulepszoną wersją poprzednich wersji, która zawiera aktualizacje dotyczące nowych funkcji i zmiany wymagań dotyczących wcześniej udostępnionych funkcji.

Ustawienia

Lepsze widżety aplikacji

Platforma widżetów aplikacji na Androida zapewnia większą widoczność interakcji użytkowników, zwłaszcza gdy usuwają oni lub ręcznie dodają widżety. Ta funkcja jest domyślnie dostępna w Launcherze 3.

Producenci muszą zaktualizować aplikacje uruchamiające (dostarczane z urządzeniami), aby obsługiwały tę funkcję, jeśli nie są oparte na Launcher3. Producenci OEM muszą obsługiwać nowe pole widgetFeatures w domyślnym programie uruchamiającym.

Pamiętaj, że ta funkcja działa w pełni tylko wtedy, gdy programy uruchamiające zaimplementują ją zgodnie z oczekiwaniami. AOSP zawiera przykładową implementację. Przykładowy kod znajdziesz w AOSP Change-Id Iccd6f965fa3d61992244a365efc242122292c0ca.

Powiadomienia o zmianie stanu urządzenia dla instalatorów pakietów

Chroniony komunikat systemowy może być wysyłany do aplikacji, które mają uprawnienie INSTALL_PACKAGES, za każdym razem, gdy zmieniają się właściwości takie jak ustawienia regionalne lub gęstość wyświetlania. Odbiorniki można zarejestrować w pliku manifestu, a proces jest wznawiany, aby odebrać transmisję. Jest to przydatne w przypadku instalatorów pakietów, którzy chcą instalować dodatkowe komponenty aplikacji po takich zmianach, co jest rzadkie, ponieważ zmiany konfiguracji, które mogą wywołać tę transmisję, są rzadkie.

Kod źródłowy powiadomienia o zmianie stanu urządzenia znajduje się w tych lokalizacjach w 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 łatwiejsze wdrażanie.

Testy

Atest

Narzędzie wiersza poleceń Atest umożliwia lokalne tworzenie, instalowanie i uruchamianie testów Androida, co znacznie przyspiesza ponowne uruchamianie testów bez konieczności znajomości opcji wiersza poleceń platformy testowej Trade Federation.

Compatibility Test Suite

Pobieranie CTS

Pakiety Compatibility Test Suite (CTS) obsługujące Androida 9 są dostępne na stronie CTS Downloads. Kod źródłowy dołączonych testów można zsynchronizować z tagiem android-cts-9.0_r1 w drzewie open source.

Opcje CTS

W przypadku Androida 9 CTS w wersji 2 zyskuje to polecenie i argument:

  • run retry ponawia wszystkie testy, które nie powiodły się lub nie zostały wykonane w poprzednich sesjach.
  • ‘--shard-count dzieli uruchomienie pakietu CTS na podaną liczbę niezależnych części, które można uruchamiać równolegle na wielu urządzeniach.

Dodaliśmy też wcześniej nieudokumentowane polecenie --retry-type do tego samego dokumentu referencyjnego poleceń konsoli CTS w wersji 2.

Usługa Secure Element (SE)

Usługa Secure Element sprawdza, czy urządzenia mają bezpieczne elementy obsługiwane przez platformę globalną, identyfikując, czy urządzenia mają implementację SE HAL, a jeśli tak, to ile. Jest to podstawa do testowania interfejsu API i implementacji bazowego bezpiecznego elementu.

Urządzenie do fuzji danych z czujników

Urządzenie do fuzji czujników jest używane w teście fuzji czujników i teście synchronizacji wielu kamer w pakiecie testów obrazu z kamery (Camera ITS) i zapewnia spójne środowisko testowe do pomiaru dokładności sygnatury czasowej kamery i innych czujników w telefonach z Androidem. Więcej informacji znajdziesz na tych stronach:

ITS-in-a-box o szerokim polu widzenia

ITS-in-a-box o szerokim polu widzenia to zautomatyzowany system przeznaczony do testowania systemów kamer o szerokim polu widzenia (WFoV) i zwykłym polu widzenia (RFoV) w ramach Camera ITS.

Vendor Test Suite

Architektura kontrolera hosta

Architektura kontrolera hosta Vendor Test Suite (VTS) to architektura platformy testowej VTS zintegrowana z usługą testową opartą na chmurze.

Testowanie HAL z uwzględnieniem nazwy usługi

Testowanie HAL z uwzględnieniem nazwy usługi VTS umożliwia uzyskanie nazwy usługi danej instancji HAL na podstawie urządzenia, na którym są uruchamiane testy VTS.

Sprawdzanie możliwości testowania HAL

Sprawdzanie możliwości testowania HAL VTS obejmuje metodę czasu działania, która wykorzystuje konfigurację urządzenia do określania, które testy VTS należy pominąć w przypadku danego urządzenia docelowego.

Infrastruktura testów automatycznych

Infrastruktura testów automatycznych to infrastruktura VTS do automatycznego testowania VTS, CTS i innych testów na urządzeniach partnerów z podstawowym obrazem systemu (GSI) AOSP.

Debugowanie

Zaawansowana telemetria

W Androidzie telemetria to proces automatycznego zbierania informacji o użytkowaniu i diagnostyce urządzenia, systemu Android i aplikacji. W poprzednich wersjach Androida stos telemetrii był ograniczony i nie rejestrował informacji potrzebnych do identyfikowania i rozwiązywania problemów z niezawodnością systemu oraz urządzeń lub aplikacji. Utrudniało to, a nawet uniemożliwiało, identyfikowanie głównych przyczyn problemów.

Android 9 zawiera statsdfunkcję telemetrii, która rozwiązuje ten problem, ponieważ szybciej zbiera lepsze dane. statsd zbiera dane o używaniu aplikacji, statystyki baterii i procesów oraz informacje o awariach. Dane są analizowane i wykorzystywane do ulepszania produktów, sprzętu i usług.

Więcej informacji znajdziesz w sekcji frameworks/base/cmds/statsd/.

Funkcje zabezpieczeń

Podpisywanie aplikacji

Schemat podpisywania plików APK w wersji 3 obsługuje zmianę klucza APK.

Obsługa biometrii

Android 9 zawiera klasę publiczną BiometricPrompt, z której aplikacje mogą korzystać, aby zintegrować obsługę uwierzytelniania biometrycznego w sposób niezależny od urządzenia i rodzaju uwierzytelniania. Więcej informacji o integracji stosu biometrycznego z BiometricPrompt znajdziesz w sekcji Biometria.

Analiza dynamiczna

Android 9 obsługuje więcej narzędzi do ograniczania i analizowania exploitów.

Integralność przepływu sterowania (CFI)

Integralność przepływu sterowania (CFI) to mechanizm zabezpieczeń, który uniemożliwia zmiany w oryginalnym grafie przepływu sterowania skompilowanego pliku binarnego, co znacznie utrudnia przeprowadzanie takich ataków.

Kernel CFI

Oprócz systemowego CFI, który jest domyślnie włączony, Android 9 i nowsze wersje obsługują integralność przepływu sterowania w jądrze (CFI).

Szyfrowanie

Szyfrowanie oparte na plikach

Szyfrowanie oparte na plikach (FBE) zostało zaktualizowane, aby działać z pamięcią adaptacyjną. Nowe urządzenia powinny używać szyfrowania opartego na plikach zamiast pełnego szyfrowania dysku.

Szyfrowanie metadanych

Android 9 i nowsze wersje obsługują szyfrowanie metadanych, jeśli jest dostępna obsługa sprzętowa. W przypadku szyfrowania metadanych pojedynczy klucz obecny w momencie uruchomienia szyfruje wszystkie niezaszyfrowane treści za pomocą szyfrowania opartego na plikach.

Magazyn kluczy

Android 9 i nowszy zawiera Keymaster 4, który ma te funkcje:

StrongBox

Android 9 i nowsze wersje obsługują klucze Android Keystore, które są przechowywane i używane w fizycznie oddzielnym procesorze przeznaczonym do aplikacji o wysokim poziomie bezpieczeństwa, takich jak wbudowany bezpieczny element (SE). StrongBox Keymaster to implementacja interfejsu HAL Keymaster w oddzielnym bezpiecznym sprzęcie. StrongBox ma:

  • Dyskretny procesor
  • Zintegrowane bezpieczne miejsce na dane
  • Wysokiej jakości generator prawdziwie losowych liczb
  • Opakowanie odporne na ingerencje
  • Odporność na ataki typu side-channel

Bezpieczny import klucza

Aby bezpiecznie zaimportować klucz do Keymastera 4, klucz utworzony poza urządzeniem jest szyfrowany zgodnie ze specyfikacją autoryzacji, która określa sposób użycia klucza.

Obsługa 3DES

Keymaster 4 zawiera 3DES, aby zapewnić zgodność ze starszymi systemami, które go używają.

Powiązanie wersji

Aby obsługiwać modułową strukturę Treble i zerwać powiązanie system.imgboot.img, w Keymasterze 4 zmieniono model powiązania wersji klucza, tak aby każda partycja miała osobne poziomy poprawek. Dzięki temu każda partycja może być aktualizowana niezależnie, a jednocześnie zapewnia ochronę przed przywracaniem.

Android Protected Confirmation API

Urządzenia obsługujące Androida 9 umożliwiają programistom korzystanie z interfejsu Android Protected Confirmation API. Ten interfejs API umożliwia aplikacjom używanie instancji ConfirmationPrompt do wyświetlania użytkownikowi prośby o zatwierdzenie krótkiego oświadczenia. To oświadczenie pozwala aplikacji potwierdzić, że użytkownik chce dokonać transakcji wymagającej szczególnej ostrożności, np. płatności.

SELinux

Piaskownica SELinux dla poszczególnych aplikacji

Piaskownica aplikacji ma nowe zabezpieczenia i przypadki testowe, które zapewniają, że wszystkie aplikacje bez uprawnień kierowane na Androida 9 i nowsze działają w osobnych piaskownicach SELinux.

Zmiany w SELinux w ramach projektu Treble

Aktualizacje SELinux w architekturze Treble w Androidzie 9 i nowszych wersjach są opisane na kilku stronach w sekcji SELinux.

Inicjowanie przez dostawcę

Vendor init wypełnia lukę w podziale systemu/dostawcy w Treble, używając osobnej domeny SELinux do uruchamiania poleceń /vendor z uprawnieniami dostawcy.

Właściwości systemowe

Android 9 ogranicza niepotrzebne udostępnianie właściwości systemu między partycjami systemvendor oraz zapewnia metodę utrzymywania spójności między udostępnianymi właściwościami systemu.

Testy atrybutów SELinux

Android 9 zawiera nowe testy czasu kompilacji, które sprawdzają, czy 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 w wysokiej rozdzielczości

Aktualizacje efektów audio w wysokiej rozdzielczości obejmują konwersję przetwarzania efektów z formatu int16 na format zmiennoprzecinkowy oraz zwiększenie liczby jednoczesnych ścieżek wyjściowych klienta, maksymalnej pamięci klienta/serwera i łącznej liczby ścieżek miksowanych.

Aparat

zewnętrzne kamery USB,

Android 9 i nowsze wersje obsługują kamery USB typu plug-and-play (czyli kamery internetowe) za pomocą standardowego interfejsu Android Camera2 API i interfejsu HIDL kamery.

Śledzenie ruchu

Urządzenia z kamerą mogą reklamować funkcję śledzenia ruchu.

Obsługa wielu kamer

Obsługa wielu aparatów obejmuje obsługę interfejsu API dla urządzeń z wieloma aparatami za pomocą nowego urządzenia z aparatem logicznym, które składa się z co najmniej 2 fizycznych aparatów skierowanych w tym samym kierunku.

Parametry sesji

Wdrożenie parametrów sesji może skrócić opóźnienia, ponieważ umożliwia klientom aparatu aktywne konfigurowanie podzbioru kosztownych parametrów żądania w ramach fazy inicjowania sesji przechwytywania.

Bufor z jednym producentem i wieloma konsumentami

Transport bufora kamery z jednym producentem i wieloma odbiorcami to zestaw metod, które umożliwiają klientom kamery dynamiczne dodawanie i usuwanie powierzchni wyjściowych podczas aktywnej sesji przechwytywania i trwającego przesyłania strumieniowego z kamery.

Łączność

Połączenia i wiadomości

Wdrażanie pakietów danych

Android 9 i nowsze wersje zapewniają lepszą obsługę operatorów wdrażających pakiety danych za pomocą interfejsów SubscriptionPlan API.

Aplikacje innych firm do prowadzenia rozmów

Android 9 i nowsze wersje udostępniają interfejsy API, które umożliwiają aplikacjom do połączeń innych firm obsługę jednoczesnych połączeń przychodzących od operatora i rejestrowanie połączeń w systemowym rejestrze połączeń.

Operator

Identyfikacja operatora

W Androidzie 9 AOSP dodaje bazę danych identyfikatorów operatorów, aby ułatwić identyfikację operatorów. Baza danych minimalizuje powielanie logiki i fragmentację aplikacji, ponieważ zapewnia wspólny sposób identyfikowania operatorów.

eSIM

Wbudowana karta SIM (eSIM lub eUICC) to najnowsza technologia, która umożliwia użytkownikom urządzeń mobilnych pobieranie profilu operatora i aktywowanie jego usług bez fizycznej karty SIM. W Androidzie 9 i nowszych platforma Androida udostępnia standardowe interfejsy API do uzyskiwania dostępu do karty eSIM i zarządzania profilami subskrypcji na karcie eSIM. Aby dowiedzieć się więcej, zobacz:

Obsługa wielu kart SIM w przypadku ustawień IMS

Android 9 i nowsze wersje zawierają ulepszenia ustawień użytkownika dotyczące podsystemu multimedialnego IP (IMS). Możesz skonfigurować połączenia głosowe w LTE (VoLTE), rozmowy wideo i połączenia przez Wi-Fi dla każdej subskrypcji z osobna, zamiast udostępniać te ustawienia we wszystkich subskrypcjach.

Transmisje stanu karty SIM

W Androidzie 9 i nowszych wersjach parametr Intent.ACTION_SIM_STATE_CHANGED jest wycofany, a dodane są 2 osobne transmisje stanu karty i stanu aplikacji karty: TelephonyManager.ACTION_SIM_CARD_STATE_CHANGEDTelephonyManager.ACTION_SIM_APPLICATION_STATE_CHANGED.

Dzięki tym zmianom odbiorcy, którzy potrzebują dostępu do informacji o tym, czy karta jest obecna, nie muszą nasłuchiwać zmian stanu aplikacji, a odbiorcy, którzy potrzebują dostępu do informacji o tym, czy aplikacje kart są gotowe, nie muszą nasłuchiwać zmian stanu karty.

Dwa nowe sygnały to @SystemApis i nie są one trwałe. Tylko odbiorcy z uprawnieniem READ_PRIVILEGED_PHONE_STATE mogą odbierać transmisje.

Po odblokowaniu urządzenia intencje nie są ponownie rozsyłane. Odbiorniki, które zależą od transmisji wysyłanych przed odblokowaniem, muszą używać directBootAware lub po odblokowaniu przez użytkownika muszą sprawdzać stan. Stany można sprawdzać za pomocą odpowiednich interfejsów API w klasie TelephonyManager, getSimCardState()igetSimApplicationState().

Wi-Fi

Wi-Fi operatora

Funkcja Wi-Fi operatora umożliwia urządzeniom automatyczne łączenie się z sieciami Wi-Fi wdrożonymi przez operatorów. W miejscach o dużym natężeniu ruchu lub o słabym zasięgu sieci komórkowej, takich jak stadion czy stacja metra, Wi-Fi operatora pomaga poprawić łączność i odciążyć sieć.

Randomizacja adresu MAC

Randomizacja MAC umożliwia urządzeniom używanie losowych adresów MAC podczas wyszukiwania nowych sieci, gdy nie są one obecnie połączone z siecią. Na urządzeniach z Androidem 9 lub nowszym można włączyć opcję programisty, która powoduje, że urządzenie używa losowego adresu MAC podczas łączenia się z siecią Wi-Fi.

Włącz Wi-Fi automatycznie

Gdy funkcja Włącz Wi-Fi automatycznie jest włączona, Wi-Fi jest automatycznie włączane ponownie, gdy urządzenie znajduje się w pobliżu zapisanej sieci Wi-Fi o wystarczająco wysokim względnym wskaźniku siły odbieranego sygnału (RSSI).

Czas błądzenia w Wi-Fi

Czas podróży w obie strony (RTT) w Wi-Fi umożliwia urządzeniom pomiar odległości od innych urządzeń obsługujących tę funkcję, niezależnie od tego, czy są to punkty dostępu (AP) czy urządzenia równorzędne Wi-Fi Aware (jeśli urządzenie obsługuje Wi-Fi Aware). Ta funkcja jest oparta na protokole IEEE 802.11mc i umożliwia aplikacjom korzystanie z większej dokładności lokalizacji i lepszego rozpoznawania otoczenia.

Ulepszenia dotyczące oceniania sieci Wi-Fi

Ulepszone modele oceny Wi-Fi szybko i dokładnie określają, kiedy urządzenie powinno opuścić połączoną sieć Wi-Fi lub wejść do nowej sieci Wi-Fi. Te modele zapewniają użytkownikom niezawodną i płynną obsługę, ponieważ unikają przerw w połączeniu.

Sprawdź i dostosuj wartości RSSI w config.xml zasobach, a zwłaszcza w tych:

  • 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

Jednoczesne działanie Wi-Fi STA/AP

Jednoczesne działanie w trybie STA/AP to możliwość jednoczesnego działania urządzeń w trybie stacji (STA) i punktu dostępu (AP). W przypadku urządzeń obsługujących dwuzakresowe Wi-Fi (DBS) otwiera to możliwości takie jak brak zakłóceń w działaniu Wi-Fi STA, gdy użytkownik chce włączyć hotspot (SoftAP).

Ulepszenia WiFiStateMachine

WifiStateMachine to główna klasa używana do sterowania aktywnością Wi-Fi, koordynowania danych wejściowych użytkownika (tryby działania: hotspot, skanowanie, łączenie lub wyłączanie) oraz sterowania działaniami sieci Wi-Fi (takimi jak skanowanie lub łączenie).

W Androidzie 9 i nowszych wersjach kod platformy Wi-Fi i implementacja WifiStateMachine zostały przeprojektowane, co pozwoliło zmniejszyć rozmiar kodu, ułatwić śledzenie logiki sterowania Wi-Fi, zwiększyć szczegółowość sterowania oraz poprawić zasięg i jakość testów jednostkowych.

Ogólnie rzecz biorąc,WifiStateMachine umożliwia Wi-Fi działanie w jednym z 4 stanów:

  • Tryb klienta (możliwość łączenia się i skanowania)
  • Tryb tylko skanowanie
  • Tryb SoftAP (hotspot Wi-Fi)
  • Wyłączone (Wi-Fi całkowicie wyłączone)

Każdy tryb Wi-Fi ma inne wymagania dotyczące uruchamiania usług i powinien być skonfigurowany w spójny sposób, obsługując tylko zdarzenia związane z jego działaniem. Nowa implementacja ogranicza kod do zdarzeń związanych z tym trybem, co skraca czas debugowania i zmniejsza ryzyko wprowadzenia nowych błędów z powodu złożoności. Oprócz jawnej obsługi funkcji trybu zarządzanie wątkami jest realizowane w spójny sposób, a użycie kanałów asynchronicznych jako mechanizmu synchronizacji zostało wyeliminowane.

Aktualizacje uprawnień Wi-Fi

Na Androidzie 9 i nowszym uprawnienie aplikacji CHANGE_WIFI_STATE jest domyślnie włączone. Uprawnienia możesz wyłączyć w przypadku dowolnej aplikacji na stronie ustawień – Ustawienia > Aplikacje i powiadomienia > Specjalny dostęp do aplikacji > Sterowanie Wi-Fi.

Aplikacje muszą obsługiwać przypadki, w których CHANGE_WIFI_STATE nie przyznano uprawnień.

Aby sprawdzić to działanie, uruchom testy roboelectric i testy ręczne.

W przypadku testów ręcznych:

  1. Kliknij Ustawienia > Aplikacje i powiadomienia > Specjalny dostęp do aplikacji > Sterowanie Wi-Fi.
  2. Wybierz i wyłącz uprawnienia aplikacji.
  3. Sprawdź, czy aplikacja obsługuje sytuację, w której CHANGE_WIFI_STATEnie przyznano uprawnień.

Wycofanie WPS

Ze względu na problemy z bezpieczeństwem bezpieczna konfiguracja Wi-Fi (WPS) w WiFiManager została wycofana i jest wyłączona na Androidzie 9 i nowszych. WiFiDirect nadal używa jednak WPS w programie WPA supplicant.

Grafika

Implementacja

Interfejs API Vulkan 1.1

Android 9 i nowsze wersje obsługują implementację interfejsu graficznego Vulkan 1.1.

Narzędzie WinScope do śledzenia przejść między oknami

Android 9 i nowsze wersje zawierają narzędzie WinScope do śledzenia przejść między oknami. WinScope udostępnia infrastrukturę i narzędzia do rejestrowania i analizowania stanu menedżera okien w trakcie i po przejściach. Umożliwia nagrywanie i przechodzenie przez przejścia między oknami, a także rejestrowanie w pliku śledzenia wszystkich istotnych stanów menedżera okien. Możesz użyć tych danych, aby odtworzyć przejście i przejść przez nie krok po kroku.

Kod źródłowy narzędzia WinScope znajduje się w lokalizacji platform/development/tools/winscope.

Interakcja

Samochodowy sprzęt audio

Automotive Audio to opis architektury audio w przypadku implementacji Androida związanych z motoryzacją.

Warstwa HAL sieci neuronowych (NN) definiuje abstrakcję różnych akceleratorów. Sterowniki tych akceleratorów muszą być zgodne z HAL.

Interfejs HAL pojazdu

Vehicle Properties opisuje zmiany w interfejsie HAL pojazdu.

Wybór satelity GNSS

W przypadku korzystania z nowych warstw HAL globalnego systemu nawigacji satelitarnej (GNSS) (wersja 1.1 lub nowsza) platforma Androida monitoruje ustawienia Androida. Partnerzy mogą zmieniać ustawienia w ramach usług Google Play lub innych aktualizacji systemu. Te ustawienia informują GNSS HAL, czy nie należy używać niektórych satelitów GNSS. Może to być przydatne w przypadku trwałych błędów satelitów lub konstelacji GNSS albo w celu 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 przestawienie sekund przestępnych, dni lub numerów tygodni.

Model sprzętu GNSS

W Androidzie 9 interfejs HAL GNSS w wersji 1.1 lub nowszej może przekazywać do platformy informacje o interfejsie API sprzętu. Platforma musi zaimplementować interfejs IGnssCallback i przekazać uchwyt do HAL. GNSS HAL przekazuje informacje o modelu sprzętu za pomocą metody LocationManager#getGnssHardwareModelName(). Producenci urządzeń powinni współpracować z dostawcami HAL GNSS, aby w miarę możliwości udostępniać te informacje.

Uprawnienia

Aktualizacje konfigurowania uznaniowej kontroli dostępu

Konfigurowanie uznaniowej kontroli dostępu (DAC) zawiera aktualizacje mechanizmu identyfikatorów Androida (AID) w celu rozszerzenia możliwości systemu plików.

Umieszczanie uprawnień aplikacji z podwyższonymi uprawnieniami na białej liście

W Androidzie 9 i nowszych wersjach, jeśli są uprawnienia, które powinny zostać odrzucone, zmień kod XML, aby używać tagu deny-permission zamiast tagu permission używanego w starszych wersjach.

Dane

Ulepszenia szacowania przepustowości

Android 9 zapewnia lepszą obsługę szacowania przepustowości. Aplikacje na Androida mogą stosować bardziej odpowiednie ustawienia rozdzielczości w przypadku połączeń wideo i transmisji strumieniowych wideo, jeśli mają dostęp do dostępnej przepustowości danych.

Na urządzeniach z Androidem 6.0 lub nowszym dzwoniący, który chce uzyskać szacunkową przepustowość sieci komórkowej, dzwoni pod numer ConnectivityManager.requestBandwidthUpdate(), a platforma może podać szacunkową przepustowość pobierania.

Na urządzeniach z Androidem 9 lub nowszym wywołanie zwrotne onCapabilitiesChanged() jest automatycznie uruchamiane, gdy nastąpi znacząca zmiana szacowanej przepustowości, a wywołanie requestBandwidthUpdate() nie powoduje żadnych działań. Powiązane wywołania zwrotne getLinkDownstreamBandwidthKbps()getLinkUpstreamBandwidthKbps() są wypełniane zaktualizowanymi informacjami dostarczanymi przez warstwę fizyczną.

Urządzenia mogą też sprawdzać pasma komórek LTE za pomocą narzędzia ServiceState.getCellBandwidths(). Dzięki temu aplikacje mogą określać, ile przepustowości (częstotliwości) jest dostępne w danej komórce. Informacje o przepustowości sieci komórkowej są dostępne w ukrytym menu, dzięki czemu testerzy terenowi mogą sprawdzać najbardziej aktualne dane.

Monitorowanie ruchu eBPF

Narzędzie do analizy ruchu w sieci eBPF wykorzystuje połączenie implementacji w przestrzeni jądra i użytkownika do monitorowania wykorzystania sieci na urządzeniu od ostatniego uruchomienia. To narzędzie zapewnia dodatkowe funkcje, takie jak tagowanie gniazd, rozdzielanie ruchu na pierwszym planie i w tle oraz zapora sieciowa dla każdego identyfikatora UID, która blokuje aplikacjom dostęp do sieci w zależności od stanu urządzenia.

Przywracanie do starszych wersji interfejsów API

Urządzenia mogą teraz przywracać dane z przyszłych wersji systemu operacyjnego. Jest to szczególnie przydatne, gdy użytkownicy uaktualnią telefony, a potem je zgubią lub uszkodzą.

Jeśli producent OEM zmodyfikuje agentów kopii zapasowej dla dowolnego z pakietów systemowych (android, system, ustawienia), powinni oni obsługiwać przywracanie zestawów kopii zapasowych utworzonych w nowszych wersjach platformy bez awarii i z przywracaniem co najmniej części danych.

Rozważ użycie walidatora, aby sprawdzić, czy w danych kopii zapasowej nie ma nieprawidłowych wartości, i przywróć tylko prawidłowe dane, jak w przykładzie core/java/android/provider/SettingsValidators.java.

Ta funkcja jest domyślnie włączona. Obsługę przywracania z przyszłych wersji przez SettingsBackupAgent można wyłączyć za pomocą Settings.Global.OVERRIDE_SETTINGS_PROVIDER_RESTORE_ANY_VERSION. Nie jest wymagana żadna dodatkowa implementacja, chyba że producent urządzenia rozszerzy jednego z agentów kopii zapasowej dołączonych do pamięci ROM (lub doda niestandardowego agenta).

Ta funkcja umożliwia przywracanie systemu z przyszłych wersji platformy, ale można się spodziewać, że przywrócone dane nie będą kompletne. Poniższe instrukcje dotyczą tych agentów kopii zapasowych:

  • PackageManagerBackupAgent obsługuje przyszłe wersje danych kopii zapasowej dzięki obsłudze wersji formatu. Rozszerzenia w tym miejscu muszą być zgodne z bieżącym kodem przywracania lub postępować zgodnie z instrukcjami w klasie, które obejmują zwiększanie odpowiednich stałych.

  • SystemBackupAgent określa restoreAnyVersion = false w Androidzie 9 i nowszych wersjach. Nie obsługuje przywracania z nowszych wersji interfejsu API.

  • SettingsBackupAgent określa restoreAnyVersion = true w Androidzie 9 i nowszych wersjach. Częściowa obsługa jest dostępna za pomocą walidatorów. Ustawienie można przywrócić z wyższej wersji interfejsu API, jeśli w docelowym systemie operacyjnym istnieje jego walidator. Dodanie dowolnego ustawienia powinno być poprzedzone jego walidatorem. Szczegóły znajdziesz w klasie.

  • Każdy niestandardowy agent kopii zapasowej dołączony do pamięci ROM powinien zwiększać kod wersji za każdym razem, gdy w formacie danych kopii zapasowej zostanie wprowadzona niezgodna zmiana, i zapewniać wartość restoreAnyVersion = false (domyślną), jeśli agent nie jest przygotowany do obsługi danych kopii zapasowej z przyszłej wersji kodu.

Enterprise

Ulepszenia profilu zarządzanego

Zmiany w interfejsie profili zarządzanych ułatwiają użytkownikom identyfikowanie, uzyskiwanie dostępu do profili zarządzanych i kontrolowanie ich.

Wstrzymywanie OTAs

Nowy interfejs @SystemApi umożliwia właścicielom urządzeń bezterminowe wstrzymywanie aktualizacji OTA, w tym aktualizacji zabezpieczeń.

Wydajność

Zdrowie 2.0

Android 9 i nowszy zawiera android.hardware.health HAL 2.0, czyli główną wersję HAL 1.0. Więcej informacji znajdziesz na tych stronach:

Rozwiązanie do buforowania plików APK

Android 9 i nowsze wersje zawierają rozwiązanie buforowania plików APK, które umożliwia szybkie instalowanie wstępnie załadowanych aplikacji na urządzeniach obsługujących partycje A/B. Producenci OEM mogą umieszczać wstępnie załadowane i popularne aplikacje w pamięci podręcznej APK przechowywanej głównie w pustej partycji B na nowych urządzeniach z partycjami A/B bez wpływu na przestrzeń danych widoczną dla użytkownika.

Optymalizacja na podstawie profilu

Android 9 i nowsze wersje obsługują optymalizację z użyciem profilu (PGO) w kompilatorze Clang w przypadku natywnych modułów Androida, które mają reguły kompilacji w formacie blueprint.

Zapisywanie logów z wyprzedzeniem

Specjalny tryb SQLiteDatabase o nazwie zgodne logowanie wyprzedzające (WAL) umożliwia bazie danych korzystanie z journal_mode=WAL przy zachowaniu maksymalnie jednego połączenia na bazę danych.

Czas uruchamiania

W Androidzie 9 optymalizacja czasu uruchamiania została zmieniona w sposób opisany w artykule Optymalizacja czasu uruchamiania.

Zasilanie

Ograniczenia dotyczące działania w tle

Android 9 i nowsze wersje zawierają ograniczenia dotyczące działania w tle, które pozwalają użytkownikom ograniczać działanie aplikacji, które mogą wyczerpywać baterię. System może też sugerować wyłączenie aplikacji, które negatywnie wpływają na stan urządzenia.

Urządzenia bez baterii

Android 9 lepiej radzi sobie z urządzeniami bez baterii niż poprzednie wersje. Android 9 usuwa kod dla urządzeń bez baterii, które domyślnie zakładały, że bateria jest obecna, naładowana w 100% i w dobrym stanie, a termistor odczytuje normalną temperaturę.