Android 16에는 개발자를 위한 훌륭한 새로운 기능과 API가 도입되었습니다. 다음 섹션에서는 관련 API를 시작하는 데 도움이 되도록 이러한 기능을 요약합니다.
새로운 API, 수정된 API, 삭제된 API에 관한 자세한 목록은 API 차이점 보고서를 참고하세요. 새로운 API에 관한 자세한 내용은 Android API 참조를 방문하세요. 새로운 API가 강조 표시되어 쉽게 확인 가능합니다.플랫폼 변경사항이 앱에 영향을 미칠 수 있는 영역도 검토해야 합니다. 자세한 내용은 다음 페이지를 참고하세요.
핵심 기능
Android에는 Android 시스템의 핵심 기능을 확장하는 새로운 API가 포함되어 있습니다.
2025년 두 가지 Android API 출시
- 이 미리보기는 2025년 2분기에 출시될 예정인 Android의 다음 주요 버전입니다. 이 버전은 이전의 모든 API 버전과 유사하며, 여기서 targetSdkVersion에 종종 연결된 계획된 동작 변경사항을 적용할 수 있습니다.
- 더 많은 기기에서 Android의 주요 버전을 더 빨리 사용할 수 있도록 생태계 전반의 기기 출시 일정에 더 잘 맞추기 위해 메이저 버전을 3분기에서 2분기로 한 분기 앞당겨 출시할 계획입니다. 2분기에 주요 버전이 출시될 예정이므로 앱이 준비되었는지 확인하기 위해 전년보다 몇 개월 더 일찍 연간 호환성 테스트를 진행해야 합니다.
- 2025년 4분기에 새로운 개발자 API도 포함된 버전을 출시할 계획입니다. 2분기 주요 출시는 2025년에 앱에 영향을 줄 수 있는 계획된 동작 변경사항이 포함된 유일한 출시입니다.
Q4 마이너 출시에서는 새로운 개발자 API 외에도 기능 업데이트, 최적화, 버그 수정이 포함됩니다. 앱에 영향을 미치는 동작 변경사항은 포함되지 않습니다.
앞으로도 분기별로 Android 버전이 계속 출시될 예정입니다. API 출시 사이의 1분기 및 3분기 업데이트는 지속적인 품질을 보장하는 데 도움이 되는 점진적 업데이트를 제공합니다. Google은 기기 파트너와 적극적으로 협력하여 최대한 많은 기기에 Q2 버전을 제공하기 위해 노력하고 있습니다.
메인 및 마이너 출시에서 새 API 사용
API 수준 검사를 사용하여 코드 블록을 보호하는 작업은 현재 VERSION_CODES와 함께 SDK_INT 상수를 사용하여 실행됩니다. 이는 주요 Android 출시에서 계속 지원됩니다.
if (SDK_INT >= VERSION_CODES.BAKLAVA) {
// Use APIs introduced in Android 16
}
새 SDK_INT_FULL 상수는 새 VERSION_CODES_FULL 열거형을 사용하여 주 버전과 부 버전 모두에 대한 API 검사에 사용할 수 있습니다.
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,让应用能够定义触感反馈效果的振幅和频率曲线,同时抽象出设备功能之间的差异。
개발자 생산성 및 도구
생산성 향상을 위한 대부분의 작업은 Android 스튜디오, Jetpack Compose, Android Jetpack 라이브러리와 같은 도구를 중심으로 이루어지지만, Google에서는 항상 플랫폼에서 비전을 실현할 수 있는 방법을 모색합니다.
라이브 배경화면 콘텐츠 처리
Android 16에서는 라이브 배경화면 프레임워크에 동적 사용자 중심 배경화면의 문제를 해결하기 위한 새로운 콘텐츠 API가 추가됩니다. 현재 사용자 제공 콘텐츠를 통합하는 라이브 배경화면에는 복잡한 서비스별 구현이 필요합니다. Android 16에서는 WallpaperDescription 및 WallpaperInstance를 도입합니다. WallpaperDescription을 사용하면 동일한 서비스에서 라이브 배경화면의 고유한 인스턴스를 식별할 수 있습니다. 예를 들어 홈 화면과 잠금 화면에 인스턴스가 있는 배경화면에는 두 위치 모두 고유한 콘텐츠가 있을 수 있습니다. 배경화면 선택 도구와 WallpaperManager는 이 메타데이터를 사용하여 사용자에게 배경화면을 더 효과적으로 표시함으로써 개발자가 다양한 맞춤형 라이브 배경화면 환경을 만드는 프로세스를 간소화할 수 있습니다.
성능 및 배터리
Android 16에서는 앱에 관한 유용한 정보를 수집하는 데 도움이 되는 API를 도입합니다.
시스템 트리거 프로파일링
ProfilingManager 在 Android 15 中添加,让应用能够在现场使用 Perfetto 请求收集性能数据。不过,由于此性能分析必须从应用启动,因此应用很难或根本无法捕获启动或 ANR 等关键流程。
为此,Android 16 向 ProfilingManager 引入了系统触发的性能分析。应用可以注册接收特定触发器(例如冷启动 reportFullyDrawn 或 ANR)轨迹的兴趣,然后系统会代表应用启动和停止轨迹。轨迹完成后,结果会传送到应用的数据目录。
ApplicationStartInfo에서 구성요소 시작
ApplicationStartInfo는 Android 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
SystemHealthManager에서는 게임 및 리소스 사용량이 많은 앱에 사용 가능한 CPU 및 GPU 리소스의 추정치를 제공하도록 설계된 getCpuHeadroom 및 getGpuHeadroom API를 도입합니다. 이러한 메서드는 특히 열 제한을 감지하는 다른 Android 동적 성능 프레임워크 (ADPF) API와 함께 사용할 때 앱 또는 게임이 시스템 상태를 가장 효과적으로 개선하는 방법을 측정하는 방법을 제공합니다.
지원되는 기기에서 CpuHeadroomParams 및 GpuHeadroomParams를 사용하면 헤드룸을 계산하는 데 사용되는 시간 창을 맞춤설정하고 평균 또는 최소 리소스 가용성 중에서 선택할 수 있습니다. 이렇게 하면 CPU 또는 GPU 리소스 사용량을 적절하게 줄여 사용자 환경과 배터리 수명을 개선할 수 있습니다.
접근성
Android 16에는 앱을 모든 사용자에게 제공하는 데 도움이 되는 새로운 접근성 API와 기능이 추가되었습니다.
접근성 API 개선
Android 16 添加了其他 API 来增强界面语义,这有助于为依赖于无障碍服务(例如 TalkBack)的用户提高一致性。
为文字添加轮廓,以最大限度地提高文字对比度
视力较低的用户对对比度的敏感度通常较低,因此很难将对象与背景区分开来。为了帮助这些用户,Android 16 引入了轮廓文本,取代了高对比度文本,后者会在文本周围绘制较大的对比度区域,以大大提高可辨性。
Android 16 包含新的 AccessibilityManager API,可让您的应用检查或注册监听器,以查看此模式是否已启用。这主要适用于 Compose 等界面工具包,以提供类似的视觉体验。如果您维护界面工具包库,或者您的应用执行绕过 android.text.Layout 类的自定义文本渲染,则可以使用此方法来了解何时启用轮廓文本。
向 TtsSpan 添加了时长
Android 16 使用 TYPE_DURATION 扩展了 TtsSpan,其中包含 ARG_HOURS、ARG_MINUTES 和 ARG_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
getChecked 和 setChecked(int) 方法现在除了“已选中”和“未选中”之外,还支持“部分选中”状态。此字段取代了已废弃的布尔值 isChecked 和 setChecked(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,与当前方法(您要么完全手动控制,要么完全依赖自动曝光)相比,可提供更大的灵活性。
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_TEMPERATURE 和 COLOR_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) ...
}
以下示例展示了应用不同色温和色调调整后的照片效果:
카메라 야간 모드 장면 감지
为了帮助应用了解何时切换到夜间模式相机会话以及何时从夜间模式相机会话切换出,Android 16 添加了 EXTENSION_NIGHT_MODE_INDICATOR。如果受支持,则可在 Camera2 内的 CaptureResult 中使用。
这是我们在Instagram 如何让用户拍出令人惊艳的低光照片博文中提到的即将推出的 API。该博文提供了有关如何实现夜间模式的实用指南,并附有一份案例研究,该案例研究将应用内夜间模式照片质量的提升与通过应用内相机分享的照片数量的增加联系起来。
모션 사진 캡처 인텐트 작업
Android 16 添加了标准 intent 操作 ACTION_MOTION_PHOTO_CAPTURE 和 ACTION_MOTION_PHOTO_CAPTURE_SECURE,用于请求相机应用拍摄动态照片并将其返回。
您必须传递额外的 EXTRA_OUTPUT 来控制将图片写入的位置,或者通过 Intent.setClipData(ClipData) 传递 Uri。如果您未设置 ClipData,系统会在调用 Context.startActivity(Intent) 时将其复制到该位置。
UltraHDR 이미지 개선
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에서는 RuntimeColorFilter 및 RuntimeXfermode를 추가하여 임곗값, 세피아, 색조 채도와 같은 복잡한 효과를 작성하고 그리기 호출에 적용할 수 있습니다. 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 的加密和防范中间人攻击)相结合。这样,在近距离使用情形(例如解锁笔记本电脑或车门)时,便可更安全地使用该功能。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 照片选择器从云端媒体提供商中进行搜索。照片选择器中的搜索功能即将推出。
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 中集成了最新版本的 Privacy Sandbox on Android,这是我们持续致力于开发可让用户放心地知道其隐私受到保护的技术的一部分。您可以访问我们的网站,详细了解 Privacy Sandbox on Android 开发者 Beta 版计划,以便顺利上手。不妨了解 SDK 运行时,它可让 SDK 在与其所服务的应用分离的专用运行时环境中运行,从而为用户数据收集和共享提供更强的保护措施。
보안
Android 16에는 앱의 보안을 강화하고 앱의 데이터를 보호하는 데 도움이 되는 기능이 포함되어 있습니다.
키 공유 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_CHANGED 上注册 BroadcastReceiver,以便在地区偏好设置发生更改时处理语言区域配置更改。
使用格式设置程序有助于提供符合当地体验的服务。例如,对于将手机设置为英语(丹麦)或将手机设置为英语(美国)并将公制作为首选测量系统的用户,“0.5 in”的英语(美国)对应于“12,7 mm”。
如需找到这些设置,请打开“设置”应用,然后依次前往系统 > 语言和地区。