기능 및 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 类中,您可以使用细分来表示用户体验历程中的状态和里程碑。

To learn more, see the Progress-centric notifications documentation page.

锁屏上显示的以进度为中心的通知。
在通知栏中显示的以进度为中心的通知。

뒤로 탐색 예측 업데이트

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

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

더 풍부한 햅틱

Android has exposed control over the haptic actuator ever since its inception.

Android 11 added support for more complex haptic effects that more advanced actuators could support through VibrationEffect.Compositions of device-defined semantic primitives.

Android 16 adds haptic APIs that let apps define the amplitude and frequency curves of a haptic effect while abstracting away differences between device capabilities.

개발자 생산성 및 도구

생산성 향상을 위한 대부분의 작업은 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에서 구성요소 시작

ApplicationStartInfo was added in Android 15, allowing an app to see reasons for process start, start type, start times, throttling, and other useful diagnostic data. Android 16 adds getStartComponent() to distinguish what component type triggered the start, which can be helpful for optimizing the startup flow of your app.

작업 인트로스펙션 개선

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

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

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

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

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

자동 조절 새로고침 빈도

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.

ADPF의 여유 공간 API

SystemHealthManager 引入了 getCpuHeadroomgetGpuHeadroom API,旨在为游戏和资源密集型应用提供可用 CPU 和 GPU 资源的估算值。通过这些方法,您可以评估应用或游戏如何以最佳方式改善系统运行状况,尤其是在与用于检测热节流的其他 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를 제어할 수 있으므로 전체 수동 제어 또는 자동 노출에 전적으로 의존하는 기존 접근 방식에 비해 더 큰 유연성을 제공합니다.

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에는 카메라 애플리케이션이 모션 사진을 캡처하고 반환하도록 요청하는 표준 인텐트 작업인 ACTION_MOTION_PHOTO_CAPTUREACTION_MOTION_PHOTO_CAPTURE_SECURE가 추가되었습니다.

이미지가 쓰여질 위치를 제어하기 위해 추가 EXTRA_OUTPUT를 전달하거나 Intent.setClipData(ClipData)을 통해 Uri를 전달해야 합니다. ClipData를 설정하지 않으면 Context.startActivity(Intent)를 호출할 때 자동으로 복사됩니다.

움직이는 사진의 예시로, 정지 이미지와 모션 재생이 나란히 표시되어 있습니다.

UltraHDR 이미지 개선사항

An illustration of Standard Dynamic Range (SDR) versus High Dynamic Range (HDR) image quality.

Android 16 continues our work to deliver dazzling image quality with UltraHDR images. It adds support for UltraHDR images in the HEIC file format. These images will get ImageFormat type HEIC_ULTRAHDR and will contain an embedded gainmap similar to the existing UltraHDR JPEG format. We're working on AVIF support for UltraHDR as well, so stay tuned.

In addition, Android 16 implements additional parameters in UltraHDR from the ISO 21496-1 draft standard, including the ability to get and set the colorspace that gainmap math should be applied in, as well as support for HDR encoded base images with SDR gainmaps.

그래픽

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

호환 기기 관리자 기기 감지

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 코덱 표준에는 다음과 같은 기능이 있습니다.

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

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

개인정보처리방침

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

헬스 커넥트 업데이트

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

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

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

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

보안

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

키 공유 API

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.

기기 폼 팩터

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_CHANGED 上注册 BroadcastReceiver,以便在地区偏好设置发生更改时处理语言区域配置更改。

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

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