기능 및 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에서는 홈으로 돌아가기 애니메이션과 같은 동작 탐색에서 뒤로 탐색 예측 시스템 애니메이션을 사용 설정하는 데 도움이 되는 새로운 API를 추가합니다. 새로운 PRIORITY_SYSTEM_NAVIGATION_OBSERVERonBackInvokedCallback를 등록하면 앱이 일반 뒤로 탐색 흐름에 영향을 주지 않고 시스템이 뒤로 탐색을 처리할 때마다 일반 onBackInvoked 호출을 수신할 수 있습니다.

Android 16에서는 finishAndRemoveTaskCallback()moveTaskToBackCallback도 추가합니다. 이러한 콜백을 OnBackInvokedDispatcher에 등록하면 시스템은 뒤로 동작이 호출될 때 특정 동작을 트리거하고 상응하는 사전 애니메이션을 재생할 수 있습니다.

더 풍부한 햅틱

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

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

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

개발자 생산성 및 도구

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

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

在 Android 16 中,动态壁纸框架将获得一个新的 content API,以应对由用户驱动的动态壁纸带来的挑战。目前,包含用户提供的内容的实时壁纸需要复杂的服务专用实现。Android 16 引入了 WallpaperDescriptionWallpaperInstance。借助 WallpaperDescription,您可以识别同一服务中的动态壁纸的不同实例。例如,如果某张壁纸同时在主屏幕和锁定屏幕上显示,则这两种情况下显示的内容可能各不相同。壁纸选择器和 WallpaperManager 会使用此元数据更好地向用户呈现壁纸,从而简化创建多样化个性化动态壁纸体验的过程。

성능 및 배터리

Android 16에서는 앱에 관한 통계를 수집하는 데 도움이 되는 API를 도입했습니다.

시스템 트리거 프로파일링

ProfilingManagerAndroid 15에 추가되어 앱이 현장의 공개 기기에서 Perfetto를 사용하여 프로파일링 데이터 수집을 요청할 수 있습니다. 그러나 이 프로파일링은 앱에서 시작해야 하므로 시작 또는 ANR과 같은 중요한 흐름은 앱에서 캡처하기 어렵거나 불가능합니다.

이를 위해 Android 16에서는 ProfilingManager에 시스템 트리거 프로파일링을 도입합니다. 앱은 콜드 스타트 reportFullyDrawn 또는 ANR과 같은 특정 트리거의 트레이스를 수신하는 데 관심을 등록할 수 있으며, 그러면 시스템이 앱을 대신하여 트레이스를 시작하고 중지합니다. 트레이스가 완료되면 결과가 앱의 데이터 디렉터리에 전송됩니다.

ApplicationStartInfo에서 구성요소 시작

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

더 나은 작업 검사

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

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

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

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

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

자동 조절 새로고침 빈도

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

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

ADPF의 Headroom API

SystemHealthManager에서는 게임 및 리소스 사용량이 많은 앱에 사용 가능한 CPU 및 GPU 리소스의 추정치를 제공하도록 설계된 getCpuHeadroomgetGpuHeadroom API를 도입합니다. 이러한 메서드는 특히 열 제한을 감지하는 다른 Android 동적 성능 프레임워크 (ADPF) API와 함께 사용할 때 앱 또는 게임이 시스템 상태를 가장 효과적으로 개선하는 방법을 측정하는 방법을 제공합니다.

지원되는 기기에서 CpuHeadroomParamsGpuHeadroomParams를 사용하면 헤드룸을 계산하는 데 사용되는 시간 창을 맞춤설정하고 평균 또는 최소 리소스 가용성 중에서 선택할 수 있습니다. 이렇게 하면 CPU 또는 GPU 리소스 사용량을 적절하게 줄여 사용자 환경과 배터리 수명을 개선할 수 있습니다.

접근성

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

접근성 API 개선

Android 16 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。

向 TtsSpan 添加了时长

Android 16 使用 TYPE_DURATION 扩展了 TtsSpan,其中包含 ARG_HOURSARG_MINUTESARG_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 getCheckedsetChecked(int) 方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isCheckedsetChecked(boolean)

补充说明

如果无障碍服务提供关于 ViewGroup 的说明,则会将来自其子视图的内容标签合并在一起。如果您为 ViewGroup 提供 contentDescription,无障碍服务会假定您还要覆盖不可聚焦的子视图的说明。如果您想为下拉菜单(例如“字体系列”)添加标签,同时保留当前的无障碍功能选择(例如“Roboto”),这可能会造成问题。Android 16 添加了 setSupplementalDescription,以便您提供用于提供 ViewGroup 相关信息的文本,而不会覆盖其子项中的信息。

必填表单字段

Android 16 向 AccessibilityNodeInfo 添加了 setFieldRequired,以便应用可以告知无障碍服务需要输入表单字段。对于填写各种类型表单的用户来说,这是一个重要的场景,即使是简单的必填条款及条件复选框,也能帮助用户始终如一地识别必填字段并在必填字段之间快速导航。

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,与当前方法(您要么完全手动控制,要么完全依赖自动曝光)相比,可提供更大的灵活性。

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

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

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

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

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

未应用色温或色调调整的原始图片。
将色温调整为 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 (High Dynamic Range) 이미지 화질을 보여주는 그림입니다.

Android 16에서는 울트라 HDR 이미지로 눈부신 이미지 품질을 제공하기 위해 계속 노력하고 있습니다. HEIC 파일 형식의 UltraHDR 이미지 지원을 추가합니다. 이러한 이미지는 ImageFormat 유형 HEIC_ULTRAHDR을 가져오고 기존 UltraHDR JPEG 형식과 유사한 삽입된 게인맵을 포함합니다. UltraHDR에 대한 AVIF 지원도 준비 중입니다.

또한 Android 16은 획득 맵 수학이 적용되어야 하는 색상 공간을 가져오고 설정하는 기능과 SDR 획득 맵이 있는 HDR 인코딩된 기본 이미지 지원을 비롯하여 ISO 21496-1 초안 표준의 추가 매개변수를 UltraHDR에 구현합니다.

그래픽

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은 Wi-Fi 6의 802.11az를 지원하는 기기의 Wi-Fi 위치에 강력한 보안 기능 지원을 추가합니다. 이를 통해 앱은 프로토콜의 더 높은 정확도, 확장성, 동적 예약을 AES-256 기반 암호화 및 MITM 공격 방지와 같은 보안 개선사항과 결합할 수 있습니다. 이를 통해 노트북이나 차량 도어 잠금 해제와 같은 근접 사용 사례에서 더 안전하게 사용할 수 있습니다. 802.11az는 Wi-Fi 6 표준과 통합되어 인프라와 기능을 활용하여 더 광범위하게 채택하고 더 쉽게 배포할 수 있습니다.

일반 측정 API

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

미디어

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

사진 선택 도구 개선사항

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

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

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

고급 전문 동영상

Android 16에서는 전문 수준의 고화질 동영상 녹화 및 후반 제작에 사용하도록 설계된 고급 전문 동영상 (APV) 코덱 지원을 도입합니다.

APV 코덱 표준에는 다음과 같은 기능이 있습니다.

  • 지각적으로 무손실 동영상 화질 (원시 동영상 화질에 가깝음)
  • 편집 워크플로를 더 효과적으로 지원하기 위한 낮은 복잡도와 높은 처리량의 프레임 내부 전용 코딩 (픽셀 도메인 예측 없음)
  • 경량 엔트로피 코딩 스킴을 통해 2K, 4K, 8K 해상도 콘텐츠의 최대 몇 Gbps에 이르는 높은 비트 전송률 범위 지원
  • 몰입형 콘텐츠를 위한 프레임 타일링 및 병렬 인코딩 및 디코딩 사용
  • 다양한 크로마 샘플링 형식 및 비트 깊이 지원
  • 심각한 시각적 품질 저하 없이 여러 디코딩 및 재인코딩 지원
  • 멀티뷰 동영상 및 깊이, 알파, 미리보기와 같은 보조 동영상 지원
  • HDR10/10+ 및 사용자 정의 메타데이터 지원

APV의 참조 구현은 OpenAPV 프로젝트를 통해 제공됩니다. Android 16에서는 10비트 인코딩과 함께 YUV 422 색상 샘플링을 제공하고 최대 2Gbps의 타겟 비트 전송률을 제공하는 APV 422-10 프로필에 대한 지원을 구현합니다.

개인정보 보호

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

헬스 커넥트 업데이트

개발자 프리뷰의 헬스 커넥트에는 중간 및 강렬한 활동에 관한 세계보건기구 가이드라인에 따라 정의된 새로운 데이터 유형인 ACTIVITY_INTENSITY가 추가되었습니다. 각 레코드에는 시작 시간, 종료 시간, 활동 강도가 보통인지 격렬한지 여부가 필요합니다.

헬스 커넥트에는 건강 기록을 지원하는 업데이트된 API도 포함되어 있습니다. 이렇게 하면 앱이 명시적인 사용자 동의를 받아 FHIR 형식으로 의료 기록을 읽고 쓸 수 있습니다. 이 API는 사전 체험판 프로그램에 있습니다. 참여하려면 사전 체험 프로그램에 가입하세요.

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

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

보안

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

Key sharing API

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

기기 폼 팩터

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

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

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

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

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

다국어 지원

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_CHANGEDBroadcastReceiver를 등록하여 지역 설정이 변경될 때 언어 구성 변경을 처리할 수 있습니다.

형식 지정자를 사용하면 로컬 환경에 맞게 조정할 수 있습니다. 예를 들어 영어 (미국)로 '0.5인치'는 휴대전화를 영어 (덴마크)로 설정했거나 측정 시스템 환경설정으로 미터법을 사용하는 영어 (미국)로 휴대전화를 사용하는 사용자에게는 '12,7mm'입니다.

이러한 설정을 찾으려면 설정 앱을 열고 시스템 > 언어 및 지역으로 이동하세요.