기능 및 API

Android 16에는 개발자를 위한 훌륭한 새로운 기능과 API가 도입되었습니다. 다음 섹션에서는 관련 API를 시작하는 데 도움이 되도록 이러한 기능을 요약합니다.

새로운 API, 수정된 API, 삭제된 API에 관한 자세한 목록은 API 차이점 보고서를 참고하세요. 새로운 API에 관한 자세한 내용은 Android API 참조를 방문하세요. 새로운 API가 강조 표시되어 쉽게 확인 가능합니다.

플랫폼 변경사항이 앱에 영향을 미칠 수 있는 영역도 검토해야 합니다. 자세한 내용은 다음 페이지를 참고하세요.

핵심 기능

Android에는 Android 시스템의 핵심 기능을 확장하는 새로운 API가 포함되어 있습니다.

2025년 두 가지 Android API 출시

  • This preview is for the next major release of Android with a planned launch in Q2 of 2025. This release is similar to all of our API releases in the past, where we can have planned behavior changes that are often tied to a targetSdkVersion.
  • We're planning the major release a quarter earlier (Q2 rather than Q3 in prior years) to better align with the schedule of device launches across our ecosystem, so more devices can get the major release of Android sooner. With the major release coming in Q2, you'll need to do your annual compatibility testing a few months earlier than in previous years to make sure your apps are ready.
  • We plan to have another release in Q4 of 2025 which also will include new developer APIs. The Q2 major release will be the only release in 2025 to include planned behavior changes that could affect apps.

In addition to new developer APIs, the Q4 minor release will pick up feature updates, optimizations, and bug fixes; it will not include any app-impacting behavior changes.

Timeline view of Android releases in 2025, noting that the 25Q2
       release is a major release and the 25Q4 release is a minor release.

We'll continue to have quarterly Android releases. The Q1 and Q3 updates in-between the API releases will provide incremental updates to help ensure continuous quality. We're actively working with our device partners to bring the Q2 release to as many devices as possible.

Using new APIs with major and minor releases

Guarding a code block with a check for API level is done today using the SDK_INT constant with VERSION_CODES. This will continue to be supported for major Android releases.

if (SDK_INT >= VERSION_CODES.BAKLAVA) {
  // Use APIs introduced in Android 16
}

The new SDK_INT_FULL constant can be used for API checks against both major and minor versions with the new VERSION_CODES_FULL enumeration.

if (SDK_INT_FULL >= VERSION_CODES_FULL.[MAJOR or MINOR RELEASE]) {
  // Use APIs introduced in a major or minor release
}

You can also use the Build.getMinorSdkVersion() method to get just the minor SDK version.

val minorSdkVersion = Build.getMinorSdkVersion(VERSION_CODES_FULL.BAKLAVA)

These APIs have not yet been finalized and are subject to change, so please send us feedback if you have any concerns.

사용자 환경 및 시스템 UI

Android 16에서는 앱 개발자와 사용자가 필요에 맞게 기기를 구성할 수 있는 더 많은 제어 기능과 유연성을 제공합니다.

진행 상황 중심 알림

Android 16 introduces progress-centric notifications to help users seamlessly track user-initiated, start-to-end journeys.

Notification.ProgressStyle is a new notification style that lets you create progress-centric notifications. Key use cases include rideshare, delivery, and navigation. Within the Notification.ProgressStyle class, you can denote states and milestones in a user journey using points and segments.

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

잠금 화면에 표시되는 진행률 중심의 알림입니다.
알림 창에 표시되는 진행률 중심 알림

뒤로 탐색 예측 업데이트

Android 16 adds new APIs to help you enable predictive back system animations in gesture navigation such as the back-to-home animation. Registering the onBackInvokedCallback with the new PRIORITY_SYSTEM_NAVIGATION_OBSERVER allows your app to receive the regular onBackInvoked call whenever the system handles a back navigation without impacting the normal back navigation flow.

Android 16 additionally adds the finishAndRemoveTaskCallback() and moveTaskToBackCallback. By registering these callbacks with the OnBackInvokedDispatcher, the system can trigger specific behaviors and play corresponding ahead-of-time animations when the back gesture is invoked.

더 풍부한 햅틱

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

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

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

개발자 생산성 및 도구

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

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

In Android 16, the live wallpaper framework is gaining a new content API to address the challenges of dynamic, user-driven wallpapers. Currently, live wallpapers incorporating user-provided content require complex, service-specific implementations. Android 16 introduces WallpaperDescription and WallpaperInstance. WallpaperDescription lets you identify distinct instances of a live wallpaper from the same service. For example, a wallpaper that has instances on both the home screen and on the lock screen may have unique content in both places. The wallpaper picker and WallpaperManager use this metadata to better present wallpapers to users, streamlining the process for you to create diverse and personalized live wallpaper experiences.

성능 및 배터리

Android 16에서는 앱에 관한 유용한 정보를 수집하는 데 도움이 되는 API를 도입합니다.

시스템 트리거 프로파일링

ProfilingManager was added in Android 15, giving apps the ability to request profiling data collection using Perfetto on public devices in the field. However, since this profiling must be started from the app, critical flows such as startups or ANRs would be difficult or impossible for apps to capture.

To help with this, Android 16 introduces system-triggered profiling to ProfilingManager. Apps can register interest in receiving traces for certain triggers such as cold start reportFullyDrawn or ANRs, and then the system starts and stops a trace on the app's behalf. After the trace completes, the results are delivered to the app's data directory.

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의 여유 공간 API

The SystemHealthManager introduces the getCpuHeadroom and getGpuHeadroom APIs, designed to provide games and resource-intensive apps with estimates of available CPU and GPU resources. These methods offer a way for you to gauge how your app or game can best improve system health, particularly when used in conjunction with other Android Dynamic Performance Framework (ADPF) APIs that detect thermal throttling.

By using CpuHeadroomParams and GpuHeadroomParams on supported devices, you can customize the time window used to compute the headroom and select between average or minimum resource availability. This can help you reduce your CPU or GPU resource usage accordingly, leading to better user experiences and improved battery life.

접근성

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 adds the capability for users of LE Audio hearing aids to switch between the built-in microphones on the hearing aids and the microphone on their phone for voice calls. This can be helpful in noisy environments or other situations where the hearing aid's microphones might not perform well.

LEA 보청기의 주변 볼륨 제어

Android 16 adds the capability for users of LE Audio hearing aids to adjust the volume of ambient sound that is picked up by the hearing aid's microphones. This can be helpful in situations where background noise is too loud or too quiet.

카메라

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 adds camera support for fine color temperature and tint adjustments to better support professional video recording applications. In previous Android versions, you could control white balance settings through CONTROL_AWB_MODE, which contains options limited to a preset list, such as Incandescent, Cloudy, and Twilight. The COLOR_CORRECTION_MODE_CCT enables the use of COLOR_CORRECTION_COLOR_TEMPERATURE and COLOR_CORRECTION_COLOR_TINT for precise adjustments of white balance based on the correlated color temperature.

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

The following examples show how a photo would look after applying different color temperature and tint adjustments:

The original image with no color temperature or tint adjustments applied.
The image with color temperature adjusted to 3000.
The image with color temperature adjusted to 7000.


The image with tint levels lowered by 50.
The image with tint levels raised by 50.

카메라 야간 모드 장면 감지

To help your app know when to switch to and from a night mode camera session, Android 16 adds EXTENSION_NIGHT_MODE_INDICATOR. If supported, it's available in the CaptureResult within Camera2.

This is the API we briefly mentioned as coming soon in the How Instagram enabled users to take stunning low light photos blog post. That post is a practical guide on how to implement night mode together with a case study that links higher-quality in-app night mode photos with an increase in the number of photos shared from the in-app camera.

모션 사진 캡처 인텐트 작업

Android 16 adds standard Intent actions — ACTION_MOTION_PHOTO_CAPTURE, and ACTION_MOTION_PHOTO_CAPTURE_SECURE — which request that the camera application capture a motion photo and return it.

You must either pass an extra EXTRA_OUTPUT to control where the image will be written, or a Uri through Intent.setClipData(ClipData). If you don't set a ClipData, it will be copied there for you when calling Context.startActivity(Intent).

An example of a motion photo, showing the still image followed by the motion playback.

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

호환 기기 관리자 기기 감지

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 라이브러리를 사용하는 것이 좋습니다.
  • 포토 선택 도구의 Cloud Search: Android 포토 선택 도구의 클라우드 미디어 제공업체에서 검색을 사용 설정하는 새로운 API입니다. 사진 선택 도구의 검색 기능이 곧 제공될 예정입니다.

Advanced Professional Video

Android 16 introduces support for the Advanced Professional Video (APV) codec which is designed to be used for professional level high quality video recording and post production.

The APV codec standard has the following features:

  • Perceptually lossless video quality (close to raw video quality)
  • Low complexity and high throughput intra-frame-only coding (without pixel domain prediction) to better support editing workflows
  • Support for high bit-rate range up to a few Gbps for 2K, 4K and 8K resolution content, enabled by a lightweight entropy coding scheme
  • Frame tiling for immersive content and for enabling parallel encoding and decoding
  • Support for various chroma sampling formats and bit-depths
  • Support for multiple decoding and re-encoding without severe visual quality degradation
  • Support multi-view video and auxiliary video like depth, alpha, and preview
  • Support for HDR10/10+ and user-defined metadata

A reference implementation of APV is provided through the OpenAPV project. Android 16 will implement support for the APV 422-10 Profile that provides YUV 422 color sampling along with 10-bit encoding and for target bitrates of up to 2Gbps.

개인정보처리방침

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

헬스 커넥트 업데이트

Health Connect adds ACTIVITY_INTENSITY, a data type defined according to World Health Organization guidelines around moderate and vigorous activity. Each record requires the start time, the end time, and whether the activity intensity is moderate or vigorous.

Health Connect also contains updated APIs supporting medical records. This allows apps to read and write medical records in FHIR format with explicit user consent.

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

Android 16 incorporates the latest version of the Privacy Sandbox on Android, part of our ongoing work to develop technologies where users know their privacy is protected. Our website has more about the Privacy Sandbox on Android developer beta program to help you get started. Check out the SDK Runtime which allows SDKs to run in a dedicated runtime environment separate from the app they are serving, providing stronger safeguards around user data collection and sharing.

보안

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

키 공유 API

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

기기 폼 팩터

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

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

The new MediaQuality package in Android 16 exposes a set of standardized APIs for access to audio and picture profiles and hardware-related settings. This allows streaming apps to query profiles and apply them to media dynamically:

  • Movies mastered with a wider dynamic range require greater color accuracy to see subtle details in shadows and adjust to ambient light, so a profile that prefers color accuracy over brightness may be appropriate.
  • Live sporting events are often mastered with a narrow dynamic range, but are often watched in daylight, so a profile that preferences brightness over color accuracy can give better results.
  • Fully interactive content wants minimal processing to reduce latency, and wants higher frame rates, which is why many TV's ship with a game profile.

The API allows apps to switch between profiles and users to enjoy tuning supported TVs to best suit their content.

다국어 지원

Android 16에서는 기기가 여러 언어로 사용될 때 사용자 환경을 보완하는 기능이 추가되었습니다.

세로 텍스트

Android 16 adds low-level support for rendering and measuring text vertically to provide foundational vertical writing support for library developers. This is particularly useful for languages like Japanese that commonly use vertical writing systems. A new flag, VERTICAL_TEXT_FLAG, has been added to the Paint class. When this flag is set using Paint.setFlags, Paint's text measurement APIs will report vertical advances instead of horizontal advances, and Canvas will draw text vertically.

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
            )
        }
    }
) {}

측정 시스템 맞춤설정

Users can now customize their measurement system in regional preferences within Settings. The user preference is included as part of the locale code, so you can register a BroadcastReceiver on ACTION_LOCALE_CHANGED to handle locale configuration changes when regional preferences change.

Using formatters can help match the local experience. For example, "0.5 in" in English (United States), is "12,7 mm" for a user who has set their phone to English (Denmark) or who uses their phone in English (United States) with the metric system as the measurement system preference.

To find these settings, open the Settings app and navigate to System > Languages & region.