기능 및 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)를 도입합니다.

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

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

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

자동 조절 새로고침 빈도

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

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

ADPF의 Headroom API

SystemHealthManager 引入了 getCpuHeadroomgetGpuHeadroom API,旨在为游戏和资源密集型应用提供可用 CPU 和 GPU 资源的估算值。通过这些方法,您可以评估应用或游戏如何以最佳方式改善系统运行状况,尤其是在与用于检测热节流的其他 Android 动态性能框架 (ADPF) API 搭配使用时。

在受支持的设备上使用 CpuHeadroomParamsGpuHeadroomParams,您可以自定义用于计算余量的时间范围,并在平均资源可用性或最低资源可用性之间进行选择。这有助于您相应地减少 CPU 或 GPU 资源用量,从而提升用户体验并延长电池续航时间。

접근성

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

접근성 API 개선

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

为文字添加轮廓,以最大限度地提高文字对比度

视力较低的用户对对比度的敏感度通常较低,因此很难将对象与背景区分开来。为了帮助这些用户,Android 16 引入了轮廓文本,取代了高对比度文本,后者会在文本周围绘制较大的对比度区域,以大大提高可辨性。

Android 16 包含新的 AccessibilityManager API,可让您的应用检查注册监听器,以查看此模式是否已启用。这主要适用于 Compose 等界面工具包,以提供类似的视觉体验。如果您维护界面工具包库,或者您的应用执行绕过 android.text.Layout 类的自定义文本渲染,则可以使用此方法来了解何时启用轮廓文本。

Android 16 推出新的轮廓文本无障碍功能前后,对比度更高的文本

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

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

울트라 HDR 이미지 개선

표준 동적 범위 (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,让您可以创作阈值、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 기반 암호화 및 MITM 공격 방지와 같은 보안 개선사항과 결합할 수 있습니다. 이를 통해 노트북이나 차량 도어 잠금 해제와 같은 근접 사용 사례에서 더 안전하게 사용할 수 있습니다. 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,用于访问音频和图片配置文件以及与硬件相关的设置。这样,在线播放应用就可以查询配置文件并将其动态应用于媒体:

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

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

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