기능 및 API

Android 16에는 개발자를 위한 훌륭한 새로운 기능과 API가 도입되었습니다. 다음 섹션에서는 관련 API를 시작하는 데 도움이 되도록 이러한 기능을 요약합니다.

새로운 API, 수정된 API, 삭제된 API에 관한 자세한 목록은 API 차이점 보고서를 참고하세요. 새로운 API에 관한 자세한 내용은 Android API 참조를 방문하세요. 새로운 API가 강조 표시되어 쉽게 확인 가능합니다.

플랫폼 변경사항이 앱에 영향을 미칠 수 있는 영역도 검토해야 합니다. 자세한 내용은 다음 페이지를 참고하세요.

핵심 기능

Android에는 Android 시스템의 핵심 기능을 확장하는 새로운 API가 포함되어 있습니다.

2025년 두 가지 Android API 출시

  • 此预览版适用于 Android 的下一个主要版本,计划于 2025 年第 2 季度发布。此版本与我们过去的所有 API 版本类似,我们可以进行计划性的行为更改,这些更改通常与 targetSdkVersion 相关联。
  • 我们计划提前一个季度(2021 年第 2 季度,而非之前的第 3 季度)发布主要版本,以便更好地与整个生态系统中的设备发布时间表保持一致,让更多设备能够更早地搭载 Android 主要版本。由于主要版本将于第 2 季度发布,因此您需要比往年提前几个月进行年度兼容性测试,以确保您的应用已做好准备。
  • 我们计划在 2025 年第 4 季度再发布一次,届时还将推出新的开发者 API。2025 年只有第二季度的主要版本包含可能影响应用的计划行为变更。

除了新的开发者 API 之外,第 4 季度次要版本还将包含功能更新、优化和 bug 修复;其中不会包含任何会影响应用的行为变更。

2025 年 Android 版本的时间轴视图,请注意,25Q2 版本是一个主要版本,25Q4 版本是一个次要版本。

我们将继续每季度发布 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 尚未最终确定,可能会发生变化,因此如果您有任何疑虑,请向我们发送反馈

사용자 환경 및 시스템 UI

Android 16에서는 앱 개발자와 사용자가 필요에 맞게 기기를 구성할 수 있는 더 많은 제어 기능과 유연성을 제공합니다.

진행 상황 중심 알림

Android 16에서는 사용자가 시작부터 끝까지 사용자 시작 여정을 원활하게 추적할 수 있도록 진행률 중심 알림을 도입합니다.

Notification.ProgressStyle는 진행 상황 중심의 알림을 만들 수 있는 새로운 알림 스타일입니다. 주요 사용 사례로는 차량 공유, 배송, 내비게이션이 있습니다. Notification.ProgressStyle 클래스 내에서 포인트세그먼트를 사용하여 사용자 여정의 상태와 마일스톤을 나타낼 수 있습니다.

자세한 내용은 진행률 중심 알림 문서 페이지를 참고하세요.

잠금 화면에 표시되는 진행률 중심의 알림입니다.
알림 창에 표시되는 진행률 중심 알림

뒤로 탐색 예측 업데이트

Android 16 adds new APIs to help you enable predictive back system animations in gesture navigation such as the back-to-home animation. Registering the onBackInvokedCallback with the new PRIORITY_SYSTEM_NAVIGATION_OBSERVER allows your app to receive the regular onBackInvoked call whenever the system handles a back navigation without impacting the normal back navigation flow.

Android 16 additionally adds the finishAndRemoveTaskCallback() and moveTaskToBackCallback. By registering these callbacks with the OnBackInvokedDispatcher, the system can trigger specific behaviors and play corresponding ahead-of-time animations when the back gesture is invoked.

더 풍부한 햅틱

Android는 처음부터 햅틱 액추에이터 제어를 노출했습니다.

Android 11에서는 기기 정의 시맨틱 프리미티브의 VibrationEffect.Compositions를 통해 고급 액추에이터가 지원할 수 있는 더 복잡한 햅틱 효과에 대한 지원을 추가했습니다.

Android 16에는 앱이 햅틱 효과의 진폭과 주파수 곡선을 정의하면서 기기 기능 간의 차이를 추상화할 수 있는 햅틱 API가 추가되었습니다.

개발자 생산성 및 도구

생산성 향상을 위한 대부분의 작업은 Android 스튜디오, Jetpack Compose, Android Jetpack 라이브러리와 같은 도구를 중심으로 이루어지지만, Google에서는 항상 플랫폼에서 개발자의 비전을 실현할 수 있는 방법을 모색합니다.

라이브 배경화면 콘텐츠 처리

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.

성능 및 배터리

Android 16에서는 앱에 관한 유용한 정보를 수집하는 데 도움이 되는 API를 도입합니다.

시스템 트리거 프로파일링

ProfilingManager 在 Android 15 中添加,让应用能够在现场使用 Perfetto 请求收集性能数据。不过,由于此性能分析必须从应用启动,因此应用很难或根本无法捕获启动或 ANR 等关键流程。

为此,Android 16 向 ProfilingManager 引入了系统触发的性能分析。应用可以注册接收特定触发器(例如冷启动 reportFullyDrawn 或 ANR)轨迹的兴趣,然后系统会代表应用启动和停止轨迹。轨迹完成后,结果会传送到应用的数据目录。

ApplicationStartInfo에서 구성요소 시작

ApplicationStartInfoAndroid 15에서 추가되어 앱이 프로세스 시작 이유, 시작 유형, 시작 시간, 제한, 기타 유용한 진단 데이터를 볼 수 있습니다. Android 16에서는 시작을 트리거한 구성요소 유형을 구분하는 getStartComponent()를 추가합니다. 이는 앱의 시작 흐름을 최적화하는 데 도움이 될 수 있습니다.

작업 인트로스펙션 개선

JobScheduler#getPendingJobReason() API는 작업이 대기 중일 수 있는 이유를 반환합니다. 하지만 작업이 여러 가지 이유로 대기 중일 수 있습니다.

Android 16에서는 개발자가 설정한 명시적 제약 조건과 시스템에서 설정한 암시적 제약 조건으로 인해 작업이 대기 중인 여러 가지 이유를 반환하는 새로운 API JobScheduler#getPendingJobReasons(int jobId)를 도입합니다.

또한 최신 제약 조건 변경사항 목록을 반환하는 JobScheduler#getPendingJobReasonsHistory(int jobId)도 도입됩니다.

특히 특정 작업의 성공률이 감소하거나 특정 작업 완료 지연과 관련된 버그가 있는 경우 API를 사용하여 작업이 실행되지 않는 이유를 디버그하는 것이 좋습니다. 예를 들어 백그라운드에서 위젯을 업데이트하지 못하거나 앱 시작 전에 미리 가져오기 작업을 호출하지 못했습니다.

이렇게 하면 시스템 정의 제약조건과 명시적으로 설정된 제약조건 중 어느 것이 특정 작업이 완료되지 않는 원인인지 더 잘 파악할 수 있습니다.

자동 조절 새로고침 빈도

Android 15 中引入的自适应刷新率 (ARR) 可让受支持硬件上的显示屏刷新率使用离散的 VSync 步长来适应内容帧速率。这不仅降低了功耗,还无需进行可能导致卡顿的模式切换。

Android 16 引入了 hasArrSupport()getSuggestedFrameRate(int),同时恢复了 getSupportedRefreshRates(),以便您的应用更轻松地利用 ARR。RecyclerView 1.4从快速滑动或平滑滚动中稳定下来时会在内部支持 ARR,我们将继续努力,将 ARR 支持添加到更多 Jetpack 库中。这篇帧速率文章介绍了许多可用于设置帧速率的 API,以便您的应用可以直接使用 ARR。

ADPF의 여유 공간 API

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.

접근성

Android 16에는 앱을 모든 사용자에게 제공하는 데 도움이 되는 새로운 접근성 API와 기능이 추가되었습니다.

접근성 API 개선

Android 16에는 TalkBack과 같은 접근성 서비스를 사용하는 사용자의 일관성을 개선하는 데 도움이 되는 UI 시맨틱을 개선하는 API가 추가되었습니다.

텍스트 대비를 극대화하기 위한 텍스트 윤곽선

저시력 사용자는 대비 감도가 낮아서 물체를 배경과 구분하기가 어렵습니다. 이러한 사용자를 지원하기 위해 Android 16에서는 고대비 텍스트를 대체하는 윤곽선 텍스트를 도입했습니다. 윤곽선 텍스트는 텍스트 주위에 더 큰 대비 영역을 그려 가독성을 크게 개선합니다.

Android 16에는 앱이 이 모드가 사용 설정되어 있는지 확인하거나 리스너를 등록할 수 있는 새로운 AccessibilityManager API가 포함되어 있습니다. 이는 주로 Compose와 같은 UI 도구 키트가 유사한 시각적 환경을 제공하기 위한 것입니다. UI 도구 키트 라이브러리를 유지 관리하거나 앱이 android.text.Layout 클래스를 우회하는 맞춤 텍스트 렌더링을 실행하는 경우 이를 사용하여 윤곽선 텍스트가 사용 설정된 시점을 알 수 있습니다.

Android 16의 새로운 윤곽선 텍스트 접근성 기능 전후의 대비가 향상된 텍스트

TtsSpan에 길이가 추가됨

Android 16은 ARG_HOURS, ARG_MINUTES, ARG_SECONDS으로 구성된 TYPE_DURATION를 사용하여 TtsSpan를 확장합니다. 이를 통해 시간 길이에 직접 주석을 달 수 있으므로 TalkBack과 같은 서비스에서 정확하고 일관된 텍스트 음성 변환 출력을 보장할 수 있습니다.

여러 라벨이 있는 요소 지원

현재 Android에서는 UI 요소가 다른 요소에서 접근성 라벨을 파생할 수 있도록 허용하며, 이제 웹 콘텐츠에서 일반적인 시나리오인 여러 라벨을 연결하는 기능을 제공합니다. 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 위젯과 결정되지 않은 ProgressBar 위젯 모두에 RangeInfo를 노출할 수 있는 방법이 제공됩니다. 이를 통해 TalkBack과 같은 서비스가 진행률 표시기에 더 일관되게 의견을 제공할 수 있습니다.

3-state CheckBox

이제 Android 16의 새로운 AccessibilityNodeInfo 메서드 getCheckedsetChecked(int)는 '선택됨' 및 '선택 해제됨' 외에도 '부분 선택됨' 상태를 지원합니다. 이는 지원 중단된 불리언 isCheckedsetChecked(boolean)를 대체합니다.

보충 설명

접근성 서비스가 ViewGroup를 설명하면 하위 뷰의 콘텐츠 라벨을 결합합니다. ViewGroupcontentDescription를 제공하면 접근성 서비스는 포커스를 설정할 수 없는 하위 뷰의 설명도 재정의한다고 가정합니다. 이는 접근성 관련 현재 선택사항 (예: 'Roboto')을 유지하면서 드롭다운 (예: 'Font Family')과 같은 항목에 라벨을 지정하려는 경우 문제가 될 수 있습니다. Android 16에서는 setSupplementalDescription를 추가하여 하위 요소의 정보를 재정의하지 않고도 ViewGroup에 관한 정보를 제공하는 텍스트를 제공할 수 있습니다.

필수 양식 입력란

Android 16에서는 앱이 접근성 서비스에 양식 필드 입력이 필요하다고 알릴 수 있도록 AccessibilityNodeInfosetFieldRequired를 추가합니다. 이는 사용자가 필수 약관 체크박스와 같이 간단한 양식부터 다양한 유형의 양식을 작성할 때 중요한 시나리오입니다. 사용자가 필수 입력란을 일관되게 식별하고 빠르게 탐색할 수 있도록 도와줍니다.

LEA 보청기를 사용한 음성 통화 시 휴대전화를 마이크 입력으로 사용

Android 16에서는 LE Audio 보청기 사용자가 음성 통화를 위해 보청기의 내장 마이크와 휴대전화의 마이크 간에 전환할 수 있는 기능을 추가합니다. 이는 소음이 심한 환경이나 보청기의 마이크가 제대로 작동하지 않을 수 있는 다른 상황에서 유용할 수 있습니다.

LEA 보청기의 주변 볼륨 제어

Android 16에는 LE Audio 보청기 사용자가 보청기의 마이크에서 수신하는 주변 소음의 볼륨을 조절할 수 있는 기능이 추가되었습니다. 배경 소음이 너무 크거나 너무 조용한 경우에 유용합니다.

카메라

Android 16에서는 전문 카메라 사용자를 위한 지원이 강화되어 정확한 색온도 및 색조 조정과 함께 하이브리드 자동 노출이 가능합니다. 새 야간 모드 표시기를 사용하면 앱이 야간 모드 카메라 세션으로 전환해야 하는 시점을 알 수 있습니다. 새로운 Intent 작업을 통해 모션 포토를 더 쉽게 촬영할 수 있으며, HEIC 인코딩 지원 및 ISO 21496-1 초안 표준의 새로운 파라미터를 통해 UltraHDR 이미지를 계속 개선하고 있습니다.

하이브리드 자동 노출

Android 16에서는 Camera2에 새로운 하이브리드 자동 노출 모드를 추가하여 노출의 특정 측면을 수동으로 제어하는 동시에 자동 노출 (AE) 알고리즘이 나머지를 처리하도록 할 수 있습니다. ISO + AE노출 시간 + AE를 제어할 수 있으므로 전체 수동 제어 또는 자동 노출에 전적으로 의존하는 기존 접근 방식에 비해 더 큰 유연성을 제공합니다.

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) ...
}

정확한 색상 온도 및 색조 조정

Android 16 增加了对相机的精细色温和色调调整的支持,以更好地支持专业视频录制应用。在较低版本的 Android 中,您可以通过 CONTROL_AWB_MODE 控制白平衡设置,其中包含仅限于预设列表的选项,例如白炽灯多云黄昏COLOR_CORRECTION_MODE_CCT 可让您使用 COLOR_CORRECTION_COLOR_TEMPERATURECOLOR_CORRECTION_COLOR_TINT 根据相关色温精确调整白平衡。

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) ...
}

以下示例展示了应用不同色温和色调调整后的照片效果:

未应用色温或色调调整的原始图片。
将色温调整为 3000 的图片。
将色温调整为 7000 的图片。


将色调级别降低 50 的图片。
色调级别提高了 50 的图片。

카메라 야간 모드 장면 감지

앱이 야간 모드 카메라 세션을 전환할 시기를 알 수 있도록 Android 16에는 EXTENSION_NIGHT_MODE_INDICATOR가 추가되었습니다. 지원되는 경우 Camera2 내 CaptureResult에서 사용할 수 있습니다.

이 API는 Instagram에서 사용자가 멋진 저조도 사진을 찍을 수 있게 된 방법 블로그 게시물에서 곧 제공될 예정이라고 간단히 언급한 API입니다. 이 게시물은 야간 모드를 구현하는 방법에 관한 실용적인 가이드와 함께 인앱 카메라에서 공유되는 사진 수가 증가함에 따라 인앱 야간 모드 사진의 품질이 향상되는 사례를 보여주는 사례 연구를 제공합니다.

모션 사진 캡처 인텐트 작업

Android 16 添加了标准 intent 操作 ACTION_MOTION_PHOTO_CAPTUREACTION_MOTION_PHOTO_CAPTURE_SECURE,用于请求相机应用拍摄动态照片并将其返回。

您必须传递额外的 EXTRA_OUTPUT 来控制将图片写入的位置,或者通过 Intent.setClipData(ClipData) 传递 Uri。如果您未设置 ClipData,系统会在调用 Context.startActivity(Intent) 时将其复制到该位置。

动态照片示例,显示静态图片和动态播放画面。

UltraHDR 이미지 개선사항

标准动态范围 (SDR) 与高动态范围 (HDR) 图片质量对比示意图。

Android 16 继续致力于通过 UltraHDR 图片提供出色的图片质量。它添加了对 HEIC 文件格式的 UltraHDR 图片的支持。这些图片将获得 ImageFormat 类型 HEIC_ULTRAHDR,并包含类似于现有 UltraHDR JPEG 格式的嵌入式增益图。我们还在努力为 UltraHDR 添加 AVIF 支持,敬请期待。

此外,Android 16 在 UltraHDR 中实现了 ISO 21496-1 草稿标准中的其他参数,包括能够获取和设置应应用增益图算法的色彩空间,以及支持使用 SDR 增益图的 HDR 编码基础图片。

그래픽

Android 16에는 AGSL을 사용한 맞춤 그래픽 효과와 같은 최신 그래픽 개선사항이 포함되어 있습니다.

AGSL을 사용한 맞춤 그래픽 효과

Android 16에서는 RuntimeColorFilterRuntimeXfermode를 추가하여 임곗값, 세피아, 색조 채도와 같은 복잡한 효과를 작성하고 그리기 호출에 적용할 수 있습니다. Android 13부터 AGSL을 사용하여 Shader를 확장하는 맞춤 RuntimeShaders를 만들 수 있었습니다. 새 API는 이를 반영하여 ColorFilter를 확장하는 AGSL 기반 RuntimeColorFilter와 소스 및 대상 픽셀 간에 AGSL 기반 맞춤 컴포지션 및 블렌딩을 구현할 수 있는 Xfermode 효과를 추가합니다.

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
}

연결

Android 16은 앱이 통신 및 무선 기술의 최신 발전에 액세스할 수 있도록 플랫폼을 업데이트합니다.

강화된 보안으로 범위 지정

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.

일반 범위 지정 API

Android 16에는 로컬 기기와 원격 기기 간의 지원되는 하드웨어에서 거리와 각도를 결정하는 방법을 제공하는 새로운 RangingManager가 포함되어 있습니다. RangingManager는 BLE 채널 소리 재생, BLE RSSI 기반 측정, 초광대역, Wi-Fi 왕복 시간과 같은 다양한 측정 기술의 사용을 지원합니다.

호환 기기 관리자 기기 감지

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)'.

미디어

Android 16에는 미디어 환경을 개선하는 다양한 기능이 포함되어 있습니다.

사진 선택 도구 개선사항

照片选择器为用户提供了一种安全的内置授权方式,让用户可以向应用授予对本地存储空间和云端存储空间中所选图片和视频的访问权限,而不是对整个媒体库的访问权限。通过 Google 系统更新Google Play 服务组合使用模块化系统组件,该工具向后支持到 Android 4.4(API 级别 19)。只需几行代码即可与相关的 Android Jetpack 库集成。

Android 16 对照片选择器进行了以下改进:

  • 嵌入式照片选择器新 API,可让应用将照片选择器嵌入其视图层次结构中。这样,它就感觉像是应用中更为集成的一部分,同时仍可利用进程隔离功能,让用户能够选择媒体,而无需应用拥有过于宽泛的权限。为了最大限度地提高跨平台版本的兼容性并简化集成,如果您想集成嵌入式照片选择器,则需要使用即将推出的 Android Jetpack 库。
  • 照片选择器中的云搜索新的 API 可让 Android 照片选择器从云端媒体提供商中进行搜索。照片选择器中的搜索功能即将推出。

Advanced Professional Video

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

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

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

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

개인정보처리방침

Android 16에는 앱 개발자가 사용자 개인 정보를 보호하는 데 도움이 되는 다양한 기능이 포함되어 있습니다.

헬스 커넥트 업데이트

Health Connect 添加了 ACTIVITY_INTENSITY,这是一种根据世界卫生组织关于中等强度和剧烈强度活动的指南定义的数据类型。每个记录都需要提供开始时间、结束时间以及活动强度(中等或剧烈)。

Health Connect 还包含支持医疗记录的更新版 API。这样一来,应用便可在征得用户明确同意的情况下,读取和写入 FHIR 格式的医疗记录。

Android의 개인 정보 보호 샌드박스

Android 16에는 사용자가 자신의 개인 정보가 보호된다는 사실을 알 수 있는 기술을 개발하기 위한 Google의 지속적인 노력의 일환으로 Android의 개인 정보 보호 샌드박스의 최신 버전이 통합되어 있습니다. Android의 개인 정보 보호 샌드박스 개발자 베타 프로그램에 대한 자세한 내용은 웹사이트를 참고하세요. SDK가 제공하는 앱과 별도의 전용 런타임 환경에서 실행되도록 허용하여 사용자 데이터 수집 및 공유를 더 강력하게 보호하는 SDK 런타임을 확인하세요.

보안

Android 16에는 앱의 보안을 강화하고 앱의 데이터를 보호하는 데 도움이 되는 기능이 포함되어 있습니다.

키 공유 API

Android 16에는 Android 키 저장소 키에 대한 액세스 권한을 다른 앱과 공유하는 것을 지원하는 API가 추가되었습니다. 새 KeyStoreManager 클래스는 앱 uid의 키에 대한 액세스 권한 부여취소를 지원하며 앱이 공유 키에 액세스할 수 있는 API를 포함합니다.

기기 폼 팩터

Android 16은 앱이 Android의 폼 팩터를 최대한 활용할 수 있도록 지원합니다.

TV용 표준화된 사진 및 오디오 품질 프레임워크

The new MediaQuality package in Android 16 exposes a set of standardized APIs for access to audio and picture profiles and hardware-related settings. This allows streaming apps to query profiles and apply them to media dynamically:

  • Movies mastered with a wider dynamic range require greater color accuracy to see subtle details in shadows and adjust to ambient light, so a profile that prefers color accuracy over brightness may be appropriate.
  • Live sporting events are often mastered with a narrow dynamic range, but are often watched in daylight, so a profile that preferences brightness over color accuracy can give better results.
  • Fully interactive content wants minimal processing to reduce latency, and wants higher frame rates, which is why many TV's ship with a game profile.

The API allows apps to switch between profiles and users to enjoy tuning supported TVs to best suit their content.

다국어 지원

Android 16에서는 기기가 여러 언어로 사용될 때 사용자 환경을 보완하는 기능이 추가되었습니다.

세로 텍스트

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
            )
        }
    }
) {}

측정 시스템 맞춤설정

用户现在可以在“设置”中的地区偏好设置中自定义测量系统。用户偏好设置包含在语言区域代码中,因此您可以在 ACTION_LOCALE_CHANGED 上注册 BroadcastReceiver,以便在地区偏好设置发生更改时处理语言区域配置更改。

使用格式设置程序有助于提供符合当地体验的服务。例如,对于将手机设置为英语(丹麦)或将手机设置为英语(美国)并将公制作为首选测量系统的用户,“0.5 in”的英语(美国)对应于“12,7 mm”。

如需找到这些设置,请打开“设置”应用,然后依次前往系统 > 语言和地区