기능 및 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_OBSERVER 注册 onBackInvokedCallback,您的应用可以在系统处理返回导航时接收常规的 onBackInvoked 调用,而不会影响正常的返回导航流程。

Android 16 还添加了 finishAndRemoveTaskCallback()moveTaskToBackCallback。通过向 OnBackInvokedDispatcher 注册这些回调,系统可以在调用返回手势时触发特定行为并播放相应的提前动画。

더 풍부한 햅틱

自诞生之日起,Android 就提供了对触感反馈致动器的控制。

Android 11 添加了对更复杂的触感反馈效果的支持,更高级的致动器可以通过设备定义的语义基元 VibrationEffect.Compositions 支持这些效果。

Android 16 添加了触感反馈 API,让应用能够定义触感反馈效果的振幅和频率曲线,同时抽象出设备功能之间的差异。

개발자 생산성 및 도구

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

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

Android 16에서는 라이브 배경화면 프레임워크에 동적 사용자 중심 배경화면의 문제를 해결하기 위한 새로운 콘텐츠 API가 추가됩니다. 현재 사용자 제공 콘텐츠를 통합하는 라이브 배경화면에는 복잡한 서비스별 구현이 필요합니다. Android 16에서는 WallpaperDescriptionWallpaperInstance를 도입합니다. WallpaperDescription을 사용하면 동일한 서비스에서 라이브 배경화면의 고유한 인스턴스를 식별할 수 있습니다. 예를 들어 홈 화면과 잠금 화면에 인스턴스가 있는 배경화면에는 두 위치 모두 고유한 콘텐츠가 있을 수 있습니다. 배경화면 선택 도구와 WallpaperManager는 이 메타데이터를 사용하여 사용자에게 배경화면을 더 효과적으로 표시함으로써 개발자가 다양한 맞춤형 라이브 배경화면 환경을 만드는 프로세스를 간소화할 수 있습니다.

성능 및 배터리

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),该 API 会返回作业处于待处理状态的多种原因,包括开发者设置的显式约束条件和系统设置的隐式约束条件。

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

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

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

자동 조절 새로고침 빈도

Android 15에서 도입된 적응형 새로고침 빈도 (ARR)를 사용하면 지원되는 하드웨어의 디스플레이 새로고침 빈도가 개별 VSync 단계를 사용하여 콘텐츠 프레임 속도에 맞게 조정될 수 있습니다. 이렇게 하면 전력 소비량이 줄어들고 버벅거림을 유발할 수 있는 모드 전환이 필요하지 않게 됩니다.

Android 16에서는 hasArrSupport()getSuggestedFrameRate(int)을 도입하고 getSupportedRefreshRates()를 복원하여 앱이 ARR을 더 쉽게 활용할 수 있도록 합니다. RecyclerView 1.4플링 또는 원활한 스크롤에서 정착할 때 내부적으로 ARR을 지원하며, 더 많은 Jetpack 라이브러리에 ARR 지원을 추가하기 위한 작업을 계속하고 있습니다. 이 프레임 속도 도움말에서는 앱에서 ARR을 직접 사용할 수 있도록 프레임 속도를 설정하는 데 사용할 수 있는 여러 API를 설명합니다.

ADPF의 Headroom API

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

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

접근성

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를 제어할 수 있으므로 전체 수동 제어 또는 자동 노출에 전적으로 의존하는 기존 접근 방식에 비해 더 큰 유연성을 제공합니다.

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) 时将其复制到该位置。

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

울트라 HDR 이미지 개선

标准动态范围 (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,让您可以创作阈值、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
}

연결

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

향상된 보안으로 범위 설정

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

일반 측정 API

Android 16 包含新的 RangingManager,它提供了在受支持的硬件上确定本地设备与远程设备之间的距离和角度的方法。RangingManager 支持使用各种测距技术,例如 BLE 信道声音探测、基于 BLE RSSI 的测距、超宽带和 Wi-Fi 往返时间。

호환 기기 관리자 기기 존재

Android 16 中引入了用于绑定配套应用服务的新 API。当 BLE 在范围内且蓝牙处于连接状态时,系统会绑定服务;当 BLE 不在范围内或蓝牙处于断开连接状态时,系统会解除绑定服务。应用将根据各种 DevicePresenceEvent 收到新的 'onDevicePresenceEvent()' 回调。如需了解详情,请参阅 'startObservingDevicePresence(ObservingDevicePresenceRequest)'

미디어

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

사진 선택 도구 개선사항

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

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

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

고급 전문 동영상

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에는 앱 개발자가 사용자 개인 정보를 보호하는 데 도움이 되는 다양한 기능이 포함되어 있습니다.

헬스 커넥트 업데이트

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

헬스 커넥트에는 의료 기록을 지원하는 업데이트된 API도 포함되어 있습니다. 이를 통해 앱은 명시적인 사용자 동의를 얻어 FHIR 형식으로 의료 기록을 읽고 쓸 수 있습니다.

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 모음을 노출합니다. 이를 통해 스트리밍 앱은 프로필을 쿼리하고 미디어에 동적으로 적용할 수 있습니다.

  • 더 넓은 다이나믹 레인지로 마스터링된 영화는 어두운 부분의 미묘한 디테일을 확인하고 주변광에 맞게 조정하려면 더 높은 색상 정확도가 필요하므로 밝기보다 색상 정확도를 선호하는 프로필이 적합할 수 있습니다.
  • 라이브 스포츠 이벤트는 종종 협소한 다이내믹 레인지로 마스터링되지만, 햇빛이 비치는 낮에 시청되는 경우가 많으므로 색상 정확성보다 밝기를 선호하는 프로필을 사용하면 더 나은 결과를 얻을 수 있습니다.
  • 완전히 양방향인 콘텐츠는 지연 시간을 줄이기 위해 최소한의 처리가 필요하고 프레임 속도가 더 높아야 하므로 많은 TV에 게임 프로필이 제공됩니다.

이 API를 사용하면 앱이 프로필 간에 전환하고 사용자는 지원되는 TV를 콘텐츠에 가장 적합하게 조정할 수 있습니다.

다국어 지원

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'입니다.

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