Android 16 wprowadza nowe funkcje i interfejsy API dla programistów. W kolejnych sekcjach znajdziesz podsumowanie tych funkcji, które pomoże Ci zacząć korzystać z powiązanych interfejsów API.
Szczegółową listę nowych, zmodyfikowanych i usuniętych interfejsów API znajdziesz w raporcie o różnicach w interfejsach API. Więcej informacji o nowych interfejsach API znajdziesz w dokumentacji interfejsów API Androida. Nowe interfejsy API są wyróżnione w celu zwiększenia widoczności.Warto też sprawdzić obszary, w których zmiany na platformie mogą wpłynąć na Twoje aplikacje. Więcej informacji znajdziesz na tych stronach:
- Zmiany w działaniu, które wpływają na aplikacje, gdy są kierowane na Androida 16
- Zmiany w działaniu, które wpływają na wszystkie aplikacje niezależnie od
targetSdkVersion
Główna funkcjonalność
Android zawiera nowe interfejsy API, które rozszerzają podstawowe możliwości systemu Android.
2 wersje interfejsu API Androida w 2025 r.
- 此预览版适用于 Android 的下一个主要版本,计划于 2025 年第 2 季度发布。此版本与我们过去的所有 API 版本类似,我们可以进行计划性的行为更改,这些更改通常与 targetSdkVersion 相关联。
- 我们计划提前一个季度(2021 年第 2 季度,而非之前的第 3 季度)发布主要版本,以便更好地与整个生态系统中的设备发布时间表保持一致,让更多设备能够更早地搭载 Android 主要版本。由于主要版本将于第 2 季度发布,因此您需要比往年提前几个月进行年度兼容性测试,以确保您的应用已做好准备。
- 我们计划在 2025 年第 4 季度再发布一次,届时还将推出新的开发者 API。2025 年只有第二季度的主要版本包含可能影响应用的计划行为变更。
除了新的开发者 API 之外,第 4 季度次要版本还将包含功能更新、优化和 bug 修复;其中不会包含任何会影响应用的行为变更。
我们将继续每季度发布 Android 版本。在 API 版本之间,第 1 季度和第 3 季度的更新将提供增量更新,以帮助确保持续提供高质量的服务。我们正积极与设备合作伙伴合作,将 Q2 版本推广到尽可能多的设备。
在主要版本和次要版本中使用新 API
目前,使用 SDK_INT 常量与 VERSION_CODES 结合使用,即可通过检查 API 级别来保护代码块。我们将继续支持主要 Android 版本。
if (SDK_INT >= VERSION_CODES.BAKLAVA) {
// Use APIs introduced in Android 16
}
新的 SDK_INT_FULL 常量可用于针对主要版本和次要版本进行 API 检查,并使用新的 VERSION_CODES_FULL 枚举。
if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
// Use APIs introduced in a major or minor release
}
您还可以使用 Build.getMinorSdkVersion() 方法仅获取 SDK 次要版本。
val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)
这些 API 尚未最终确定,可能会发生变化,因此如果您有任何疑虑,请向我们发送反馈。
Wygoda użytkowania i interfejs systemu
Android 16 daje programistom i użytkownikom większą kontrolę i elastyczność w konfigurowaniu urządzenia pod kątem swoich potrzeb.
Powiadomienia dotyczące postępu
Android 16 wprowadza powiadomienia dotyczące postępów, które pomagają użytkownikom płynnie śledzić rozpoczęte przez nich od początku do końca ścieżki.
Notification.ProgressStyle to nowy styl powiadomień, który umożliwia tworzenie powiadomień skupionych na postępach. Najważniejsze zastosowania to: przejazdy współdzielone, dostawy i nawigacja. W klasie Notification.ProgressStylemożesz oznaczać stany i milestones w ścieżce użytkownika za pomocą punktów i segmentów.
如需了解详情,请参阅以进度为中心的通知文档页面。
Aktualizacje przewidywanego przejścia wstecz
Android 16 zawiera nowe interfejsy API, które ułatwiają włączanie przewidujących animacji przejścia wstecz w przypadku nawigacji za pomocą gestów, np. animacji powrotu do ekranu głównego. Zarejestrowanie funkcji
onBackInvokedCallback z nową
PRIORITY_SYSTEM_NAVIGATION_OBSERVER pozwala aplikacji na
odbieranie zwykłego wywołania onBackInvoked, gdy system obsługuje cofanie bez wpływu na normalny przepływ procesu cofania.
Android 16 zawiera dodatkowo finishAndRemoveTaskCallback() i moveTaskToBackCallback. Dzięki zarejestrowaniu tych funkcji z OnBackInvokedDispatcher system może wywoływać określone zachowania i odtwarzać odpowiednie animacje z wyprzedzeniem, gdy zostanie użyty gest wstecz.
Bogatsze reakcje haptyczne
自诞生之日起,Android 就提供了对触感反馈致动器的控制。
Android 11 添加了对更复杂的触感反馈效果的支持,更高级的致动器可以通过设备定义的语义基元 VibrationEffect.Compositions 支持这些效果。
Android 16 添加了触感反馈 API,让应用能够定义触感反馈效果的振幅和频率曲线,同时抽象出设备功能之间的差异。
Wydajność programistów i narzędzia
Chociaż większość naszych działań mających na celu zwiększenie Twojej produktywności koncentruje się na narzędziach takich jak Android Studio, Jetpack Compose i biblioteki Android Jetpack, zawsze szukamy sposobów, aby pomóc Ci zrealizować Twoją wizję na platformie.
Obsługa treści w przypadku animowanych tapet
In Android 16, the live wallpaper framework is gaining a new content API to
address the challenges of dynamic, user-driven wallpapers. Currently, live
wallpapers incorporating user-provided content require complex, service-specific
implementations. Android 16 introduces
WallpaperDescription and
WallpaperInstance. WallpaperDescription lets you
identify distinct instances of a live wallpaper from the same service. For
example, a wallpaper that has instances on both the home screen and on the lock
screen may have unique content in both places. The wallpaper picker and
WallpaperManager use this metadata to better present
wallpapers to users, streamlining the process for you to create diverse and
personalized live wallpaper experiences.
Wydajność i bateria
Android 16 wprowadza interfejsy API, które pomagają zbierać informacje o Twoich aplikacjach.
Profilowanie wywoływane przez system
ProfilingManager was
added in Android 15, giving apps the ability to
request profiling data collection using Perfetto on public devices in the field.
However, since this profiling must be started from the app, critical flows such
as startups or ANRs would be difficult or impossible for apps to capture.
To help with this, Android 16 introduces system-triggered profiling to
ProfilingManager. Apps can register interest in receiving traces for certain
triggers such as cold start reportFullyDrawn
or ANRs, and then the system starts and stops a trace on the app's behalf. After
the trace completes, the results are delivered to the app's data directory.
Uruchamianie komponentu w ApplicationStartInfo
ApplicationStartInfo została dodana w Androidzie 15, aby umożliwić aplikacji wyświetlanie powodów uruchamiania procesu, typu uruchamiania, czasu uruchamiania, ograniczania przepustowości i innych przydatnych danych diagnostycznych. Android 16 dodaje getStartComponent(), aby odróżnić, który typ komponentu wywołał uruchomienie, co może być przydatne do optymalizacji procesu uruchamiania aplikacji.
Lepsze sprawdzanie zadań
JobScheduler#getPendingJobReason() API 会返回作业可能处于待处理状态的原因。不过,作业处于待处理状态的原因可能有多种。
在 Android 16 中,我们引入了一个新 API JobScheduler#getPendingJobReasons(int jobId),该 API 会返回作业处于待处理状态的多种原因,包括开发者设置的显式约束条件和系统设置的隐式约束条件。
我们还引入了 JobScheduler#getPendingJobReasonsHistory(int jobId),用于返回最新约束条件更改的列表。
我们建议您使用该 API 来调试作业可能无法执行的原因,尤其是在您发现某些任务的成功率降低或某些作业完成延迟存在 bug 时。例如,未能在后台更新微件,或在应用启动之前未能调用预加载作业。
这还有助于您更好地了解某些作业是否因系统定义的约束条件而无法完成,而不是因明确设置的约束条件而无法完成。
Adaptacyjna częstotliwość odświeżania
Adaptive refresh rate (ARR), introduced in Android 15, enables the display refresh rate on supported hardware to adapt to the content frame rate using discrete VSync steps. This reduces power consumption while eliminating the need for potentially jank-inducing mode-switching.
Android 16 introduces hasArrSupport() and
getSuggestedFrameRate(int) while restoring
getSupportedRefreshRates() to make it easier for your apps to take
advantage of ARR. RecyclerView
1.4 internally supports ARR when it is settling from a fling or
smooth scroll, and we're continuing our work to add ARR
support into more Jetpack libraries. This frame rate article covers
many of the APIs you can use to set the frame rate so that your app can directly
use ARR.
Interfejsy API rezerwy w ADPF
The SystemHealthManager introduces the
getCpuHeadroom and
getGpuHeadroom APIs, designed to provide games and
resource-intensive apps with estimates of available CPU and GPU resources. These
methods offer a way for you to gauge how your app or game can best improve
system health, particularly when used in conjunction with other Android Dynamic
Performance Framework (ADPF) APIs that detect thermal
throttling.
By using CpuHeadroomParams and
GpuHeadroomParams on supported devices, you can
customize the time window used to compute the headroom and select between
average or minimum resource availability. This can help you reduce your CPU or
GPU resource usage accordingly, leading to better user experiences and improved
battery life.
Ułatwienia dostępu
Android 16 dodaje nowe interfejsy API i funkcje ułatwień dostępu, które mogą pomóc Ci udostępnić aplikację wszystkim użytkownikom.
Ulepszone interfejsy API ułatwień dostępu
Android 16 zawiera dodatkowe interfejsy API, które zwiększają spójność semantyki interfejsu użytkownika, co ułatwia korzystanie z usług ułatwień dostępu, takich jak TalkBack.
Kontur tekstu dla maksymalnego kontrastu
Użytkownicy ze słabszym wzrokiem często mają zmniejszoną wrażliwość na kontrast, przez co trudno im odróżnić obiekty od tła. Aby ułatwić korzystanie z Androida 16, zastąpiliśmy tekst o wysokim kontraście tekstem z konturem, który rysuje większy obszar o wysokim kontraście wokół tekstu, aby znacznie ułatwić jego czytelność.
Android 16 zawiera nowe interfejsy API AccessibilityManager, które umożliwiają aplikacjom sprawdzanie lub rejestrowanie listenera, aby sprawdzić, czy ten tryb jest włączony. Jest to przede wszystkim narzędzie dla pakietów narzędzi interfejsu użytkownika, takich jak Compose, które zapewniają podobne wrażenia wizualne. Jeśli masz bibliotekę UI Toolkit lub Twoja aplikacja wykonuje niestandardowe renderowanie tekstu, które omija klasę android.text.Layout, możesz użyć tej metody, aby dowiedzieć się, kiedy tekst obrysu jest włączony.
Czas trwania dodany do elementu TtsSpan
Android 16 rozszerza TtsSpan o TYPE_DURATION, który składa się z ARG_HOURS, ARG_MINUTES i ARG_SECONDS. Umożliwia to bezpośrednie dodawanie adnotacji do czasu trwania, co zapewnia dokładne i spójne generowanie tekstu na mowę w usługach takich jak TalkBack.
Obsługa elementów z wieloma etykietami
Android umożliwia obecnie pobieranie etykiety ułatwień dostępu przez elementy interfejsu z innej etykiety. Obecnie można też powiązać wiele etykiet, co jest częstym scenariuszem w przypadku treści internetowych. Dzięki wprowadzeniu interfejsu API opartego na listach w AccessibilityNodeInfo Android może bezpośrednio obsługiwać te relacje między wieloma etykietami. W ramach tej zmiany wycofujemy parametry AccessibilityNodeInfo#setLabeledBy i #getLabeledBy na rzecz parametrów #addLabeledBy, #removeLabeledBy i #getLabeledByList.
Ulepszona obsługa elementów rozwijanych
Android 16 zawiera interfejsy API ułatwień dostępu, które umożliwiają wyświetlanie elementów interaktywnych, takich jak menu czy rozwijane listy, w rozwiniętym lub zwężonym stanie. Ustawienie stanu rozwiniętego za pomocą setExpandedState i wysłanie zdarzenia TYPE_WINDOW_CONTENT_CHANGED AccessibilityEvents z typem zmiany zawartości CONTENT_CHANGE_TYPE_EXPANDED pozwala zapewnić, aby czytniki ekranu, takie jak TalkBack, ogłaszały zmiany stanu, co daje bardziej intuicyjne i włączające wrażenia użytkownika.
Paski postępu nieokreślonego
Android 16 dodaje RANGE_TYPE_INDETERMINATE, dzięki czemu możesz udostępniać RangeInfo zarówno w przypadku widżetów deterministycznych, jak i niedeterministycznych ProgressBar, co pozwala usługom takim jak TalkBack zapewniać bardziej spójną informację zwrotną dla wskaźników postępu.
Pole wyboru z 3 stanami
Nowe metody AccessibilityNodeInfo
getChecked i setChecked(int)
w Androidzie 16 obsługują teraz stan „częściowo zaznaczone” oprócz stanów „zaznaczone” i „niezaznaczone”. Zastępuje wycofane typy danych logicznych isChecked i setChecked(boolean).
Dodatkowe teksty reklamy
Gdy usługa ułatwień dostępu opisuje element ViewGroup, łączy etykiety treści jego podrzędnych elementów. Jeśli podasz wartość contentDescription dla atrybutu ViewGroup, usługi ułatwień dostępu założą, że zastępujesz też opis podrzędnych widoków bez możliwości wyboru. Może to być problematyczne, jeśli chcesz oznaczyć coś jak menu (np. „Rodzina czcionek”), zachowując jednocześnie bieżący wybór w ramach ułatwień dostępu (np. „Roboto”). Android 16 zawiera element setSupplementalDescription, dzięki któremu możesz podać tekst zawierający informacje o elementach potomnych elementu ViewGroup bez zastępowania informacji z tych elementów.
Pola wymagane
Android 16 dodaje setFieldRequired do AccessibilityNodeInfo, aby aplikacje mogły poinformować usługę ułatwień dostępu, że dane w polu formularza są wymagane. Jest to ważny scenariusz dla użytkowników wypełniających różne rodzaje formularzy, nawet te proste, takie jak wymagane pole wyboru w warunkach korzystania z usługi. Pomaga on użytkownikom konsekwentnie identyfikować wymagane pola i szybko się między nimi przemieszczać.
Telefon jako źródło dźwięku podczas połączeń głosowych z użyciem aparatów słuchowych LEA
Android 16 adds the capability for users of LE Audio hearing aids to switch between the built-in microphones on the hearing aids and the microphone on their phone for voice calls. This can be helpful in noisy environments or other situations where the hearing aid's microphones might not perform well.
Sterowanie głośnością dźwięków otoczenia w przypadku aparatów słuchowych LEA
Android 16 adds the capability for users of LE Audio hearing aids to adjust the volume of ambient sound that is picked up by the hearing aid's microphones. This can be helpful in situations where background noise is too loud or too quiet.
Aparat
Android 16 rozszerza obsługę profesjonalnych użytkowników aparatu, umożliwiając hybrydowe automatyczne ustawianie ekspozycji oraz precyzyjne dostosowywanie temperatury kolorów i odcieni. Nowy wskaźnik trybu nocnego pomaga aplikacji określić, kiedy przełączyć się na sesję aparatu w trybie nocnym i z powrotem. Nowe działania Intent ułatwiają robienie zdjęć ruchomych, a my nadal ulepszamy obrazy UltraHDR, dodając obsługę kodowania HEIC i nowych parametrów z projektu standardu ISO 21496-1.
Hybrydowe automatyczne ustawianie ekspozycji
Android 16 adds new hybrid auto-exposure modes to Camera2, allowing you to manually control specific aspects of exposure while letting the auto-exposure (AE) algorithm handle the rest. You can control ISO + AE, and exposure time + AE, providing greater flexibility compared to the current approach where you either have full manual control or rely entirely on auto-exposure.
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) ...
}
Precyzyjne dostosowywanie temperatury kolorów i odcieni
Android 16 adds camera support for fine color temperature and tint adjustments
to better support professional video recording applications. In previous Android
versions, you could control white balance settings through
CONTROL_AWB_MODE, which contains options limited to a
preset list, such as Incandescent,
Cloudy, and Twilight. The
COLOR_CORRECTION_MODE_CCT enables the use of
COLOR_CORRECTION_COLOR_TEMPERATURE and
COLOR_CORRECTION_COLOR_TINT for precise adjustments of
white balance based on the correlated color temperature.
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) ...
}
The following examples show how a photo would look after applying different color temperature and tint adjustments:
Wykrywanie sceny w trybie nocnym aparatu
To help your app know when to switch to and from a night mode camera session,
Android 16 adds EXTENSION_NIGHT_MODE_INDICATOR. If
supported, it's available in the CaptureResult within
Camera2.
This is the API we briefly mentioned as coming soon in the How Instagram enabled users to take stunning low light photos blog post. That post is a practical guide on how to implement night mode together with a case study that links higher-quality in-app night mode photos with an increase in the number of photos shared from the in-app camera.
Działania intencji przechwytywania zdjęć ruchomych
Android 16 adds standard Intent actions —
ACTION_MOTION_PHOTO_CAPTURE, and
ACTION_MOTION_PHOTO_CAPTURE_SECURE — which request that
the camera application capture a motion photo and return
it.
You must either pass an extra EXTRA_OUTPUT to control
where the image will be written, or a Uri through
Intent.setClipData(ClipData). If you don't set a
ClipData, it will be copied there for you when calling
Context.startActivity(Intent).
Ulepszenia obrazu UltraHDR
Android 16 继续致力于通过 UltraHDR 图片提供出色的图片质量。它添加了对 HEIC 文件格式的 UltraHDR 图片的支持。这些图片将获得 ImageFormat 类型 HEIC_ULTRAHDR,并包含类似于现有 UltraHDR JPEG 格式的嵌入式增益图。我们还在努力为 UltraHDR 添加 AVIF 支持,敬请期待。
此外,Android 16 在 UltraHDR 中实现了 ISO 21496-1 草稿标准中的其他参数,包括能够获取和设置应应用增益图算法的色彩空间,以及支持使用 SDR 增益图的 HDR 编码基础图片。
Grafika
Android 16 zawiera najnowsze ulepszenia grafiki, takie jak niestandardowe efekty graficzne z AGSL.
Niestandardowe efekty graficzne z AGSL
Android 16 adds RuntimeColorFilter and
RuntimeXfermode, allowing you to author complex effects like
Threshold, Sepia, and Hue Saturation and apply them to draw calls. Since Android
13, you've been able to use AGSL to create custom
RuntimeShaders that extend Shader. The new API
mirrors this, adding an AGSL-powered RuntimeColorFilter that
extends ColorFilter, and a Xfermode effect that
lets you implement AGSL-based custom compositing and blending between source and
destination pixels.
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
}
Łączność
Android 16 aktualizuje platformę, aby zapewnić Twojej aplikacji dostęp do najnowszych osiągnięć w dziedzinie komunikacji i technologii bezprzewodowych.
Określanie odległości z większym bezpieczeństwem
Android 16 adds support for robust security features in Wi-Fi location on supported devices with Wi-Fi 6's 802.11az, allowing apps to combine the higher accuracy, greater scalability, and dynamic scheduling of the protocol with security enhancements including AES-256-based encryption and protection against MITM attacks. This allows it to be used more safely in proximity use cases, such as unlocking a laptop or a vehicle door. 802.11az is integrated with the Wi-Fi 6 standard, leveraging its infrastructure and capabilities for wider adoption and easier deployment.
Ogólne interfejsy API określania odległości
Android 16 includes the new RangingManager, which provides
ways to determine the distance and angle on supported hardware between the local
device and a remote device. RangingManager supports the usage of a variety of
ranging technologies such as BLE channel sounding, BLE RSSI-based ranging, Ultra
Wideband, and Wi-Fi round trip time.
Obecność urządzenia w Menedżerze urządzeń towarzyszących
In Android 16, new APIs are being introduced for binding your companion app
service. Service will be bound when BLE is in range and Bluetooth is connected
and service will be unbound when BLE is out of range or Bluetooth is
disconnected. App will receives a new
'onDevicePresenceEvent()' callback based on various
of DevicePresenceEvent.
More details can be found in
'startObservingDevicePresence(ObservingDevicePresenceRequest)'.
Multimedia
Android 16 zawiera wiele funkcji, które poprawiają jakość multimediów.
Ulepszenia selektora zdjęć
照片选择器为用户提供了一种安全的内置授权方式,让用户可以向应用授予对本地存储空间和云端存储空间中所选图片和视频的访问权限,而不是对整个媒体库的访问权限。通过 Google 系统更新和 Google Play 服务组合使用模块化系统组件,该工具向后支持到 Android 4.4(API 级别 19)。只需几行代码即可与相关的 Android Jetpack 库集成。
Android 16 对照片选择器进行了以下改进:
- 嵌入式照片选择器:新 API,可让应用将照片选择器嵌入其视图层次结构中。这样,它就感觉像是应用中更为集成的一部分,同时仍可利用进程隔离功能,让用户能够选择媒体,而无需应用拥有过于宽泛的权限。为了最大限度地提高跨平台版本的兼容性并简化集成,如果您想集成嵌入式照片选择器,则需要使用即将推出的 Android Jetpack 库。
- 照片选择器中的云搜索:新的 API 可让 Android 照片选择器从云端媒体提供商中进行搜索。照片选择器中的搜索功能即将推出。
Zaawansowane profesjonalne opcje wideo
Android 16 引入了对高级专业视频 (APV) 编解码器的支持,该编解码器专为专业级高品质视频录制和后期制作而设计。
APV 编解码器标准具有以下特点:
- 感知上无损的视频画质(接近原始视频画质)
- 复杂度低且吞吐量高的仅帧内编码(无像素域预测),以更好地支持编辑工作流
- 支持高比特率范围(最高几十 Gbps),适用于 2K、4K 和 8K 分辨率内容,由轻量级熵编码方案实现
- 帧平铺,用于沉浸式内容和启用并行编码和解码
- 支持各种色度采样格式和位深
- 支持多次解码和重新编码,且不会严重降低视觉质量
- 支持多视图视频和辅助视频,例如深度、Alpha 和预览
- 支持 HDR10/10+ 和用户定义的元数据
OpenAPV 项目提供了 APV 的参考实现。Android 16 将实现对 APV 422-10 配置文件的支持,该配置文件提供 YUV 422 色彩采样以及 10 位编码,并且目标比特率最高可达 2 Gbps。
Prywatność
Android 16 zawiera wiele funkcji, które pomagają programistom chronić prywatność użytkowników.
Aktualizacje Health Connect
Health Connect 添加了 ACTIVITY_INTENSITY,这是一种根据世界卫生组织关于中等强度和剧烈强度活动的指南定义的数据类型。每个记录都需要提供开始时间、结束时间以及活动强度(中等或剧烈)。
Health Connect 还包含支持医疗记录的更新版 API。这样一来,应用便可在征得用户明确同意的情况下,读取和写入 FHIR 格式的医疗记录。
Piaskownica prywatności na Androida
Android 16 中集成了最新版本的 Privacy Sandbox on Android,这是我们持续致力于开发可让用户放心地知道其隐私受到保护的技术的一部分。您可以访问我们的网站,详细了解 Privacy Sandbox on Android 开发者 Beta 版计划,以便顺利上手。不妨了解 SDK 运行时,它可让 SDK 在与其所服务的应用分离的专用运行时环境中运行,从而为用户数据收集和共享提供更强的保护措施。
Bezpieczeństwo
Android 16 zawiera funkcje, które pomagają zwiększyć bezpieczeństwo aplikacji i chronić jej dane.
Interfejs API udostępniania kluczy
Android 16 adds APIs that support sharing access to
Android Keystore keys with other apps. The new
KeyStoreManager class supports
granting and revoking access to keys
by app uid, and includes an API for apps to access shared
keys.
Formaty urządzeń
Android 16 zapewnia aplikacjom obsługę, która pozwala w pełni wykorzystać formaty Androida.
Ustandaryzowany system jakości obrazu i dźwięku w telewizorach
Android 16 中的新 MediaQuality 软件包公开了一组标准化 API,用于访问音频和图片配置文件以及与硬件相关的设置。这样,在线播放应用就可以查询配置文件并将其动态应用于媒体:
- 使用更大动态范围进行母版制作的电影需要更高的色彩准确度,才能看清阴影中的细微细节并根据环境光线进行调整,因此,最好使用色彩准确度优先于亮度的配置文件。
- 体育赛事直播通常采用较窄的动态范围进行母版制作,但通常是在白天观看,因此偏向亮度而非色彩准确度的配置文件可以获得更好的效果。
- 完全交互式内容需要尽可能减少处理以缩短延迟时间,并且需要更高的帧速率,因此许多电视都附带游戏配置文件。
借助此 API,应用可以在个人资料之间切换,用户可以享受调整支持的电视,以便尽可能适合其内容。
Internacjonalizacja
Android 16 dodaje funkcje i możliwości, które uzupełniają wygodę użytkowania, gdy urządzenie jest używane w różnych językach.
Tekst w pionie
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
)
}
}
) {}
Dostosowywanie systemu miar
Users can now customize their measurement system in regional preferences within
Settings. The user preference is included as part of the locale code, so you can
register a BroadcastReceiver on
ACTION_LOCALE_CHANGED to handle locale configuration changes when
regional preferences change.
Using formatters can help match the local experience. For example, "0.5 in" in English (United States), is "12,7 mm" for a user who has set their phone to English (Denmark) or who uses their phone in English (United States) with the metric system as the measurement system preference.
To find these settings, open the Settings app and navigate to System > Languages & region.