Funktionen und APIs

Android 16 bietet tolle neue Funktionen und APIs für Entwickler. In den folgenden Abschnitten werden diese Funktionen zusammengefasst, um Ihnen den Einstieg in die zugehörigen APIs zu erleichtern.

Eine detaillierte Liste der neuen, geänderten und entfernten APIs finden Sie im API-Diffbericht. Details zu neuen APIs finden Sie in der Android API-Referenz. Neue APIs sind hervorgehoben.

Sie sollten auch Bereiche prüfen, in denen sich Plattformänderungen auf Ihre Apps auswirken könnten. Weitere Informationen finden Sie auf den folgenden Seiten:

Hauptfunktion

Android enthält neue APIs, die die Hauptfunktionen des Android-Systems erweitern.

Zwei Android API-Releases im Jahr 2025

  • Diese Vorabversion bezieht sich auf die nächste Hauptversion von Android, die voraussichtlich im 2. Quartal 2025 veröffentlicht wird. Diese Version ähnelt allen unseren API-Releases in der Vergangenheit, bei denen geplante Verhaltensänderungen häufig an eine targetSdkVersion gebunden sind.
  • Wir planen die Hauptversion ein Quartal früher (im 2. Quartal statt im 3. Quartal in den Vorjahren), um sie besser an den Zeitplan der Geräteveröffentlichungen in unserem Ökosystem anzupassen. So können mehr Geräte die Hauptversion von Android früher erhalten. Da die Hauptversion im 2. Quartal veröffentlicht wird, müssen Sie die jährlichen Kompatibilitätstests einige Monate früher als in den Vorjahren durchführen, um sicherzustellen, dass Ihre Apps bereit sind.
  • Im 4. Quartal 2025 planen wir einen weiteren Release, der auch neue Entwickler-APIs enthalten wird. Die Hauptversion des 2. Quartals ist die einzige Version im Jahr 2025, die geplante Verhaltensänderungen enthält, die sich auf Apps auswirken könnten.

Neben neuen Entwickler-APIs enthält die Nebenversion für das 4. Quartal Funktionsupdates, Optimierungen und Fehlerkorrekturen. Es gibt keine Verhaltensänderungen, die sich auf Apps auswirken.

Zeitachse der Android-Releases im Jahr 2025. Der Release 25Q2 ist eine Hauptversion und der Release 25Q4 eine Nebenversion.

Es wird weiterhin vierteljährliche Android-Releases geben. Die Updates in den ersten und dritten Quartalen zwischen den API-Releases dienen der kontinuierlichen Qualitätssicherung. Wir arbeiten aktiv mit unseren Gerätepartnern zusammen, um die Version für das zweite Quartal auf möglichst vielen Geräten verfügbar zu machen.

Neue APIs mit Haupt- und Nebenversionen verwenden

Derzeit wird ein Codeblock mit einer Prüfung auf die API-Ebene mit der Konstante SDK_INT und VERSION_CODES geschützt. Diese Funktion wird weiterhin für wichtige Android-Releases unterstützt.

if (SDK_INT >= VERSION_CODES.BAKLAVA) {
  // Use APIs introduced in Android 16
}

Die neue Konstante SDK_INT_FULL kann für API-Prüfungen sowohl für Haupt- als auch Nebenversionen mit der neuen Aufzählung VERSION_CODES_FULL verwendet werden.

if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
  // Use APIs introduced in a major or minor release
}

Sie können auch die Methode Build.getMinorSdkVersion() verwenden, um nur die Nebenversion des SDK abzurufen.

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

Diese APIs sind noch nicht fertiggestellt und können sich ändern. Bitte senden Sie uns Feedback, wenn Sie Bedenken haben.

Nutzerfreundlichkeit und System-UI

Android 16 bietet App-Entwicklern und Nutzern mehr Kontrolle und Flexibilität bei der Konfiguration ihres Geräts.

Fortschrittsorientierte Benachrichtigungen

In Android 16 werden nutzungsorientierte Benachrichtigungen eingeführt, mit denen Nutzer den Fortschritt von von ihnen initiierten Abläufen von Anfang bis Ende verfolgen können.

Notification.ProgressStyle ist ein neuer Benachrichtigungsstil, mit dem Sie fortschrittsorientierte Benachrichtigungen erstellen können. Zu den wichtigsten Anwendungsfällen gehören Ridesharing, Lieferservice und Navigation. Innerhalb der Klasse Notification.ProgressStyle können Sie Zustände und Meilensteine in einer User Journey mithilfe von Punkten und Segmenten angeben.

如需了解详情,请参阅以进度为中心的通知文档页面。

Eine schrittweise Benachrichtigung, die auf dem Sperrbildschirm angezeigt wird.
Eine benachrichtigungsorientierte Benachrichtigung, die in der Benachrichtigungsleiste angezeigt wird.

Updates für die intelligente „Zurück“-Geste

Android 16 enthält neue APIs, mit denen Sie intelligente „Zurück“-Gesten für die Systemanimation bei der Navigation per Geste aktivieren können, z. B. die Animation für die Rückkehr zum Startbildschirm. Wenn Sie onBackInvokedCallback mit der neuen PRIORITY_SYSTEM_NAVIGATION_OBSERVER registrieren, erhält Ihre App den regulären onBackInvoked-Aufruf, wenn das System eine Zurücknavigation verarbeitet, ohne dass sich dies auf den normalen Ablauf der Zurücknavigation auswirkt.

In Android 16 werden zusätzlich finishAndRemoveTaskCallback() und moveTaskToBackCallback hinzugefügt. Wenn Sie diese Callbacks mit der OnBackInvokedDispatcher registrieren, kann das System bestimmte Verhaltensweisen auslösen und entsprechende vorab erstellte Animationen abspielen, wenn die Zurück-Geste aufgerufen wird.

Verbesserte Haptik

Android bietet seit seiner Einführung die Möglichkeit, den haptischen Aktor zu steuern.

Android 11 unterstützt komplexere haptische Effekte, die durch VibrationEffect.Compositions von gerätedefinierten semantischen Primitiven unterstützt werden können.

Android 16 bietet Haptik-APIs, mit denen Apps die Amplituden- und Frequenzkurven eines haptischen Effekts definieren können, während Unterschiede zwischen den Gerätefunktionen abstrahiert werden.

Produktivität und Tools für Entwickler

Der Großteil unserer Arbeit zur Verbesserung Ihrer Produktivität konzentriert sich auf Tools wie Android Studio, Jetpack Compose und die Android Jetpack-Bibliotheken. Wir suchen jedoch immer nach Möglichkeiten auf der Plattform, die Ihnen helfen, Ihre Vision zu verwirklichen.

Umgang mit Inhalten für Live-Hintergründe

In Android 16 wird das Live-Hintergrund-Framework um eine neue Content API erweitert, um die Herausforderungen dynamischer, von Nutzern erstellter Hintergründe zu meistern. Derzeit erfordern Live-Hintergründe mit von Nutzern bereitgestellten Inhalten komplexe, dienstspezifische Implementierungen. Mit Android 16 werden WallpaperDescription und WallpaperInstance eingeführt. Mit „WallpaperDescription“ können Sie verschiedene Instanzen eines Live-Hintergrunds aus demselben Dienst identifizieren. Ein Hintergrund, der sowohl auf dem Startbildschirm als auch auf dem Sperrbildschirm verwendet wird, kann beispielsweise an beiden Stellen unterschiedliche Inhalte haben. Die Hintergrundauswahl und WallpaperManager verwenden diese Metadaten, um Nutzern Hintergründe besser zu präsentieren. So können Sie ganz einfach vielfältige und personalisierte Live-Hintergründe erstellen.

Leistung und Akku

Mit Android 16 werden APIs eingeführt, mit denen Sie Statistiken zu Ihren Apps erheben können.

Vom System ausgelöstes Profiling

ProfilingManager wurde in Android 15 hinzugefügt. Damit können Apps die Erhebung von Profilierungsdaten mit Perfetto auf öffentlichen Geräten vor Ort anfordern. Da dieses Profiling jedoch von der App gestartet werden muss, können kritische Abläufe wie Starts oder ANRs von Apps nur schwer oder gar nicht erfasst werden.

Dazu wird in Android 16 das systemgetriggerte Profiling für ProfilingManager eingeführt. Apps können angeben, dass sie Protokolle für bestimmte Trigger wie Kaltstarts reportFullyDrawn oder ANRs erhalten möchten. Das System startet und beendet dann im Namen der App ein Protokoll. Nach Abschluss der Aufzeichnung werden die Ergebnisse an das Datenverzeichnis der App gesendet.

Komponente in ApplicationStartInfo starten

ApplicationStartInfo wurde in Android 15 hinzugefügt. Damit können Apps Gründe für den Prozessstart, den Starttyp, Startzeiten, Drosselungen und andere nützliche Diagnosedaten sehen. In Android 16 wird getStartComponent() hinzugefügt, um zu unterscheiden, welcher Komponententyp den Start ausgelöst hat. Das kann hilfreich sein, um den Startvorgang Ihrer App zu optimieren.

Bessere Selbstreflexion

JobScheduler#getPendingJobReason() API 会返回作业可能处于待处理状态的原因。不过,作业处于待处理状态的原因可能有多种。

在 Android 16 中,我们引入了一个新 API JobScheduler#getPendingJobReasons(int jobId),该 API 会返回作业处于待处理状态的多种原因,包括开发者设置的显式约束条件和系统设置的隐式约束条件。

我们还引入了 JobScheduler#getPendingJobReasonsHistory(int jobId),用于返回最新约束条件更改的列表。

我们建议您使用该 API 来调试作业可能无法执行的原因,尤其是在您发现某些任务的成功率降低或某些作业完成延迟存在 bug 时。例如,未能在后台更新微件,或在应用启动之前未能调用预加载作业。

这还有助于您更好地了解某些作业是否因系统定义的约束条件而无法完成,而不是因明确设置的约束条件而无法完成。

Adaptive Aktualisierungsrate

Die adaptive Bildwiederholrate (ARR), die in Android 15 eingeführt wurde, ermöglicht es, die Bildwiederholrate des Displays auf unterstützter Hardware mithilfe diskreter VSync-Schritte an die Framerate des Inhalts anzupassen. Dadurch wird der Stromverbrauch reduziert und der Moduswechsel, der zu Rucklern führen kann, entfällt.

In Android 16 werden hasArrSupport() und getSuggestedFrameRate(int) eingeführt und getSupportedRefreshRates() wiederhergestellt, damit Ihre Apps ARR leichter nutzen können. RecyclerView 1.4 unterstützt ARR intern, wenn es nach einem Wisch oder einem flüssigen Scrollen stabil ist. Wir arbeiten daran, ARR-Unterstützung in weitere Jetpack-Bibliotheken aufzunehmen. In diesem Artikel zur Framerate werden viele der APIs beschrieben, mit denen Sie die Framerate so festlegen können, dass Ihre App die ARR direkt verwenden kann.

Headroom APIs in ADPF

Die SystemHealthManager führt die APIs getCpuHeadroom und getGpuHeadroom ein, die Spiele und ressourcenintensive Apps mit Schätzungen der verfügbaren CPU- und GPU-Ressourcen versorgen. Mit diesen Methoden können Sie feststellen, wie Sie die Systemintegrität mit Ihrer App oder Ihrem Spiel am besten verbessern können. Dies gilt insbesondere, wenn sie in Kombination mit anderen APIs des Android Dynamic Performance Framework (ADPF) verwendet werden, die thermisches Drosseln erkennen.

Mit CpuHeadroomParams und GpuHeadroomParams auf unterstützten Geräten können Sie das Zeitfenster anpassen, das zum Berechnen des Puffers verwendet wird, und zwischen durchschnittlicher oder minimaler Ressourcenverfügbarkeit wählen. So können Sie die CPU- oder GPU-Ressourcennutzung entsprechend reduzieren, was zu einer besseren Nutzererfahrung und einer längeren Akkulaufzeit führt.

Bedienungshilfen

Android 16 bietet neue APIs und Funktionen für Bedienungshilfen, mit denen Sie Ihre App für alle Nutzer zugänglich machen können.

Verbesserte APIs für Bedienungshilfen

Android 16 bietet zusätzliche APIs zur Verbesserung der UI-Semantik, die die Konsistenz für Nutzer mit Bedienungshilfen wie TalkBack verbessern.

Textkontur hinzufügen, um den Textkontrast zu maximieren

Nutzer mit Sehschwäche haben oft eine verminderte Kontrastwahrnehmung, was es schwierig macht, Objekte von ihrem Hintergrund zu unterscheiden. Um diesen Nutzern zu helfen, wird in Android 16 Text mit Umriss eingeführt, der Text mit hohem Kontrast ersetzt. Dadurch wird ein größerer Kontrastbereich um den Text herum gezeichnet, um die Lesbarkeit erheblich zu verbessern.

Android 16 enthält neue AccessibilityManager APIs, mit denen Ihre Apps prüfen oder einen Listener registrieren können, um festzustellen, ob dieser Modus aktiviert ist. Dies gilt hauptsächlich für UI-Toolkits wie Compose, um eine ähnliche visuelle Darstellung zu bieten. Wenn Sie eine UI Toolkit-Bibliothek verwalten oder Ihre App benutzerdefiniertes Text-Rendering durchführt, das die Klasse android.text.Layout umgeht, können Sie so feststellen, ob der Outline-Text aktiviert ist.

Text mit verbessertem Kontrast vor und nach der neuen Bedienungshilfe für Umrisstext in Android 16

Dauer zu „TtsSpan“ hinzugefügt

Android 16 erweitert TtsSpan um ein TYPE_DURATION, das aus ARG_HOURS, ARG_MINUTES und ARG_SECONDS besteht. So können Sie die Zeitdauer direkt angeben und eine korrekte und konsistente Text-to-Speech-Ausgabe mit Diensten wie TalkBack sicherstellen.

Unterstützung für Elemente mit mehreren Labels

Auf Android-Geräten können UI-Elemente derzeit ihr Label für Barrierefreiheit von einem anderen ableiten. Jetzt können mehrere Labels verknüpft werden, was bei Webinhalten häufig vorkommt. Durch die Einführung einer listenbasierten API in AccessibilityNodeInfo kann Android diese Mehrfachlabelbeziehungen direkt unterstützen. Im Rahmen dieser Änderung werden AccessibilityNodeInfo#setLabeledBy und #getLabeledBy eingestellt. Stattdessen werden #addLabeledBy, #removeLabeledBy und #getLabeledByList verwendet.

Verbesserte Unterstützung für ausblendbare Elemente

Android 16 bietet APIs für Bedienungshilfen, mit denen Sie den maximierten oder minimierten Zustand interaktiver Elemente wie Menüs und erweiterbarer Listen angeben können. Wenn Sie den maximierten Zustand mit setExpandedState festlegen und TYPE_WINDOW_CONTENT_CHANGED-Bedienungshilfenereignisse mit einem Inhaltsänderungstyp CONTENT_CHANGE_TYPE_EXPANDED senden, können Sie dafür sorgen, dass Screenreader wie TalkBack Statusänderungen ansagen, was eine intuitivere und inklusivere Nutzererfahrung ermöglicht.

Unbestimmte Fortschrittsbalken

In Android 16 wird RANGE_TYPE_INDETERMINATE hinzugefügt. So können Sie RangeInfo sowohl für bestimmte als auch für unbestimmte ProgressBar-Widgets anzeigen lassen. Dienste wie TalkBack können dann konsistenter Feedback zu Fortschrittsanzeigen geben.

Drei-Status-Kästchen

Die neuen Methoden AccessibilityNodeInfo, getChecked und setChecked(int) in Android 16 unterstützen jetzt zusätzlich zu „angeklickt“ und „deaktiviert“ den Status „teilweise angeklickt“. Dieser Wert ersetzt die verworfenen Booleschen Werte isChecked und setChecked(boolean).

Zusätzliche Beschreibungen

Wenn ein Bedienungshilfendienst eine ViewGroup beschreibt, werden Inhaltslabels der untergeordneten Ansichten kombiniert. Wenn Sie eine contentDescription für die ViewGroup angeben, gehen Bedienungshilfen davon aus, dass Sie auch die Beschreibung der nicht fokussierbaren untergeordneten Ansichten überschreiben. Das kann problematisch sein, wenn Sie beispielsweise ein Drop-down-Menü (z. B. „Schriftfamilie“) beschriften und gleichzeitig die aktuelle Auswahl für die Barrierefreiheit beibehalten möchten (z. B. „Roboto“). In Android 16 wird setSupplementalDescription hinzugefügt, damit Sie Text mit Informationen zu einer ViewGroup angeben können, ohne Informationen ihrer untergeordneten Elemente zu überschreiben.

Pflichtfelder im Formular

In Android 16 wird setFieldRequired zu AccessibilityNodeInfo hinzugefügt, damit Apps einem Bedienungshilfendienst mitteilen können, dass Eingaben in einem Formularfeld erforderlich sind. Das ist ein wichtiges Szenario für Nutzer, die viele Arten von Formularen ausfüllen, selbst wenn es sich nur um ein Kästchen für die Nutzungsbedingungen handelt. So können Nutzer die Pflichtfelder immer wieder erkennen und schnell zwischen ihnen wechseln.

Smartphone als Mikrofoneingabe für Sprachanrufe mit LEA-Hörgeräten

Android 16 新增了一项功能,让 LE Audio 助听器用户能够在助听器的内置麦克风和手机上的麦克风之间切换,以进行语音通话。在嘈杂的环境或助听器麦克风可能无法正常工作的其他情况下,这会很有帮助。

Lautstärkeregelung für Umgebungsgeräusche für LEA-Hörgeräte

Mit Android 16 können Nutzer von LE Audio-Hörgeräten die Lautstärke der Umgebungsgeräusche anpassen, die von den Mikrofonen des Hörgeräts aufgenommen werden. Das kann hilfreich sein, wenn Hintergrundgeräusche zu laut oder zu leise sind.

Kamera

Android 16 bietet eine verbesserte Unterstützung für Nutzer professioneller Kameras. So ist eine hybride automatische Belichtung sowie eine präzise Anpassung der Farbtemperatur und des Farbtons möglich. Ein neuer Nachtmodus-Indikator gibt Ihrer App Aufschluss darüber, wann zum und vom Nachtmodus gewechselt werden soll. Mit neuen Intent-Aktionen lassen sich jetzt noch einfacher Bewegungsfotos aufnehmen. Außerdem verbessern wir kontinuierlich Ultra-HDR-Bilder mit Unterstützung der HEIC-Codierung und neuen Parametern aus dem ISO 21496-1-Entwurfsstandard.

Hybride automatische Belichtung

Android 16 向 Camera2 添加了新的混合自动曝光模式,让您可以手动控制曝光的特定方面,同时让自动曝光 (AE) 算法处理其余部分。您可以控制 ISO + AE曝光时间 + AE,与当前方法(您要么完全手动控制,要么完全依赖自动曝光)相比,可提供更大的灵活性。

public void setISOPriority() {
  ...
  int[] availablePriorityModes =
     mStaticInfo.getCharacteristics().get(CameraCharacteristics.
     COLOR_AE_AVAILABLE_PRIORITY_MODES);
  ...
  // Turn on AE mode to set priority mode
  reqBuilder.set(CaptureRequest.CONTROL_AE_MODE,
      CameraMetadata.CONTROL_AE_MODE_ON);
  reqBuilder.set(CaptureRequest.CONTROL_AE_PRIORITY_MODE,
      CameraMetadata.CONTROL_AE_PRIORITY_MODE_SENSOR_SENSITIVITY);
  reqBuilder.set(CaptureRequest.SENSOR_SENSITIVITY,
      TEST_SENSITIVITY_VALUE);
  CaptureRequest request = reqBuilder.build();
  ...
}

Präzise Anpassungen der Farbtemperatur und des Farbtons

Android 16 bietet Kameraunterstützung für die Feinabstimmung von Farbtemperatur und Farbton, um professionelle Videoaufnahmeanwendungen besser zu unterstützen. In früheren Android-Versionen konnten Sie die Weißabgleichseinstellungen über CONTROL_AWB_MODE steuern. Diese Optionen waren auf eine vordefinierte Liste beschränkt, z. B. Glühlampen, Bedeckt und Dämmerung. Mit der Taste COLOR_CORRECTION_MODE_CCT können Sie COLOR_CORRECTION_COLOR_TEMPERATURE und COLOR_CORRECTION_COLOR_TINT verwenden, um den Weißabgleich basierend auf der korrespondierenden Farbtemperatur präzise anzupassen.

public void setCCT() {
  ...
  Range<Integer> colorTemperatureRange =
     mStaticInfo.getCharacteristics().get(CameraCharacteristics.
     COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE);
  // Set to manual mode to enable CCT mode
  reqBuilder.set(CaptureRequest.CONTROL_AWB_MODE, CameraMetadata.CONTROL_AWB_MODE_OFF);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_MODE,
      CameraMetadata.COLOR_CORRECTION_MODE_CCT);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE, 5000);
  reqBuilder.set(CaptureRequest.COLOR_CORRECTION_COLOR_TINT, 30);
  CaptureRequest request = reqBuilder.build();
  ...
}

Die folgenden Beispiele zeigen, wie ein Foto aussehen würde, nachdem verschiedene Anpassungen der Farbtemperatur und des Farbtons vorgenommen wurden:

Das Originalbild ohne Farbtemperatur- oder Farbtonanpassungen.
Das Bild mit einer auf 3.000 Kelvin eingestellten Farbtemperatur.
Das Bild mit einer auf 7.000 Kelvin eingestellten Farbtemperatur.


Das Bild mit um 50 % verringerten Farbtonstufen
Das Bild mit um 50 erhöhten Farbtonstufen

Szenenerkennung im Nachtmodus der Kamera

Damit Ihre App weiß, wann sie zu einer Kamerasitzung im Nachtmodus wechseln und wieder davon zurückwechseln soll, wird in Android 16 EXTENSION_NIGHT_MODE_INDICATOR hinzugefügt. Wenn unterstützt, ist sie in Camera2 unter CaptureResult verfügbar.

Das ist die API, die wir im Blogpost So ermöglicht Instagram Nutzern atemberaubende Fotos bei wenig Licht kurz als bald verfügbar erwähnt haben. Dieser Beitrag enthält eine praktische Anleitung zur Implementierung des Nachtmodus sowie eine Fallstudie, in der eine höhere Qualität der In-App-Fotos im Nachtmodus mit einer Steigerung der Anzahl der über die In-App-Kamera geteilten Fotos in Verbindung gebracht wird.

Intent-Aktionen für die Aufnahme von Fotos mit Bewegtbild

Android 16 fügt Standard-Intent-Aktionen hinzu: ACTION_MOTION_PHOTO_CAPTURE und ACTION_MOTION_PHOTO_CAPTURE_SECURE. Sie fordern die Kameraanwendung auf, ein Action-Foto aufzunehmen und zurückzugeben.

Sie müssen entweder ein zusätzliches EXTRA_OUTPUT übergeben, um zu steuern, wo das Bild geschrieben wird, oder ein Uri über Intent.setClipData(ClipData). Wenn Sie ClipData nicht festlegen, wird sie beim Aufrufen von Context.startActivity(Intent) dort für Sie kopiert.

Beispiel für ein Foto mit Bewegtbild, das das Standbild und die Wiedergabe des Bewegtbilds zeigt

UltraHDR-Bildoptimierung

Abbildung der Bildqualität bei Standard Dynamic Range (SDR) und High Dynamic Range (HDR).

Mit Android 16 setzen wir unsere Bemühungen fort, mit Ultra-HDR-Bildern eine beeindruckende Bildqualität zu bieten. Es wird die Unterstützung für Ultra-HDR-Bilder im HEIC-Dateiformat hinzugefügt. Diese Bilder erhalten den Typ ImageFormat HEIC_ULTRAHDR und enthalten eine eingebettete Verstärkungskarte, ähnlich wie das vorhandene UltraHDR-JPEG-Format. Wir arbeiten auch an der AVIF-Unterstützung für UltraHDR. Mehr dazu demnächst.

Außerdem werden in Android 16 zusätzliche Parameter in UltraHDR aus dem ISO 21496-1-Entwurfsstandard implementiert. Dazu gehören die Möglichkeit, den Farbraum abzurufen und festzulegen, in dem die Gainmap-Berechnung angewendet werden soll, sowie die Unterstützung für HDR-codierte Basisbilder mit SDR-Gainmaps.

Grafik

Android 16 enthält die neuesten Grafikverbesserungen, z. B. benutzerdefinierte Grafikeffekte mit AGSL.

Benutzerdefinierte grafische Effekte mit AGSL

In Android 16 wurden RuntimeColorFilter und RuntimeXfermode hinzugefügt. Damit können Sie komplexe Effekte wie „Schwellenwert“, „Sepia“ und „Farbtonsättigung“ erstellen und auf Zeichnenaufrufe anwenden. Seit Android 13 können Sie mit AGSL benutzerdefinierte Runtime-Shader erstellen, die Shader erweitern. Die neue API spiegelt dies wider und fügt einen AGSL-basierten RuntimeColorFilter hinzu, der ColorFilter erweitert, und einen Xfermode-Effekt, mit dem du AGSL-basiertes benutzerdefiniertes Compositing und Blending zwischen Quell- und Zielpixeln implementieren kannst.

private val thresholdEffectString = """
    uniform half threshold;

    half4 main(half4 c) {
        half luminosity = dot(c.rgb, half3(0.2126, 0.7152, 0.0722));
        half bw = step(threshold, luminosity);
        return bw.xxx1 * c.a;
    }"""

fun setCustomColorFilter(paint: Paint) {
   val filter = RuntimeColorFilter(thresholdEffectString)
   filter.setFloatUniform(0.5);
   paint.colorFilter = filter
}

Konnektivität

Mit Android 16 wird die Plattform aktualisiert, damit Ihre App auf die neuesten Fortschritte in der Kommunikation und drahtlosen Technologien zugreifen kann.

Abtasten mit erweiterter Sicherheit

Android 16 在搭载 Wi-Fi 6 的 802.11az 的受支持设备上为 Wi-Fi 位置信息添加了对强大的安全功能的支持,让应用能够将该协议的更高精确性、更高可伸缩性和动态调度与安全增强功能(包括基于 AES-256 的加密和防范中间人攻击)相结合。这样,在近距离使用情形(例如解锁笔记本电脑或车门)时,便可更安全地使用该功能。802.11az 与 Wi-Fi 6 标准集成,可利用其基础架构和功能实现更广泛的采用和更轻松的部署。

Generische APIs für die Entfernungsmessung

Android 16 enthält das neue Symbol RangingManager, mit dem sich auf unterstützter Hardware die Entfernung und der Winkel zwischen dem lokalen Gerät und einem Remote-Gerät bestimmen lassen. RangingManager unterstützt die Verwendung verschiedener Technologien zur Entfernungsmessung wie BLE-Kanalabfrage, BLE-RSSI-basierte Entfernungsmessung, Ultrabreitband und WLAN-Rücklaufzeit.

Medien

Android 16 bietet eine Vielzahl von Funktionen, die die Mediennutzung verbessern.

Verbesserte Bildauswahl

Mit der Bildauswahl können Nutzer Ihrer App sicher und direkt Zugriff auf ausgewählte Bilder und Videos aus dem lokalen Speicher und der Cloud gewähren, anstatt auf die gesamte Mediathek. Mit einer Kombination aus modularen Systemkomponenten über Google-Systemupdates und Google Play-Diensten wird sie bis zu Android 4.4 (API-Level 19) unterstützt. Für die Integration sind nur wenige Codezeilen mit der zugehörigen Android Jetpack-Bibliothek erforderlich.

Android 16 enthält die folgenden Verbesserungen an der Bildauswahl:

  • Eingebettete Bildauswahl: Neue APIs, mit denen Entwickler die Bildauswahl in die Ansichtshierarchie ihrer App einbetten können. So wirkt es wie ein besser integrierter Teil der App, während gleichzeitig die Prozessisolierung genutzt wird, die es Nutzern ermöglicht, Medien auszuwählen, ohne dass die App übermäßig weitreichende Berechtigungen benötigt. Wenn Sie die Einbettung der Bildauswahl maximieren und die Integration vereinfachen möchten, sollten Sie die bevorstehende Android Jetpack-Bibliothek verwenden.
  • Cloud-Suche in der Fotoauswahl: Mit neuen APIs können Sie in der Android-Fotoauswahl über den Cloud-Medienanbieter suchen. Die Suchfunktion in der Bildauswahl wird demnächst eingeführt.

Erweiterte Videoanzeigen für Professionals

Android 16 引入了对高级专业视频 (APV) 编解码器的支持,该编解码器专为专业级高品质视频录制和后期制作而设计。

APV 编解码器标准具有以下特点:

  • 感知上无损的视频画质(接近原始视频画质)
  • 复杂度低且吞吐量高的仅帧内编码(无像素域预测),以更好地支持编辑工作流
  • 支持高比特率范围(最高几十 Gbps),适用于 2K、4K 和 8K 分辨率内容,由轻量级熵编码方案实现
  • 帧平铺,用于沉浸式内容和启用并行编码和解码
  • 支持各种色度采样格式和位深
  • 支持多次解码和重新编码,且不会严重降低视觉质量
  • 支持多视图视频和辅助视频,例如深度、Alpha 和预览
  • 支持 HDR10/10+ 和用户定义的元数据

OpenAPV 项目提供了 APV 的参考实现。Android 16 将实现对 APV 422-10 配置文件的支持,该配置文件提供 YUV 422 色彩采样以及 10 位编码,并且目标比特率最高可达 2 Gbps。

Datenschutz

Android 16 bietet eine Vielzahl von Funktionen, mit denen App-Entwickler die Privatsphäre der Nutzer schützen können.

Health Connect-Updates

In der Entwicklervorschau von Health Connect wird ACTIVITY_INTENSITY hinzugefügt, ein neuer Datentyp, der gemäß den Richtlinien der Weltgesundheitsorganisation für moderate und anstrengende Aktivitäten definiert ist. Für jeden Eintrag sind der Beginn, das Ende und die Intensität der Aktivität (mäßig oder intensiv) erforderlich.

Health Connect enthält auch aktualisierte APIs, die Gesundheitsdaten unterstützen. So können Apps mit ausdrücklicher Nutzereinwilligung Patientenakten im FHIR-Format lesen und schreiben. Diese API befindet sich in einem Early Access-Programm. Wenn du teilnehmen möchtest, melde dich für unser Early Access-Programm an.

Privacy Sandbox für Android

Android 16 enthält die neueste Version der Privacy Sandbox für Android. Diese Technologie ist Teil unserer laufenden Bemühungen, Technologien zu entwickeln, bei denen Nutzer wissen, dass ihre Daten geschützt sind. Auf unserer Website finden Sie weitere Informationen zum Privacy Sandbox-Entwickler-Betaprogramm für Android. Sehen Sie sich die SDK Runtime an. Damit können SDKs in einer separaten Laufzeitumgebung ausgeführt werden, die von der App getrennt ist, in der sie bereitgestellt werden. So werden die Erhebung und Weitergabe von Nutzerdaten besser geschützt.

Sicherheit

Android 16 bietet Funktionen, mit denen Sie die Sicherheit Ihrer App verbessern und die Daten Ihrer App schützen können.

API zur Schlüsselfreigabe

Android 16 添加了一些 API,这些 API 支持与其他应用共享对 Android Keystore 密钥的访问权限。新的 KeyStoreManager 类支持按应用 uid 授予撤消对密钥的访问权限,并包含一个供应用访问共享密钥的 API。

Formfaktoren von Geräten

Android 16 bietet Ihren Apps die Unterstützung, die Sie benötigen, um die Formfaktoren von Android optimal zu nutzen.

Standardisiertes Rahmenwerk für Bild- und Audioqualität für Fernseher

Android 16 中的新 MediaQuality 软件包公开了一组标准化 API,用于访问音频和图片配置文件以及与硬件相关的设置。这样,在线播放应用就可以查询配置文件并将其动态应用于媒体:

  • 使用更大动态范围进行母版制作的电影需要更高的色彩准确度,才能看清阴影中的细微细节并根据环境光线进行调整,因此,最好使用色彩准确度优先于亮度的配置文件。
  • 体育赛事直播通常采用较窄的动态范围进行母版制作,但通常是在白天观看,因此偏向亮度而非色彩准确度的配置文件可以获得更好的效果。
  • 完全交互式内容需要尽可能减少处理以缩短延迟时间,并且需要更高的帧速率,因此许多电视都附带游戏配置文件。

借助此 API,应用可以在个人资料之间切换,用户可以享受调整支持的电视,以便尽可能适合其内容。

Lokalisierung

Android 16 bietet Funktionen, die die Nutzerfreundlichkeit verbessern, wenn ein Gerät in verschiedenen Sprachen verwendet wird.

Vertikaler Text

Android 16 添加了对垂直渲染和测量文本的低级支持,以便为库开发者提供基本的垂直书写支持。这对于日语等通常使用竖向书写系统的语言特别有用。Paint 类中添加了一个新标志 VERTICAL_TEXT_FLAG。使用 Paint.setFlags 设置此标志后,Paint 的文本测量 API 将报告垂直进度,而不是水平进度,并且 Canvas 将垂直绘制文本。

val text = "「春は、曙。」"
Box(
    Modifier.padding(innerPadding).background(Color.White).fillMaxSize().drawWithContent {
        drawIntoCanvas { canvas ->
            val paint = Paint().apply { textSize = 64.sp.toPx() }
            // Draw text vertically
            paint.flags = paint.flags or VERTICAL_TEXT_FLAG
            val height = paint.measureText(text)
            canvas.nativeCanvas.drawText(
                text,
                0,
                text.length,
                size.width / 2,
                (size.height - height) / 2,
                paint
            )
        }
    }
) {}

Anpassung des Messsystems

Nutzer können das Maßsystem jetzt in den regionalen Einstellungen unter „Einstellungen“ anpassen. Die Nutzereinstellung ist Teil des Gebietscodes. Sie können also eine BroadcastReceiver unter ACTION_LOCALE_CHANGED registrieren, um Änderungen an der Gebietskonfiguration zu verarbeiten, wenn sich die regionalen Einstellungen ändern.

Mit Formatierungsoptionen können Sie die Inhalte an die jeweilige Region anpassen. „0,5 in“ auf Englisch (USA) entspricht beispielsweise „12,7 mm“ für einen Nutzer,der sein Smartphone auf Englisch (Dänemark) eingestellt hat oder sein Smartphone auf Englisch (USA) mit dem metrischen System als bevorzugtem Maßsystem verwendet.

Öffnen Sie dazu die Einstellungen und gehen Sie zu System > Sprache und Region.