Android 16 bietet viele 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-Diff-Bericht. Details zu neuen APIs finden Sie in der Android-API-Referenz. Neue APIs sind zur besseren Übersicht 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:
- Verhaltensänderungen, die sich auf Apps auswirken, wenn sie auf Android 16 ausgerichtet sind
- Verhaltensänderungen, die sich unabhängig von
targetSdkVersionauf alle Apps auswirken.
Hauptfunktion
Android enthält neue APIs, die die Kernfunktionen 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.
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.
Nutzererfahrung und System-UI
Android 16 bietet App-Entwicklern und Nutzern mehr Kontrolle und Flexibilität bei der Konfiguration ihrer Geräte.
Fortschrittsbasierte 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.
Weitere Informationen finden Sie auf der Dokumentationsseite zu fortschrittsorientierten Benachrichtigungen.
Updates für die intelligente „Zurück“-Geste
Android 16 添加了新 API,可帮助您在手势导航中启用预测性返回系统动画,例如“返回主屏幕”动画。通过使用新的 PRIORITY_SYSTEM_NAVIGATION_OBSERVER 注册 onBackInvokedCallback,您的应用可以在系统处理返回导航时接收常规的 onBackInvoked 调用,而不会影响正常的返回导航流程。
Android 16 还添加了 finishAndRemoveTaskCallback() 和 moveTaskToBackCallback。通过向 OnBackInvokedDispatcher 注册这些回调,系统可以在调用返回手势时触发特定行为并播放相应的提前动画。
Detailliertere Haptik
自诞生之日起,Android 就提供了对触感反馈致动器的控制。
Android 11 添加了对更复杂的触感反馈效果的支持,更高级的致动器可以通过设备定义的语义基元 VibrationEffect.Compositions 支持这些效果。
Android 16 添加了触感反馈 API,让应用能够定义触感反馈效果的振幅和频率曲线,同时抽象出设备功能之间的差异。
Produktivität von Entwicklern und Tools
Die meisten unserer Bemühungen zur Steigerung Ihrer Produktivität konzentrieren sich auf Tools wie Android Studio, Jetpack Compose und die Android Jetpack-Bibliotheken. Wir suchen aber auch immer nach Möglichkeiten, Sie auf der Plattform bei der Umsetzung Ihrer Vision zu unterstützen.
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 Informationen zu Ihren Apps sammeln 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.
Startkomponente in ApplicationStartInfo
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 Job-Introspektion
Die JobScheduler#getPendingJobReason() API gibt einen Grund zurück, warum ein Job möglicherweise ausstehend ist. Es kann jedoch mehrere Gründe dafür geben, dass ein Job ausstehend ist.
In Android 16 führen wir die neue API JobScheduler#getPendingJobReasons(int jobId) ein, die mehrere Gründe zurückgibt, warum ein Job aussteht, sowohl aufgrund expliziter Einschränkungen, die vom Entwickler festgelegt wurden, als auch aufgrund impliziter Einschränkungen, die vom System festgelegt wurden.
Außerdem führen wir JobScheduler#getPendingJobReasonsHistory(int jobId) ein, mit dem eine Liste der letzten Änderungen an Einschränkungen zurückgegeben wird.
Wir empfehlen, die API zu verwenden, um herauszufinden, warum Ihre Jobs möglicherweise nicht ausgeführt werden. Das gilt insbesondere, wenn die Erfolgsrate bestimmter Aufgaben sinkt oder es Probleme mit der Latenz bei der Ausführung bestimmter Jobs gibt. Beispielsweise wurde die Aktualisierung von Widgets im Hintergrund nicht durchgeführt oder der Prefetch-Job wurde vor dem Start der App nicht aufgerufen.
So können Sie besser nachvollziehen, ob bestimmte Jobs aufgrund von systemdefinierten oder explizit festgelegten Einschränkungen nicht abgeschlossen werden.
Adaptive Aktualisierungsrate
Android 15 中引入的自适应刷新率 (ARR) 可让受支持硬件上的显示屏刷新率使用离散的 VSync 步长来适应内容帧速率。这不仅降低了功耗,还无需进行可能导致卡顿的模式切换。
Android 16 引入了 hasArrSupport() 和 getSuggestedFrameRate(int),同时恢复了 getSupportedRefreshRates(),以便您的应用更轻松地利用 ARR。RecyclerView 1.4 在从快速滑动或平滑滚动中稳定下来时会在内部支持 ARR,我们将继续努力,将 ARR 支持添加到更多 Jetpack 库中。这篇帧速率文章介绍了许多可用于设置帧速率的 API,以便您的应用可以直接使用 ARR。
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 Accessibility APIs und Funktionen, mit denen Sie Ihre App für alle Nutzer zugänglich machen können.
Verbesserte Bedienungshilfen-APIs
Android 16 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。
为文字添加轮廓,以最大限度地提高文字对比度
视力较低的用户对对比度的敏感度通常较低,因此很难将对象与背景区分开来。为了帮助这些用户,Android 16 引入了轮廓文本,取代了高对比度文本,后者会在文本周围绘制较大的对比度区域,以大大提高可辨性。
Android 16 包含新的 AccessibilityManager API,可让您的应用检查或注册监听器,以查看此模式是否已启用。这主要适用于 Compose 等界面工具包,以提供类似的视觉体验。如果您维护界面工具包库,或者您的应用执行绕过 android.text.Layout 类的自定义文本渲染,则可以使用此方法来了解何时启用轮廓文本。
向 TtsSpan 添加了时长
Android 16 使用 TYPE_DURATION 扩展了 TtsSpan,其中包含 ARG_HOURS、ARG_MINUTES 和 ARG_SECONDS。这样,您就可以直接为时长添加注释,确保通过 TalkBack 等服务获得准确且一致的文本转语音输出。
支持具有多个标签的元素
Android 目前允许界面元素从其他元素派生其无障碍功能标签,现在还支持关联多个标签,这是 Web 内容中常见的情况。通过在 AccessibilityNodeInfo 中引入基于列表的 API,Android 可以直接支持这些多标签关系。在进行这项更改的过程中,我们已弃用 AccessibilityNodeInfo#setLabeledBy 和 #getLabeledBy,改用 #addLabeledBy、#removeLabeledBy 和 #getLabeledByList。
改进了对可展开元素的支持
Android 16 添加了无障碍功能 API,可让您传达互动元素(例如菜单和展开式列表)的展开或收起状态。通过使用 setExpandedState 设置展开状态,并使用 CONTENT_CHANGE_TYPE_EXPANDED 内容更改类型调度 TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents,您可以确保 TalkBack 等屏幕阅读器会读出状态更改,从而提供更直观、更包容的用户体验。
不确定进度条
Android 16 添加了 RANGE_TYPE_INDETERMINATE,让您可以为确定性和不确定性 ProgressBar 微件公开 RangeInfo,从而让 TalkBack 等服务能够更一致地为进度指示器提供反馈。
三态复选框
Android 16 中的新 AccessibilityNodeInfo
getChecked 和 setChecked(int) 方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isChecked 和 setChecked(boolean)。
补充说明
如果无障碍服务提供关于 ViewGroup 的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup 提供 contentDescription,无障碍服务会假定您还要覆盖不可聚焦的子视图的说明。如果您想为下拉菜单等内容添加标签(例如“字体系列”),同时保留当前的无障碍功能选择(例如“Roboto”),这可能会造成问题。Android 16 添加了 setSupplementalDescription,以便您提供用于提供 ViewGroup 相关信息的文本,而不会覆盖其子项中的信息。
必填表单字段
Android 16 向 AccessibilityNodeInfo 添加了 setFieldRequired,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户而言,这是一个重要的场景,即使是简单的必填条款及条件复选框,也能帮助用户始终如一地识别必填字段并在必填字段之间快速导航。
Smartphone als Mikrofoneingabe für Sprachanrufe mit LEA-Hörgeräten
Android 16 新增了一项功能,让 LE Audio 助听器用户能够在助听器的内置麦克风和手机上的麦克风之间切换,以进行语音通话。在嘈杂的环境或助听器麦克风可能无法正常工作的其他情况下,这会很有帮助。
Einstellungen für die Umgebungslautstärke für Hörgeräte mit LEA
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 professionelle Kameraanwender und ermöglicht die Hybrid-Auto-Belichtung sowie präzise Anpassungen von Farbtemperatur und Farbton. Eine neue Anzeige für den Nachtmodus hilft Ihrer App, zu erkennen, wann in eine Kamerasitzung im Nachtmodus gewechselt werden soll und wann nicht. Neue Intent-Aktionen erleichtern das Aufnehmen von Bewegungsfotos. Außerdem verbessern wir UltraHDR-Bilder weiter, indem wir die HEIC-Codierung und neue Parameter aus dem ISO 21496-1-Entwurf unterstützen.
Hybride automatische Belichtung
Android 16 fügt Camera2 neue hybride Autofokusmodi hinzu, mit denen Sie bestimmte Aspekte der Belichtung manuell steuern können, während der Autofokusalgorithmus (AE) den Rest übernimmt. Sie können ISO + AE und Belichtungszeit + AE steuern. Das bietet mehr Flexibilität als der aktuelle Ansatz, bei dem Sie entweder die volle manuelle Kontrolle haben oder sich vollständig auf die automatische Belichtung verlassen.
fun setISOPriority() {
// ... (Your existing code before the snippet) ...
val availablePriorityModes = mStaticInfo.characteristics.get(
CameraCharacteristics.CONTROL_AE_AVAILABLE_PRIORITY_MODES
)
// ... (Your existing code between the snippets) ...
// 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_PRIORITY
)
reqBuilder.set(
CaptureRequest.SENSOR_SENSITIVITY,
TEST_SENSITIVITY_VALUE
)
val request: CaptureRequest = reqBuilder.build()
// ... (Your existing code after the snippet) ...
}
Genaue Anpassung von Farbtemperatur und Farbton
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.
fun setCCT() {
// ... (Your existing code before this point) ...
val colorTemperatureRange: Range<Int> =
mStaticInfo.characteristics[CameraCharacteristics.COLOR_CORRECTION_COLOR_TEMPERATURE_RANGE]
// Set to manual mode to enable CCT mode
reqBuilder[CaptureRequest.CONTROL_AWB_MODE] = CameraMetadata.CONTROL_AWB_MODE_OFF
reqBuilder[CaptureRequest.COLOR_CORRECTION_MODE] = CameraMetadata.COLOR_CORRECTION_MODE_CCT
reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TEMPERATURE] = 5000
reqBuilder[CaptureRequest.COLOR_CORRECTION_COLOR_TINT] = 30
val request: CaptureRequest = reqBuilder.build()
// ... (Your existing code after this point) ...
}
Die folgenden Beispiele zeigen, wie ein Foto aussehen würde, nachdem verschiedene Anpassungen der Farbtemperatur und des Farbtons vorgenommen wurden:
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.
Ultra HDR-Bildoptimierung
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 bietet die neuesten Grafikverbesserungen, z. B. benutzerdefinierte Grafikeffekte mit AGSL.
Benutzerdefinierte grafische Effekte mit AGSL
Android 16 添加了 RuntimeColorFilter 和 RuntimeXfermode,让您可以创作阈值、Sepia 和 Hue Saturation 等复杂效果,并将其应用于绘制调用。从 Android 13 开始,您可以使用 AGSL 创建扩展 Shader 的自定义 RuntimeShader。新 API 反映了这一点,添加了由 AGSL 驱动的 RuntimeColorFilter(用于扩展 ColorFilter)和 Xfermode 效果,让您可以在源像素和目标像素之间实现基于 AGSL 的自定义合成和混合。
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 Zugriff auf die neuesten Fortschritte in der Kommunikations- und Funktechnologie hat.
Entfernungsmessung mit erweiterter Sicherheit
Android 16 在搭载 Wi-Fi 6 的 802.11az 的受支持设备上为 Wi-Fi 位置信息添加了对强大的安全功能的支持,让应用能够将该协议的更高精确性、更高可伸缩性和动态调度与安全增强功能(包括基于 AES-256 的加密和防范中间人攻击)相结合。这样,在近距离使用情形(例如解锁笔记本电脑或车门)时,便可更安全地使用该功能。802.11az 与 Wi-Fi 6 标准集成,可利用其基础架构和功能实现更广泛的采用和更轻松的部署。
Allgemeine APIs für die Reichweite
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.
Gerätepräsenz im Begleitgerätemanager
Android 16 中引入了用于绑定配套应用服务的新 API。当 BLE 在范围内且蓝牙处于连接状态时,系统会绑定服务;当 BLE 不在范围内或蓝牙处于断开连接状态时,系统会解除绑定服务。应用将根据各种 DevicePresenceEvent 收到新的 'onDevicePresenceEvent()' 回调。如需了解详情,请参阅 'startObservingDevicePresence(ObservingDevicePresenceRequest)'。
Medien
Android 16 bietet eine Vielzahl von Funktionen, die die Medienwiedergabe verbessern.
Verbesserungen bei der 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 professionelle Videoinhalte
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 enthält eine Vielzahl von Funktionen, die App-Entwicklern helfen, den Datenschutz der Nutzer zu schützen.
Neuerungen bei Health Connect
Health Connect fügt ACTIVITY_INTENSITY hinzu, einen Datentyp, der gemäß den Richtlinien der Weltgesundheitsorganisation für moderate und intensive Aktivitäten definiert ist. Für jeden Datensatz sind die Start- und Endzeit sowie die Angabe erforderlich, ob die Aktivitätsintensität mäßig oder intensiv ist.
Health Connect enthält auch aktualisierte APIs, die Medikationspläne unterstützen. So können Apps mit ausdrücklicher Nutzereinwilligung Patientenakten im FHIR-Format lesen und schreiben.
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 enthält Funktionen, mit denen Sie die Sicherheit Ihrer App verbessern und die Daten Ihrer App schützen können.
API zum Teilen von Schlüsseln
Android 16 bietet APIs, mit denen der Zugriff auf Schlüssel des Android Keystore für andere Apps freigegeben werden kann. Die neue Klasse KeyStoreManager unterstützt das Gewähren und Widerrufen des Zugriffs auf Schlüssel nach App-uid und enthält eine API, über die Apps auf freigegebene Schlüssel zugreifen können.
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 Framework für Bild- und Audioqualität für Fernseher
Das neue MediaQuality-Paket in Android 16 stellt eine Reihe standardisierter APIs für den Zugriff auf Audio- und Bildprofile sowie hardwarebezogene Einstellungen bereit. So können Streaming-Apps Profile abfragen und dynamisch auf Medien anwenden:
- Filme, die mit einem größeren dynamischen Bereich gemastert wurden, erfordern eine höhere Farbgenauigkeit, um feine Details in Schatten zu erkennen und sich an das Umgebungslicht anzupassen. Daher kann ein Profil geeignet sein, bei dem die Farbgenauigkeit der Helligkeit vorgezogen wird.
- Live-Sportveranstaltungen werden oft mit einem schmalen dynamischen Bereich gemastert, werden aber häufig bei Tageslicht angesehen. Daher kann ein Profil, bei dem die Helligkeit gegenüber der Farbrichtigkeit bevorzugt wird, bessere Ergebnisse liefern.
- Für vollständig interaktive Inhalte ist eine minimale Verarbeitung erforderlich, um die Latenz zu reduzieren, und es werden höhere Frameraten benötigt. Aus diesem Grund sind viele Fernseher mit einem Spielprofil ausgestattet.
Mit der API können Apps zwischen Profilen wechseln und Nutzer können unterstützte Fernseher so einstellen, dass sie am besten zu ihren Inhalten passen.
Lokalisierung
Android 16 bietet Funktionen und Möglichkeiten, die die Nutzerfreundlichkeit verbessern, wenn ein Gerät in verschiedenen Sprachen verwendet wird.
Vertikaler Text
Android 16 bietet Unterstützung auf niedriger Ebene für das vertikale Rendern und Messen von Text, um Bibliotheksentwicklern eine grundlegende Unterstützung für die vertikale Schrift zu bieten. Das ist besonders für Sprachen wie Japanisch nützlich, bei denen häufig vertikale Schriftsysteme verwendet werden. Der Klasse Paint wurde das neue Flag VERTICAL_TEXT_FLAG hinzugefügt. Wenn dieses Flag mit Paint.setFlags festgelegt wird, melden die Textmess-APIs von Paint vertikale statt horizontale Vorgänge und Canvas zeichnet Text vertikal.
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
)
}
}
) {}
Messsystem anpassen
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.