기능 및 API

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

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

핵심 기능

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

2025년 Android API 두 가지 출시

  • 이 미리보기는 2025년 2분기에 출시될 예정인 Android의 다음 주요 버전입니다. 이 버전은 이전의 모든 API 버전과 유사하며, 여기서 targetSdkVersion에 종종 연결된 계획된 동작 변경사항을 적용할 수 있습니다.
  • 더 많은 기기에서 Android의 주요 버전을 더 빨리 사용할 수 있도록 생태계 전반의 기기 출시 일정에 더 잘 맞추기 위해 메이저 버전을 3분기에서 2분기로 한 분기 앞당겨 출시할 계획입니다. 2분기에 주요 버전이 출시될 예정이므로 앱이 준비되었는지 확인하기 위해 전년보다 몇 개월 더 일찍 연간 호환성 테스트를 진행해야 합니다.
  • 2025년 4분기에 새로운 개발자 API도 포함된 버전을 출시할 계획입니다. 2분기 주요 출시는 2025년에 앱에 영향을 줄 수 있는 계획된 동작 변경사항이 포함된 유일한 출시입니다.

Q4 마이너 출시에서는 새로운 개발자 API 외에도 기능 업데이트, 최적화, 버그 수정이 포함됩니다. 앱에 영향을 미치는 동작 변경사항은 포함되지 않습니다.

2025년 Android 출시의 타임라인 보기. 25Q2 출시는 주요 출시이고 25Q4 출시는 부 출시입니다.

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

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

더 풍부한 햅틱

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

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

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

성능 및 배터리

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를 설명합니다.

연결

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

향상된 보안으로 범위 설정

Android 16은 Wi-Fi 6의 802.11az를 지원하는 기기의 Wi-Fi 위치에 강력한 보안 기능 지원을 추가합니다. 이를 통해 앱은 프로토콜의 더 높은 정확도, 확장성, 동적 예약을 AES-256 기반 암호화 및 MITM 공격 방지와 같은 보안 개선사항과 결합할 수 있습니다. 이를 통해 노트북이나 차량 도어 잠금 해제와 같은 근접 사용 사례에서 더 안전하게 사용할 수 있습니다. 802.11az는 Wi-Fi 6 표준과 통합되어 인프라와 기능을 활용하여 더 광범위하게 채택하고 더 쉽게 배포할 수 있습니다.

미디어

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

사진 선택 도구 개선사항

사진 선택 도구는 사용자가 전체 미디어 라이브러리가 아닌 로컬 저장소와 클라우드 저장소의 선택한 이미지 및 동영상에 대한 액세스 권한을 앱에 부여할 수 있는 안전한 내장 방법을 제공합니다. Google 시스템 업데이트Google Play 서비스를 통해 모듈식 시스템 구성요소를 조합하여 사용하면 Android 4.4 (API 수준 19)까지 지원됩니다. 통합하려면 관련 Android Jetpack 라이브러리와 함께 코드 몇 줄만 있으면 됩니다.

Android 16에는 사진 선택 도구가 다음과 같이 개선되었습니다.

  • 삽입된 사진 선택 도구: 앱이 사진 선택 도구를 뷰 계층 구조에 삽입할 수 있는 새로운 API입니다. 이렇게 하면 앱이 과도하게 광범위한 권한이 필요하지 않고도 사용자가 미디어를 선택할 수 있는 프로세스 격리를 활용하면서 앱의 더 통합된 부분처럼 느껴질 수 있습니다. 플랫폼 버전 간에 호환성을 극대화하고 통합을 간소화하려면 삽입된 사진 선택 도구를 통합하려는 경우 향후 Android Jetpack 라이브러리를 사용하는 것이 좋습니다.
  • 포토 선택 도구의 Cloud Search: Android 포토 선택 도구의 클라우드 미디어 제공업체에서 검색을 사용 설정하는 새로운 API입니다. 사진 선택 도구의 검색 기능이 곧 제공될 예정입니다.

개인정보처리방침

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

헬스 커넥트 업데이트

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

헬스 커넥트에는 건강 기록을 지원하는 업데이트된 API도 포함되어 있습니다. 이렇게 하면 앱이 명시적인 사용자 동의를 받아 FHIR 형식으로 의료 기록을 읽고 쓸 수 있습니다. 이 API는 사전 체험판 프로그램에 있습니다. 참여하려면 사전 체험 프로그램에 가입하세요.

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

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