Versionshinweise zu Android 10

Auf dieser Seite werden die wichtigsten Funktionen von Android 10 zusammengefasst und Links zu weiteren Informationen bereitgestellt. Diese Funktionszusammenfassungen sind nach dem Speicherort der Dokumentation der Funktion auf dieser Website organisiert.

Entwickeln

java_sdk_library

In Android 10 wird java_sdk_library eingeführt, eine neue Build-Regel zur Behebung von Kompatibilitätsproblemen für freigegebene Java-Bibliotheken. Gerätehersteller können diesen Mechanismus für ihre eigenen freigegebenen Java-Bibliotheken verwenden, um die Abwärtskompatibilität ihrer APIs aufrechtzuerhalten.

Architektur

Modulare Systemkomponenten

Android 10 modularisiert einige Android-Systemkomponenten und ermöglicht Updates außerhalb des normalen Android-Releasezyklus. Beispiele für Module:

Hardware Abstraction Layer (HAL)

In Android 10 wird die Unterstützung für HALs hinzugefügt, die automatisch heruntergefahren werden, wenn sie keine Clients haben.

Ploppendes Popcorn

ABI

Android 10 unterstützt neue ABI-Monitoring-Dienstprogramme, mit denen sich Änderungen am Kernel-ABI vergleichen, verfolgen und abmildern lassen, die sich auf die Kompatibilität mit Kernelmodulen auswirken.

Android 10 führt außerdem einen symbolbasierten ABI-Nutzungsprüfer ein. Der Checker kann veraltete vorkompilierte Binärdateien zur Buildzeit erkennen, damit Entwickler von freigegebenen Bibliotheken wissen, welche vorkompilierten Binärdateien durch ihre Änderung möglicherweise beschädigt werden und welche neu erstellt werden müssen.

Android Live-Lock Daemon

Android 10 enthält den Android Live-Lock Daemon (llkd), der Kernel-Deadlocks erkennen und beheben soll.

vDSO32 auf ARM64

Android 10 unterstützt die Verwendung von vDSO32 auf 64-Bit-Kerneln, was die Akkulaufzeit um 0,4 % verlängert und andere Leistungsverbesserungen ermöglicht.

fstab-Einträge für früh bereitgestellte Partitionen

Unter Android 10 müssen Geräte fstab-Einträge für frühzeitig bereitgestellte Partitionen mithilfe einer fstab-Datei im RAM-Disk der ersten Stufe angeben.

HIDL

BroadcastQueue auslagern

Android 10 enthält eine neue Auslagerungsfunktion BroadcastQueue für die vorhandenen Hintergrund- und Vordergrund-Warteschlangen. Die Offload-Warteschlange hat dieselbe Priorität und dasselbe Zeitüberschreitungsverhalten wie die Hintergrundwarteschlange. Um zu verhindern, dass die Hintergrundwarteschlange blockiert wird, in der interessantere oder für Nutzer sichtbare Übertragungen stattfinden können, wird die BOOT_COMPLETED-Übertragung von der Offload-Warteschlange verarbeitet. Diese Übertragung wird von vielen Apps abgehört und kann sehr lange dauern. Die Auslagerungswarteschlange verarbeitet derzeit nur die BOOT_COMPLETED-Ausstrahlung, kann aber auch andere lange Ausstrahlungen verarbeiten.

SystemSuspend-Dienst

In Android 10 wird der Thread in libsuspend, der für die Inaktivität des Systems verantwortlich ist, durch den SystemSuspend-HIDL-Dienst ersetzt. Diese Implementierung bietet dieselben Funktionen wie frühere Versionen und nutzt gleichzeitig die Vorteile der Android-HIDL-Infrastruktur.

safe_union in HIDL

In Android 10 wird in HIDL der explizit getaggte Union-Typ safe_union eingeführt.

Konfiguration

ConfigStore HAL

In Android 10 wird die ConfigStore HAL aufgrund des hohen Arbeitsspeicherverbrauchs und der schwierigen Verwendung eingestellt und durch Systemeigenschaften ersetzt.

Config File Schema API

Die Android-Plattform enthält eine große Anzahl von XML-Dateien zum Speichern von Konfigurationsdaten. Viele der XML-Dateien befinden sich in der Partition vendor, werden aber in der Partition system gelesen. In diesem Fall dient das Schema der XML-Datei als Schnittstelle zwischen den beiden Partitionen. Daher muss das Schema explizit angegeben und auf rückwärtskompatible Weise weiterentwickelt werden. Vor Android 10 gab es auf der Plattform keine Mechanismen, die die Angabe und Verwendung des XML-Schemas erzwingen oder inkompatible Änderungen am Schema verhindern. Android 10 bietet diesen Mechanismus, die Config File Schema API.

Systemeigenschaften als APIs

Systemeigenschaften, auf die über Partitionen hinweg zugegriffen wird, werden in sysprop-Beschreibungsdateien schematisiert. APIs für den Zugriff auf Eigenschaften werden als konkrete Funktionen für C++ und Klassen für Java generiert.

Objekt „Vendor Interface“ (VINTF)

VINTF

Zu den Änderungen an VINTF in Android 10 gehören:

Bootloader

Ramdisk

In Android 10 ist das Root-Dateisystem nicht mehr in ramdisk.img enthalten, sondern wird stattdessen in system.img zusammengeführt.

ODM-Partitionen erstellen

Android 10 unterstützt das Erstellen von odm-Partitionen mit dem Android-Build-System. Sie können eine separate /odm-Partition für Anpassungen verwenden, sodass Sie ein einzelnes Anbieter-Image für mehrere Hardware-SKUs verwenden können. So können ODMs (Original Design Manufacturers) die Board-Support-Pakete (BSPs) von SoC-Anbietern (System-on-Chip) an ihre spezifischen Geräte (Boards) anpassen. Sie können Kernelmodule für plattformspezifische Komponenten, plattformspezifische Daemons oder eigene Funktionen auf Hardwareabstraktionsschichten (HALs) implementieren. Außerdem können sie SoC-Komponenten ersetzen oder anpassen.

Versionierung der Boot-Image-Kopfzeile

Unter Android 10 wird der Boot-Image-Header auf Version 2 aktualisiert. Diese Version enthält einen Abschnitt zum Speichern des DTB-Images (Device Tree Blob). Bei den VTS-Tests für Android 10 wird überprüft, ob alle Geräte, die mit Android 10 ausgeliefert werden, die Version 2 des Boot-Image-Headers verwenden und ein gültiges DTB-Image als Teil der Boot-/Wiederherstellungs-Images enthalten.

Wiederherstellungs-Images für Geräte ohne A/B-Partition

Unter Android 9 und höher muss das Wiederherstellungs-Image eines Geräts Informationen aus dem Overlay-Image enthalten. Gerätehersteller können DeviceTree oder Advanced Configuration and Power Interface (ACPI) verwenden, um alle nicht auffindbaren Geräte zu beschreiben. Android 10 und höher unterstützen Architekturen, die ACPI anstelle von DeviceTree-Blobs für Overlays (Device Tree Blob Overlay, DTBO) verwenden.

Stabile AIDL

Android 10 unterstützt die stabile Android Interface Definition Language (AIDL). Das ist eine neue Möglichkeit, die von AIDL-Schnittstellen bereitgestellte API (Application Programming Interface)/ABI (Application Binary Interface) im Blick zu behalten.

Fastboot in den Nutzerbereich verschieben

In Android 10 wird die Unterstützung für veränderbare Partitionen hinzugefügt, indem die Fastboot-Implementierung aus dem Bootloader in den Nutzerbereich verschoben wird.

Anzeige

HDR-Videowiedergabe

Android 10 unterstützt die Wiedergabe von HDR10, VP9 und HDR10+.

Textklassifizierung

Bei der Textklassifizierung werden Machine-Learning-Techniken verwendet, um Entwicklern bei der Klassifizierung von Text zu helfen. In Android 10 wurden der TextClassifier API zwei Methoden hinzugefügt: suggestConversationActions und detectLanguage. Die Methode suggestConversationActions generiert vorgeschlagene Antworten und Aktionen aus einer bestimmten Unterhaltung und die Methode detectLanguage erkennt die Sprache des Textes.

Unterstützung für das Rendern von Zawgyi-Schriftarten

Zawgyi ist die beliebteste Schriftart in Myanmar. Android 9 und niedriger unterstützen das Rendern von Zawgyi nicht, da es nicht Unicode-konform ist. Android 10 enthält eine Unicode-Schriftart, mit der sowohl Unicode Burmese als auch Zawgyi dargestellt werden können. Für das Rendern von Zawgyi-Schriftarten auf Geräten, die mit Android 10 ausgeliefert werden, sind keine Implementierungsarbeiten erforderlich. Wenn Ihre Geräte eine benutzerdefinierte Implementierung zur Unterstützung von Zawgyi haben, haben Sie folgende Möglichkeiten:

  • Machen Sie diese Änderungen rückgängig und verwenden Sie die von der Plattform unterstützte Methode.
  • Behalten Sie die gängige Zawgyi-Schriftart in Ihrem System und verwenden Sie den Gebietscode my-qaag in Ihrer fonts.xml. Weitere Informationen finden Sie in den Unicode-CLDR-Versionshinweisen zu Zawgyi (Qaag).

Einschränkungen beim Ausblenden von App-Symbolen

Unter Android 10 können Apps ihre Launcher-Symbole nicht mehr ausblenden. Wenn für eine App keine Launcher-Aktivität aktiviert ist, zeigt das System im Launcher eine synthetische Aktivität an. Diese synthetische Aktivität entspricht der Detailseite der App in den Systemeinstellungen.

Weitere Informationen zur Logik, die zum Anzeigen von App-Symbolen verwendet wird, einschließlich der App-Typen, deren App-Symbole nicht angezeigt werden, finden Sie in der API-Referenz in der Dokumentation zu getActivityList().

Einstellungen

Um die Barrierefreiheit zu verbessern, enthält Android 10 vom Nutzer anpassbare Zeitüberschreitungseinstellungen. Die API- und Einstellungsänderungen sind mit Android 10 verfügbar. Achten Sie beim Anpassen Ihrer Einstellungen darauf, dass diese Funktion unterstützt wird. Wenn auf Ihrem Gerät Zeitüberschreitungen für UI-Elemente auftreten, verwenden Sie die Timeouts API. Weitere Informationen finden Sie in den Richtlinien für die Barrierefreiheit für Android-Entwickler.

Kompatibilität

Android Compatibility Definition Document (CDD)

Das Compatibility Definition Document (CDD) für Android 10 enthält Aktualisierungen für neue Funktionen und Änderungen an den Anforderungen für zuvor veröffentlichte Funktionen aus den vorherigen Versionen.

Tests

Compatibility Test Suite (CTS)

Für Android CTS gibt es eine separate Seite mit Versionshinweisen, auf der viele wichtige Änderungen für Android 10 aufgeführt sind.

CTS-Downloads

CTS-Pakete, die Android 10 unterstützen, sind auf der Seite CTS-Downloads verfügbar. Der Quellcode für die enthaltenen Tests kann mit dem android-cts-10_r1-Tag im Open-Source-Baum synchronisiert werden.

CTS-Distanzstück APEX

In Android 10 wird das Paket CtsShimApex eingeführt, das auf einem Gerät vorinstalliert sein muss, um CTS-Tests für die APEX-Verwaltung zu schreiben.

Test-Harnischmodus

Der CTS-Test-Harness-Modus hilft Entwicklern, Tests für ein Gerät oder einen Gerätepool zu automatisieren.

Instant Apps-Modus

Ab Android 10 wird CTS im Instant App-Modus ausgeführt. Das bedeutet, dass das Test-APK als Instant App installiert und die Tests ausgeführt werden.

Neben einem CTS-Modus für Instant Apps enthält Android 10 den CTS-Verifier für Instant Apps.

CTS Verifier Pro Audio-Test

Unter Android 10 wird ein CTS-Verifier-Test für die Pro Audio-Compliance hinzugefügt.

CTS-Verifier-MIDI-Tests

In Android 10 wird mit dem CTS-Verifier-MIDI-Test die MIDI-Funktion mit USB-MIDI-Schnittstellen, Bluetooth-MIDI-Schnittstellen und einem virtuellen MIDI-Geräte-Pfad getestet.

CTS-Testauswertung

In Android 10 wurde der Mechanismus zur Interpretation von CTS-Ergebnissen aktualisiert.

Vendor Test Suite (VTS)

VTS-Tests mit Debug-Ramdisk

In Android 10 wird der Build-Typ des generischen System-Images (GSI), das für die CTS-on-GSI-/VTS-Compliance-Tests verwendet wird, von „userdebug“ in „user“ geändert, da GSI eine Release-Signatur hat. Der Befehl adb root, mit dem einem Host Root-Berechtigungen für das zu testende Android-Gerät gewährt werden, ist jedoch in einem Nutzerbuild nicht verfügbar. Das ist ein Problem, da VTS adb root zum Ausführen benötigt.

Das Debug-Ramdisk wird eingeführt, um adb root zu ermöglichen, wenn das Gerät entsperrt ist. Dies vereinfacht den Testablauf, da dieselbe Nutzer-Build-system.img (entweder GSI oder die system.img des OEMs) wiederverwendet wird.

Hardware Composer-Validierung

Unter Android 10 wird eine neue VTS-Testklasse für die Hardware-Composer-Validierung über die readback-Schnittstelle in IComposerClient.hal hinzugefügt. Wenn Anbieter readback nicht implementieren, werden die Tests automatisch bestanden.

Fehlerbehebung

Gemeinsam genutzte Bibliotheken mit verschiedenen Klassenladern laden

Unter Android 9 und niedriger wurden die verknüpften Java-gemeinsam genutzten Bibliotheken von Apps in den Class Loader der App geladen. In Android 10 verwendet das Framework einen anderen Klassenloader als den Klassenloader der App, um Java-freigegebene Bibliotheken zu laden, die über uses-library oder uses-static-library verknüpft sind.

Im Allgemeinen sollten Apps nicht auf einen bestimmten Klassenloader angewiesen sein. Daher sollte sich diese Änderung nicht auf das App-Verhalten auswirken. Wenn eine App jedoch einen einzelnen Klassenloader verwendet, funktioniert dieses Verhalten nicht. Außerdem wird die paketinterne Sichtbarkeit von Klassen im selben Paket weiterhin unterstützt, jedoch nicht in freigegebenen Bibliotheken.

Gerätehersteller können beim Testen ihrer Geräte mit Android 10 auf Probleme mit der App-Kompatibilität stoßen.

Sicherheitsfunktionen

Eine vollständige Liste der Verbesserungen im Hinblick auf Sicherheit und Datenschutz finden Sie auf der Seite Sicherheits- und Datenschutzverbesserungen in Android 10.

Gesichtserkennung

Mit der Gesichtserkennung können Nutzer ihr Gerät entsperren, indem sie einfach in die Kamera schauen. Android 10 unterstützt einen neuen Stapel für die Gesichtserkennung, mit dem Kameraframes sicher verarbeitet werden können. So werden Sicherheit und Datenschutz bei der Gesichtserkennung auf unterstützter Hardware gewährleistet. Android 10 bietet außerdem eine einfache Möglichkeit für sicherheitskonforme Implementierungen, die App-Integration für Transaktionen wie Onlinebanking oder andere Dienste zu ermöglichen.

Erweiterter Zugriff

Trust Agents, der zugrunde liegende Mechanismus, der von Drittanbieter-Authentifizierungsmechanismen wie Smart Lock verwendet wird, kann die Entsperrung nur unter Android 10 verlängern. Trust Agents können ein gesperrtes Gerät nicht mehr entsperren und ein Gerät nur noch maximal vier Stunden lang entsperrt halten.

Verschlüsselung

OEMCrypto

Android 10 verwendet die OEMCrypto API-Version 15.

Testen

BoundsSanitizer

In Android 10 wird BoundsSanitizer (BoundSan) in Bluetooth und Codecs bereitgestellt. BoundSan verwendet den Bounds Sanitizer von UBSan. Diese Maßnahme ist pro Modul aktiviert. Er trägt zum Schutz wichtiger Android-Komponenten bei und sollte nicht deaktiviert werden. BoundSan ist in den folgenden Codecs aktiviert:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec
  • libaac
  • libxaac

Bereinigung von Ganzzahlüberläufen

In Android 10 wird die Integer Overflow Sanitization (IntSan) in Software-Codecs aktiviert. Die Wiedergabeleistung muss für alle Codecs akzeptabel sein, die von der Hardware des Geräts nicht unterstützt werden. IntSan ist in den folgenden Codecs aktiviert:

  • libFLAC
  • libavcdec
  • libavcenc
  • libhevcdec
  • libmpeg2
  • libopus
  • libvpx
  • libspeexresampler
  • libvorbisidec

Nur-Ausführungsspeicher

Standardmäßig sind ausführbare Codeabschnitte für AArch64-Systembinärdateien als „Nur ausführen“ (nicht lesbar) gekennzeichnet, um Just-in-Time-Code-Wiederverwendungsangriffe zu erschweren. Code, der Daten und Code kombiniert, und Code, der diese Abschnitte absichtlich prüft (ohne die Speichersegmente zuerst als lesbar neu zuzuordnen), funktioniert nicht mehr. Apps mit dem Ziel-SDK Android 10 (API-Level 29 oder höher) sind betroffen, wenn die App versucht, Codeabschnitte von Systembibliotheken im Arbeitsspeicher zu lesen, die nur zur Ausführung aktiviert sind, ohne den Abschnitt zuerst als lesbar zu kennzeichnen.

Scudo

Scudo ist ein dynamischer Speicherallokator im Nutzermodus, der für eine bessere Resilienz gegenüber Heap-bezogenen Sicherheitslücken entwickelt wurde. Es bietet die standardmäßigen C- und C++-Primitive zur Allokation und Dealokation.

ShadowCallStack

ShadowCallStack (SCS) ist ein LLVM-Instrumentierungsmodus, der vor Überschreibungen der Rückgabeadresse (z. B. Stack-Buffer-Overflows) schützt. Dazu wird die Rückgabeadresse einer Funktion in einer separat zugewiesenen ShadowCallStack-Instanz im Prolog der Funktion nicht untergeordneten Funktionen gespeichert und die Rückgabeadresse aus der ShadowCallStack-Instanz im epilog der Funktion geladen.

Audio

Audio HAL

Android 10 bietet die folgenden neuen Funktionen für die Audio-HAL.

  • AudioSource
  • AudioFormat
  • AudioChannelMask

Für die Audio-HAL und die Implementierung des Subsystems gelten zusätzliche Anforderungen.

Vorverarbeitungseffekte

Android bietet Vorverarbeitungseffekte wie akustische Echounterdrückung, automatische Lautstärkeregelung und Rauschunterdrückung. Android 10 enthält neue Anforderungen für die Aufnahme mit VOICE_COMMUNICATION.

Audiorichtlinienmanager

Android 10 enthält eine umfassende Refaktorisierung des Audio Policy Managers, um mehr Flexibilität für komplexe Anwendungsfälle im Automobilbereich zu bieten.

Audio in hoher Auflösung

Android 10 enthält die folgenden Verbesserungen für hochauflösendes Audio.

  • Unterstützung für Floats
  • Unterstützung von 192 kHz
  • Unterstützung von acht Kanälen
  • Angabe von Zeitangaben

Gleichzeitige Aufnahme

Android 10 verbessert die gleichzeitige Aufnahme, bei der mehrere aktive Audioaufnahmen gleichzeitig erfolgen müssen.

AudioPlaybackCapture

Android 10 enthält eine neue API namens AudioPlaybackCapture, mit der Apps Audioinhalte kopieren können, die von anderen Apps abgespielt werden. Diese Funktion ähnelt der Bildschirmaufzeichnung, ist aber für Audio gedacht. Der Hauptanwendungsfall besteht darin, Streaming-Apps die Möglichkeit zu geben, das von Spielen wiedergegebene Audio zu erfassen.

Die Capture API hat keinen Einfluss auf die Latenz der App, deren Audio aufgenommen wird.

MIDI

Mit Android 10 können professionelle Audio-Apps mit MIDI mithilfe der AMidi NDK API einfacher auf die Android-Plattform portiert werden.

Kamera

Eine Zusammenfassung der Änderungen an der Kamera API, der Kamera HAL und dem Kameramodul, die in Android 10 eingeführt wurden, finden Sie unter Kameraupdates in Android 10.

Verbesserungen beim Datenschutz im Kamera-Framework

In Android 10 wurden Verbesserungen am Kamera-Framework in Bezug auf den Datenschutz eingeführt. Damit potenziell sensible statische Kameradaten in CameraCharacteristics nicht ohne Einwilligung des Nutzers offengelegt werden, müssen Apps die Berechtigung CAMERA zum Abrufen statischer Metadaten mit einem datenschutzrelevanten Tag mit der Methode getCameraCharacteristics erhalten.

Rufen Sie die Methode getKeysNeedingPermission auf, um eine Liste der Kameraeigenschaftsschlüssel abzurufen, für die die Berechtigung CAMERA erforderlich ist.

Anfrage zur Neukonfiguration der Sitzung

In Android 10 wurde die Funktion Abfrage zur Neukonfiguration der Sitzung hinzugefügt. Dadurch lässt sich die Leistung durch eine bessere Kontrolle über die Logik zur Neukonfiguration der internen Sitzungsparameter verbessern.

APIs zur Verwaltung von HAL3-Kamerapuffern

Android 10 führt optionale APIs zur Bufferverwaltung für die Kamera HAL3 ein. Damit können Sie eine Bufferverwaltungslogik implementieren, um bei der HAL-Implementierung der Kamera unterschiedliche Kompromisse zwischen Arbeitsspeicher und Aufnahmelatenz zu erzielen.

Dynamischer physischer Kameraschalter der Kamera-HAL

In Android 10 wird das dynamische Metadaten-Tag ANDROID_LOGICAL_MULTI_CAMERA_ACTIVE_PHYSICAL_ID eingeführt, das die aktive zugrunde liegende physische Kamera eines logischen Kamerageräts angibt. Weitere Informationen finden Sie unter Unterstützung für mehrere Kameras.

Unterstützung für das Ausblenden physischer Kameras

Unter Android 10 kann die HAL der Kamera die Anzahl der physischen Kameras reduzieren, die von einer App direkt geöffnet werden können. Weitere Informationen finden Sie unter Unterstützung mehrerer Kameras.

Camera2 VNDK API

In Android 10 können Anbietermodule über zwei neue HIDL-Standardschnittstellen (android.frameworks.cameraservice.service@2.0 und android.frameworks.cameraservice.device@2.0) auf Kamerageräte zugreifen und sie steuern. Um die Verwendung der HIDL-Schnittstellen zu vereinfachen, wird in Android 10 außerdem die vom Anbieter verfügbare Bibliothek libcamera2_vendor eingeführt. Diese Bibliothek ähnelt der Camera NDK-Bibliothek, weist aber einige geringfügige Änderungen auf.

Streamkonfigurationen

Android 10 bietet Funktionen, mit denen Kameraanbieter empfohlene Kamerastreams für Kameraclients anbieten und eine API zur Abfrage von Streamkombinationen unterstützen können.

Anforderungen an die Kombination von Kamerastreams

Geräte mit Android 10 müssen Streamkombinationen mit physischen Streams von Unterkameras nicht mehr unterstützen. Geräte mit Android 10 und der Kamera-HAL-Geräteversion 3.5 müssen jedoch isStreamCombinationSupported() unterstützen, damit Apps abfragen können, ob eine Streamkombination mit physischen Streams unterstützt wird.

Weitere Informationen finden Sie unter Unterstützung für mehrere Kameras.

HEIF-Bildverarbeitung

Android 10 bietet native Kameraunterstützung für Bilder im HEIF-Format (High Efficiency Image File Format), die eine bessere Bildqualität und eine geringere Größe als JPEG-Bilder bieten. Geräte müssen einen HEIC- oder HEVC-Encoder haben, um HEIF-Bilder zu unterstützen.

Monochromkameras

Android 10 bietet zusätzliche Unterstützung für das Y8-Streamformat, statische Metadaten für Monochrom- und Nahinfrarot-Farbfilterarrays sowie DngCreator-Funktionen für Monochromkameras.

Konnektivität

Anrufe und Nachrichten

Notrufnummern und Notrufe

Android 10 bietet eine verbesserte Unterstützung für Notrufe. Bei einem Notfall können Geräte mit Unterstützung für IRadio HAL v1.4 einen Notruf mit Notrufnummern starten, die aus einer Quelle wie einer SIM-Karte, dem Netzwerksignal oder der Android-Datenbank abgerufen werden. Nummern können nach Kategorien von Rettungsdiensten wie Polizei, Feuerwehr und Krankenwagen kategorisiert werden.

APIs für Gruppenanrufe

Die APIs für Gruppenanrufe sind eine Erweiterung der eMBMS APIs, die in Android 9 hinzugefügt wurden. Die neuen APIs definieren einen Standard für Apps, die per Interaktion mit eMBMS-Middleware-Paketen an Gruppenanrufen per Mobilfunk-Broadcast teilnehmen und diese übertragen können. Für die ordnungsgemäße Funktion von Gruppenanrufen ist Unterstützung durch den Chipsatzanbieter, den Middleware-Anbieter und den Mobilfunkanbieter erforderlich. Die Entwicklerdokumentation finden Sie unter developer.google.com.

Remote-SIM-Funktionen

Android 10 bietet Remote-SIM-Funktionen, mit denen Messaging-Apps auf einem Android-Hostgerät SMS über Smartphones mithilfe von Mechanismen wie Bluetooth senden können. Weitere Informationen finden Sie in der Referenzdokumentation zur Methode getSubscriptionType und zur Konstante SUBSCRIPTION_TYPE_REMOTE_SIM.

Mehrere eSIMs

Unter Android 10 unterstützt die EuiccManager-Klasse Geräte mit mehreren eingebetteten SIMs (eSIMs) oder eUICCs.

eSIM-Updates

Für Geräte mit Android 10, die eSIMs unterstützen, muss ein nicht entfernbares eUICC-Steckplatz-ID-Array definiert werden. Außerdem müssen die Geräte IRadio HAL v1.4 und IRadioConfig HAL v1.2 unterstützen. Weitere Informationen finden Sie unter eSIM implementieren und HAL-Anforderungen.

5G Non-Standalone (NSA)

Android 10 unterstützt 5G Non-Standalone (NSA). 5G NSA ist eine Lösung für 5G-Netzwerke, bei denen das Netzwerk von einer vorhandenen 4G-Infrastruktur unterstützt wird. Unter Android 10 kann auf Geräten ein 5G-Symbol in der Statusleiste angezeigt werden, wenn sich ein Gerät mit einem 5G-Netzwerk verbindet.

Vorschlag für ein Telefonkonto

Mit Android 10 wird der Dienst für Vorschläge zu Telefonkonten eingeführt. Dabei werden Nutzern beim Anrufen Vorschläge für Telefonkonten angezeigt.

Mobilfunkanbieter

Einstellungen für Mobilfunknetze migrieren

In Android 10 wurde der UI-Code für die Mobilfunkeinstellungen neu gestaltet und aus dem Telefonie-Stack in den Einstellungen-Stack verschoben. Ändern Sie die folgenden Konfigurationswerte für die Einstellungen für Mobilfunknetze von Android-Ressourcen in CarrierConfig-Ressourcen, um den migrierten Code zu unterstützen:

config_world_mode -> CarrierConfigManager#KEY_WORLD_MODE_ENABLED_BOOL

config_support_tdscdma -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_BOOL

config_support_tdscdma_roaming_on_networks -> CarrierConfigManager#KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY

config_enabled_lte -> CarrierConfigManager#KEY_LTE_ENABLED_BOOL

Geräte-IDs

Dauerhafte Geräte-IDs (IMEI/MEID, IMSI und Build-Seriennummer) sind durch eine Berechtigung mit erhöhten Zugriffsrechten geschützt. Der Zugriff wird auch Apps mit Geräteeigentümer- und Profilinhaber-Rolle gewährt. Da die IMSI und die SIM-Seriennummer vom Mobilfunkanbieter bereitgestellt werden, wird der Zugriff auf diese Kennungen Paketen mit Berechtigungen des Mobilfunkanbieters gewährt.

WLAN

Netzwerkauswahl

Android bewertet kontinuierlich die Qualität des verbundenen Netzwerks und die Qualität der verfügbaren Netzwerke. In Android 10 wurden die Algorithmen und Verfahren für die Auswahl und den Wechsel zwischen WLANs aktualisiert.

Offload-Suche für bevorzugtes WLAN

In Android 10 wird die optionale API-Methode setDeviceMobilityState() in WifiManager eingeführt, mit der das Intervall zwischen den PNO-Scans (Preferred Network Offload) erhöht wird, wenn sich das Gerät nicht bewegt, um den Energieverbrauch zu senken.

WLAN des Mobilfunkanbieters

Unter Android 10 verbinden sich Geräte mit der WLAN-Funktion des Mobilfunkanbieters automatisch mit konfigurierten WLANs des Mobilfunkanbieters (Netzwerke mit Public-Key-Zertifikaten).

Wi‑Fi Easy Connect

Unter Android 10 können Geräte Wi‑Fi Easy Connect verwenden, das das von der Wi‑Fi Alliance (WFA) eingeführte Device Provisioning Protocol (DPP) nutzt, um WLAN-Geräte bereitzustellen und zu konfigurieren.

WLAN-Modus mit geringer Latenzzeit

In Android 10 gibt es einen WLAN-Modus mit niedriger Latenz, mit dem der WLAN-Chip so konfiguriert wird, dass die Latenz reduziert wird.

Aktualisierter DHCP-Server

Im Rahmen der Bildung eines „IP-Server“-Dienst-Überdachungskontos wird dnsmasq gelöscht. In Android 10 wird die DHCPv4-Serverfunktion durch eine separate Komponente ersetzt, die hauptsächlich in Java geschrieben wurde, um eine bessere Integration in die Java-Framework-Kontrollebene zu ermöglichen. Dies verbessert die Sicherheit und Aktualisierbarkeit des DHCP-Servers. Weitere Informationen finden Sie unter packages/modules/NetworkStack/src/android/net/dhcp/DhcpServer.java.

Sie müssen nichts unternehmen, um diese Änderung zu implementieren: Auf allen Geräten, die auf Android 10 umgestellt werden, wird standardmäßig DhcpServer verwendet. Wenn Sie den DHCP-Server angepasst haben, können Sie das Verhalten von Android 9 wiederherstellen, indem Sie die globale Einstellung tether_enable_legacy_dhcp_server=1 festlegen. Die neue DhcpServer ist im Modul „Netzwerkkomponenten“ enthalten. Alle Anpassungen an der DHCP-Serverfunktion sollten daher an den Upstream gesendet werden.

WPA3 und Wi‑Fi Enhanced Open

Android 10 unterstützt die Sicherheitsstandards Wi‑Fi Protected Access 3 (WPA3) und Wi‑Fi Enhanced Open, um den Datenschutz zu verbessern und die Robustheit gegenüber bekannten Angriffen zu erhöhen.

Wi-Fi Direct

Wi‑Fi Direct, auch als Wi‑Fi P2P bezeichnet, ermöglicht es unterstützten Geräten, sich über das Wi‑Fi Direct-Protokoll direkt zu finden und zu verbinden, ohne dass ein Internet- oder Mobilfunknetzzugriff erforderlich ist.

Verbesserungen bei der MAC-Adressrandomisierung

Ab Android 10 ist die MAC-Adressrandomisierung standardmäßig für den Clientmodus, SoftAP und Wi‑Fi Direct aktiviert. Geräte müssen eine Option bieten, mit der die MAC-Zufallsmix-Funktion für jede SSID in der System-UI aktiviert oder deaktiviert werden kann.

Passpoint R2

Mit Android 10 wird die Unterstützung für Passpoint R2-Funktionen eingeführt. Passpoint R2 implementiert die Online-Registrierung (OSU), eine Standardmethode zur Bereitstellung neuer Passpoint-Profile. Android 10 unterstützt die Bereitstellung von EAP-TTLS-Profilen mit SOAP-XML.

NFC

NFC sichern

Mit Sichere NFC-Technologie kann die Off-Host-NFC-Kartenemulation nur aktiviert werden, wenn das Display des Geräts entsperrt ist. Wenn Sie diese Funktion implementieren, haben Nutzer die Möglichkeit, Secure NFC zu aktivieren, um die Sicherheit zu verbessern.

Einstellung von Android Beam

Unter Android 10 ist Android Beam nicht mehr erforderlich und die folgenden Schnittstellen und Methoden wurden eingestellt.

Schnittstellen:

Methoden:

Wenn Sie Android Beam verwenden möchten, melden Sie die Funktion android.sofware.nfc.beam.

Grafik

ASurfaceControl

In Android 10 wird ASurfaceControl hinzugefügt, eine neue Möglichkeit für SurfaceFlinger, Puffer zu akzeptieren.

Grafikimplementierung

OpenGL ES-Ebenen

Android 10 führt ein Schichtensystem für GLES ein.

EGL 1.5

Android 10 implementiert die EGL 1.5-Schnittstelle. Informationen zu den neuen Funktionen in EGL 1.5 finden Sie in der EGL 1.5-Spezifikation von Khronos.

Vulkan

Android 10 unterstützt Vulkan 1.1-Grafik. Die Plattform unterstützt auch VK_KHR_swapchain v70, sodass die Vulkan-App einen VkImage erstellen kann, der vom Swapchain-Speicher unterstützt wird.

Leistungsaktualisierungsrate

Android 10 unterstützt eine Leistungsaktualisierungsrate. Diese Funktion ist standardmäßig deaktiviert.

Interaktion

Automotive

Auto-Audio

In Android 10 wird der Audio-HAL-Kontext AudioAttributes.usage zugeordnet, um Töne zu identifizieren. Android unterstützt eine AUDIO_DEVICE_OUT_BUS-Instanz pro Kontext. IAudioControl HAL bietet fahrzeugspezifische Erweiterungen der Audio-HAL.

Bedienung über Gesten

Android 10 bietet eine Option für die vollständige Gestensteuerung des Systems. Informationen dazu, wie Sie Apps für die Verwendung dieser Funktion vorbereiten, finden Sie auf der Android Developers-Seite Gestennavigation.

Neuronale Netze

In Android 10 wurden die Neural Networks API und die Neural Networks HAL aktualisiert. Eine Zusammenfassung der Änderungen finden Sie unter Neuronale Netzwerke.

Neue und aktualisierte Dokumentation zu neuronalen Netzwerken für Android 10:

Sensoren

Sensors HAL 2.0

Sensors HAL 2.0 unterstützt die Verwendung von schnellen Nachrichten-Queues (FMQs), um Sensorereignisse von der HAL an das Android Sensors Framework zu senden.

Sensoren aus

Android 10 enthält eine Entwicklereinstellung, mit der alle Sensoren auf einem Gerät deaktiviert werden können. Diese Funktion hilft Entwicklern, die Funktionen ihrer App in Situationen zu testen, in denen diese Sensoren nicht verfügbar sind. Außerdem haben Nutzer so die Möglichkeit, die Sensoren auf ihrem Gerät zu steuern.

Wenn auf Ihren Geräten die Standardimplementierung von SensorService, CameraService und AudioPolicyService verwendet wird, ist keine zusätzliche Anpassung des Referenzdesigns erforderlich. Wenn Sie andere Sensoren haben, finden Sie unter Anpassung weitere Informationen zur Unterstützung dieser Funktion.

Medien

Aktualisierbare Medienkomponenten

Android 10 bietet aktualisierbare Medienkomponenten, mit denen sich medienbezogene modulare Systemkomponenten über die Google Play Store-Infrastruktur oder über einen von einem Partner bereitgestellten Over-the-air-Mechanismus (OTA) aktualisieren lassen.

Digitale Rechteverwaltung für Medien

In Android 10 wurden die Nützlichkeit und Nutzerfreundlichkeit der MediaDrm Java- und NDK-APIs verbessert.

Dekodierung

Android 10 unterstützt die SW-Dekodierung von AV1.

Berechtigungen

Android 10 bietet zusätzliche Berechtigungskonfigurationen für Transparenz und Datenschutz.

Informationen zum Anbieter von Kontakten und zu Affinitäten

Ab Android 10 wird auf Daten zur Kontaktaffinität, die von der Komponente „Contacts Provider“ verwaltet werden, anders zugegriffen als unter Android 9 und niedriger. Diese Änderungen in Bezug auf die Datenzugänglichkeit verbessern den Datenschutz auf allen Android 10-Geräten, die die Kontaktanbieterkomponente verwenden. Die zugrunde liegende Datenbank enthält keine Daten zu Kontaktaffinitäten mehr. Apps können daher nicht darauf schreiben oder daraus lesen.

Die Änderungen in Android 10 werden voraussichtlich große Auswirkungen auf APIs haben. Wenn Ihre Apps auf den eingestellten Funktionen basieren, die im Abschnitt „Anbieter von Kontaktdaten und Informationen zu Affinitäten“ erwähnt werden, sollten Sie Ihre Apps aktualisieren, um die Änderungen zu berücksichtigen. Wenn Sie eine abgezweigte Version des Kontaktdatenanbieters verwenden, müssen Sie ihn ebenfalls aktualisieren.

Dreistufige Berechtigungen zur Standortermittlung

Mit den dreistufigen Berechtigungen für die Standortermittlung in Android 10 haben Nutzer mehr Kontrolle darüber, wie Apps auf ihren Gerätestandort zugreifen.

Erinnerung zum Zugriff auf die Standortermittlung im Hintergrund

Android 10 bietet eine Erinnerung zum Zugriff auf den Standort im Hintergrund, die mehr Transparenz darüber schafft, wie viel Zugriff Apps auf den Standort eines Geräts haben, und Nutzern hilft, diesen Zugriff zu kontrollieren.

Opportunistische Standorte einschränken

Wenn eine App den Standort eines Geräts anfordert, kann sie entweder auf die Antwort der Anfrage warten oder mithilfe aktiver Standortempfänger eine opportunistische Standortaktualisierung erhalten. Ab Android 10 müssen Entwickler angeben, dass sie passive Standortaktualisierungen der Klasse FusedLocationProviderClient benötigen, um opportunistische Standortaktualisierungen zu erhalten.

Starten von Apps im Hintergrund

Unter Android 10 können nicht privilegierte Apps ohne sichtbares Fenster nicht automatisch im Vordergrund gestartet werden. Durch diese Änderung werden Pop-up-Anzeigen und schädliche Übernahmen unterdrückt. Sie müssen nichts weiter tun.

App-Sandboxing

Unter Android 10 haben Apps nur eine eingeschränkte Rohansicht des Dateisystems und keinen direkten Zugriff auf Pfade wie /sdcard/DCIM. Apps haben jedoch weiterhin vollen Rohzugriff auf ihre paketspezifischen Pfade, die von allen anwendbaren Methoden wie Context.getExternalFilesDir() zurückgegeben werden. Apps haben weiterhin uneingeschränkten Rohzugriff auf ihre paketspezifischen Pfade.

Verwenden Sie die Richtlinien für die Freigabe von Dateien in der App-Sandbox, um die Datenfreigabe ausreichend zu differenzieren.

Zugriff auf die Zwischenablage von Apps einschränken

In Android 10 wurde der Zugriff auf die Zwischenablage geändert. Sie können den Inhalt der Zwischenablage nicht mehr durch Aufrufen von ClipboardManager.getPrimaryClip oder durch Hinzufügen eines onPrimaryClipChangedListener-Listeners für Benachrichtigungen bei Änderungen der Zwischenablage beobachten. Dadurch wird die Privatsphäre der Nutzer erhöht und Malvertising-Apps können die Zwischenablage nicht mehr ändern.

Unter Android 10 ist der Lesezugriff nur auf die aktuelle App mit Eingabefokus oder auf die aktuelle Tastatur zulässig. Der Listener-Aufruf ClipboardManager.onPrimaryClipChanged() wird jetzt nur für Apps ausgelöst, die diese Einschränkungen erfüllen. ClipboardManager.getPrimaryClip und ClipboardManager.getPrimaryClipDescription geben null zurück, wenn die anfragende App entweder nicht der Standard-IME (Input Method Editor) ist oder nicht den Eingabefokus hat.

Zu den Laufzeitberechtigungen gehört die Aktivitätserkennung.

Nutzer sehen jetzt ein Dialogfeld zur Aktivitätserkennung, wenn eine App im Hintergrund auf die Gerätestandortermittlung zugreift. Laufzeitberechtigungen mit strikten Einschränkungen müssen in Android 10 korrekt auf die Zulassungsliste gesetzt werden.

MANAGE_DEVICE_ADMINS-Berechtigung

Unter Android 10 wird die Berechtigung MANAGE_DEVICE_ADMINS von „Signatur oder privilegiert“ in „Nur Signatur“ geändert. Das bedeutet, dass nur von der Plattform signierte Apps andere Apps als Geräteadministrator festlegen können.

Verbesserungen an der Share API

Android 10 bietet eine Reihe von neuen Android Platform API-Funktionen für die Freigabe. Wenn Sie den Code für die Freigabeseite in Ihrer Implementierung geändert haben, muss Ihre Implementierung diese neuen Funktionen unterstützen. Wenn Sie den Code für die Freigabeseite in Ihrer Implementierung nicht geändert haben, müssen Sie nichts weiter tun, um diese neuen Funktionen zu unterstützen.

Android Runtime ("ART")

Signierte Konfiguration

Mit der Funktion Signed Config können Sie die Konfiguration von Einschränkungen für Nicht-SDK-Schnittstellen in APKs einbetten. So können bestimmte Nicht-SDK-Schnittstellen von der Blacklist entfernt werden, damit sie von AndroidX sicher verwendet werden können. Durch diese Änderung kann AndroidX die Unterstützung für neue Funktionen in älteren Android-Versionen hinzufügen.

Leistung

Cgroup-Abstraktionsschicht

Android 10 enthält eine cgroup-Abstraktionsschicht und Aufgabenprofile, mit denen Entwickler eine Reihe von Einschränkungen für einen Thread oder Prozess beschreiben können.

Low Memory Killer Daemon (lmkd)

Android 10 unterstützt einen neuen lmkd-Modus, bei dem PSI-Monitore (Kernel Pressure Stall Information) zur Erkennung von Speichermangel verwendet werden.

Leistung

Plattformenergieverwaltung

Unter Android 10 kann der Ruhemodus sowohl auf Geräten mit Always-on-Display als auch auf akkubetriebenen Geräten aktiviert werden.

Energiesparmodus für Abläufe

In Android 10 gibt es eine neue Option für den Energiesparmodus-Zeitplan namens Basierend auf Abläufen. Mit dem Routine-Energiesparmodus kann eine vom OEM ausgewählte App dem System Signale für eine intelligentere Planung des Energiesparmodus senden. Diese Option erfordert eine Konfiguration und ist optional.

HAL für Energiestatistiken

In Android 10 ersetzt IPowerStats.hal die APIs zur Erfassung von Energiestatistiken in IPower.hal. Die APIs werden zwar weiterhin von der HAL für die Energieverwaltung unterstützt, aber in Zukunft ausschließlich von der HAL für Energiestatistiken.

Die HAL für Leistungsstatistiken enthält neue APIs, die die Erhebung von Daten aus der On-Device-Leistungsmessung für unterstützte Geräte unterstützen. Die vorhandenen APIs zur Erhebung von Energiestatistiken wurden ebenfalls aktualisiert, um die Flexibilität zu verbessern. Die APIs für Energiehinweise bleiben in der HAL für Energieverwaltung und ändern sich nicht.

Thermische Abhilfe

Das thermische Framework in Android 10 abstrahiert Geräteschnittstellen für den Temperatursensor des thermischen Subsystems, einschließlich CPU, GPU, Akku, Gehäuse und Kühlgerät. Das Framework führt eine Polling-Schnittstelle ein, um den thermischen Status abzufragen und die Drosselung zu starten, sowie eine Callback-Schnittstelle, um eine Nachricht an den Nutzer zu senden, wenn ein Grenzwert überschritten wird.

Android 10 bietet die neuen Datentypen über die IThermalService-Schnittstelle mithilfe dieser drei neuen Methoden:

Apps fügen Listener hinzu und entfernen sie und greifen auf den Temperaturstatus in der Klasse PowerManager zu. Nur ein vertrauenswürdiger Systemdienst wie eine Android API oder eine Gerätehersteller-API kann auf Informationen zu den zugehörigen kausalen Ereignissen zugreifen. Gerätehersteller oder SoC-Hersteller müssen thermal HAL 2.0 implementieren, um die volle Funktionalität des neuen thermischen Frameworks zu ermöglichen.

Ein Beispiel für die Implementierung von Maßnahmen zur Wärmeableitung finden Sie in der Referenzimplementierung.

Updates

APEX-Dateiformat

Android Pony EXpress (APEX) ist ein neues Containerformat, das beim Installationsvorgang für modulare Systemkomponenten verwendet wird.

Dynamische Partitionen

Dynamische Partitionen führen ein Partitionssystem für den Userspace in Android ein, mit dem Partitionen während OTA-Updates erstellt, neu formatiert oder gelöscht werden können. Gerätehersteller müssen sich keine Gedanken über die einzelnen Partitionsgrößen wie system, vendor und product machen. Stattdessen wird eine große super-Partition zugewiesen und die Größe der Unterpartitionen kann innerhalb dieser Partition dynamisch festgelegt werden.

Dynamische Systemupdates

Mit dynamischen Systemupdates (DSU) können Sie ein Android-System-Image erstellen, das Nutzer aus dem Internet herunterladen und ausprobieren können, ohne dass das aktuelle System-Image beschädigt wird.

Sicherung und Wiederherstellung für mehrere Nutzer

Android 10 unterstützt die Funktionen zum Sichern und Wiederherstellen für alle Nutzer auf einem Gerät. Bisher war die Sicherung und Wiederherstellung nur für den Systemnutzer verfügbar. Die Sicherung und Wiederherstellung für nicht systemeigene Nutzer ist standardmäßig deaktiviert, da Einstellungen, Hintergrundbilder und Systemkomponenten nur teilweise abgedeckt sind.

Overlayfs

Nutzer, die mit userdebug- oder eng-Builds arbeiten, erwarten, dass sie die Systempartition effizient als Lese-/Schreiblaufwerk bereitstellen und dann beliebig viele Dateien hinzufügen oder ändern können, ohne das System-Image neu zu flashen. Sie können Overlayfs verwenden, um automatisch einen Sicherungsspeicher für ein beschreibbares Dateisystem als obere Referenz einzurichten und über den unteren bereitzustellen. Diese Aktionen werden in den adb disable-verity- und adb remount-Anfragen ausgeführt. Weitere Informationen finden Sie in der Overlayfs-README im AOSP.

Unterstützung der gemeinsam genutzten Bibliothek im Wiederherstellungsmodus

In Android 10 sind freigegebene Bibliotheken in der Wiederherstellungspartition verfügbar. Daher müssen nicht alle ausführbaren Dateien im Wiederherstellungsmodus statisch sein. Die gemeinsam genutzten Bibliotheken befinden sich in der Partition im Verzeichnis /system/lib (oder /system/lib64 für 64‑Bit-Geräte).

Wenn Sie der Wiederherstellungspartition eine neue freigegebene Bibliothek hinzufügen möchten, fügen Sie recovery_available: true oder recovery: true zu Android.bp der freigegebenen Bibliothek hinzu. Bei der ersten Option wird die Bibliothek sowohl auf der System- als auch auf der Wiederherstellungspartition installiert, bei der zweiten Option nur auf der Wiederherstellungspartition.

Die Unterstützung für gemeinsam genutzte Bibliotheken kann nicht mit dem makebasierten Build-System von Android erstellt werden. Wenn Sie eine vorhandene statische ausführbare Datei für den Wiederherstellungsmodus in eine dynamische Datei konvertieren möchten, entfernen Sie LOCAL_FORCE_STATIC_EXECUTABLE := true in Android.mk oder static_executable: true (in Android.bp).

Prüfpunkt für Nutzerdaten (User Data Checkpoint, UDC)

Mit Android 10 wird die Funktion „User Data Checkpoint“ (UDC) eingeführt. Damit kann Android bei einem fehlgeschlagenen Over-the-air-Update (OTA) auf den vorherigen Zustand zurückgesetzt werden.