The Second Beta of Android 16
| 2025년 두 개의 Android API 릴리스
이 미리보기는 2025년 2분기에 출시될 예정인 Android의 다음 주요 릴리스를 위한 것이며, 4분기에 새로운 개발자 API가 포함된 또 다른 릴리스를 제공할 계획입니다 . 2분기 주요 릴리스는 앱에 영향을 미칠 수 있는 동작 변경 사항을 포함하는 2025년의 유일한 릴리스가 될 것입니다. 4분기 부 릴리스는 기능 업데이트, 최적화 및 버그 수정을 포함할 것입니다. SDK가 아닌 분기별 릴리스와 마찬가지로 의도적으로 앱에 영향을 미치는 동작 변경 사항은 포함되지 않습니다.
2025년 SDK 릴리스 일정은 1분기와 3분기에 기능 업데이트만 있고, 2분기에는 동작 변경, API, 기능이 포함된 주요 SDK 릴리스가 있고, 4분기에는 API와 기능이 포함된 부차적인 SDK 릴리스가 있다는 것을 보여줍니다.
우리는 분기별 Android 릴리스를 계속할 것입니다. Q1 및 Q3 업데이트는 지속적인 품질을 보장하기 위해 증분 업데이트를 제공합니다. 우리는 Q2 릴리스를 가능한 한 많은 기기에 제공하기 위해 기기 파트너와 협력하는 데 더 많은 노력을 기울이고 있습니다.
Google Play의 앱에 대한 대상 API 수준 요구 사항 및 관련 날짜에는 변경 사항이 없습니다. 당사의 계획은 매년 주요 API 수준과 관련된 연간 요구 사항을 한 번씩 적용하는 것입니다.
준비 방법
이번 주요 릴리스에 대한 호환성 테스트를 수행하는 것 외에도 새로운 SDK에 따라 앱을 컴파일하고 호환성 프레임워크를 사용하여 조기 테스트를 위해 targetSdkVersion 게이트 방식의 동작 변경 사항을 활성화해야 합니다.
앱 호환성
Android 16 생산 타임라인은 출시 단계를 보여주며, 12월부터 최종 출시까지 각각 '베타 출시'와 '플랫폼 안정성'을 파란색과 녹색으로 강조 표시했습니다.
Android 16 Preview 프로그램은 2024년 11월부터 2025년 2분기에 최종 공개 릴리스될 때까지 진행됩니다. 주요 개발 이정표에서 개발 및 테스트 환경을 위한 업데이트를 제공합니다. 각 업데이트에는 SDK 도구, 시스템 이미지, 에뮬레이터, API 참조 및 API diff가 포함됩니다. 블로그와 Android 16 개발자 웹사이트 에서 Preview 프로그램에서 테스트할 준비가 되면 중요한 API를 강조 표시합니다 .
플랫폼 안정성 마일스톤은 2025년 3월을 목표로 합니다. 이 마일스톤에서 최종 SDK/NDK API와 최종 내부 API 및 앱 지향 시스템 동작을 제공합니다. 그 후부터 최종 릴리스까지 몇 달 동안 테스트를 완료할 수 있습니다. 릴리스 타임라인 세부 정보를 확인하여 자세히 알아보세요 .
Android 16 시작하기
지원되는 Pixel 기기를 등록하면 이 업데이트와 향후 Android 베타 업데이트를 무선으로 받을 수 있습니다. Pixel 기기가 없으면 Android Studio의 Android Emulator에서 64비트 시스템 이미지를 사용할 수 있습니다 . 현재 Android 16 베타 1을 사용 중이거나 이미 Android 베타 프로그램에 참여 중이면 베타 2로 무선으로 업데이트할 수 있습니다.
여러분의 피드백을 기다리고 있으니 피드백 페이지 에서 문제를 보고하고 기능 요청을 제출해 주세요 . 피드백을 일찍 받을수록 최종 릴리스 작업에 더 많은 내용을 포함할 수 있습니다.
Android 16에서 최상의 개발 경험을 위해 Android Studio(Meerkat) 의 최신 미리보기를 사용하는 것이 좋습니다 . 설정을 마치면 다음과 같은 작업을 수행해야 합니다.
새로운 SDK에 대해 컴파일하고 CI 환경에서 테스트한 후 피드백 페이지 에서 추적기에 문제를 보고하세요 .
현재 앱의 호환성을 테스트하고, 앱이 Android 16의 변경 사항에 영향을 받는지 알아보고 , Android 16을 실행하는 기기나 에뮬레이터에 앱을 설치하여 광범위하게 테스트합니다.
Android 16 릴리스 주기 내내 베타 시스템 이미지 와 SDK를 정기적으로 업데이트합니다 . 베타 빌드를 설치하면 이후의 모든 미리보기와 베타에 대한 향후 업데이트를 자동으로 무선으로 받게 됩니다.
자세한 내용은 Android 16 개발자 사이트를 방문하세요 .
| 미디어 및 카메라 업데이트
Android 16은 전문 카메라 사용자를 위한 지원을 강화하여 정확한 색온도 및 색조 조정과 함께 하이브리드 자동 노출을 허용합니다. 새로운 Intent 액션으로 모션 사진을 그 어느 때보다 쉽게 촬영할 수 있으며, HEIC 인코딩 지원 및 ISO 21496-1 초안 표준의 새로운 매개변수를 통해 UltraHDR 이미지를 지속적으로 개선하고 있습니다.
| 하이브리드 자동 노출
Android 16은 Camera2 에 새로운 하이브리드 자동 노출 모드를 추가하여 자동 노출(AE) 알고리즘이 나머지를 처리하도록 하면서 노출의 특정 측면을 수동으로 제어할 수 있습니다. ISO + AE , 노출 시간 + AE를 제어할 수 있어 전체 수동 제어가 있거나 자동 노출에만 전적으로 의존하는 현재 접근 방식에 비해 더 큰 유연성을 제공합니다.
| 정확한 색온도 및 색조 조정
Android 16은 전문적인 비디오 녹화 애플리케이션을 더 잘 지원하기 위해 미세한 색온도 및 색조 조정을 위한 카메라 지원을 추가합니다. 화이트 밸런스 설정은 현재 CONTROL_AWB_MODE를 통해 제어되며, 여기에는 Incandescent , Cloudy 및 Twilight 와 같은 사전 설정 목록으로 제한된 옵션이 포함됩니다 . COLOR_CORRECTION_MODE_CCT 는 상관된 색온도를 기반으로 화이트 밸런스를 정밀하게 조정하기 위해 COLOR_CORRECTION_COLOR_TEMPERATURE 및 COLOR_CORRECTION_COLOR_TINT를 사용할 수 있습니다 . Google Pixel 휴대전화 뒷면의 5개 사진은 다양한 색온도와 색조를 보여줍니다. 원본 사진은 왼쪽 상단에 있고, 그 뒤로 Tint -50, Tint +50, Temp 3000, Temp 7000이 있습니다.
| 모션 사진 캡처 의도 작업
Android 16에서는 카메라 애플리케이션에서 모션 사진을 촬영하여 반환하도록 요청하는 표준 Intent 작업인 ACTION_MOTION_PHOTO_CAPTURE 및 ACTION_MOTION_PHOTO_CAPTURE_SECURE 가 추가되었습니다.
다양한 친구들이 말굽던지기 게임을 하는 움직이는 이미지
이미지가 쓰여질 위치를 제어하기 위해 추가 EXTRA_OUTPUT을 전달하거나 Intent setClipData를 통한 Uri를 전달해야 합니다. ClipData를 설정하지 않으면 Context.startActivity를 호출할 때 자동으로 복사됩니다 .
| UltraHDR 이미지 향상
분할 화면 이미지는 자세한 풍경의 단일 이미지를 사용하여 표준 동적 범위(SDR)와 높은 동적 범위(HDR) 이미지 품질을 나란히 비교합니다. HDR 쪽이 더 생생하고 생동감 있습니다.
Android 16은 UltraHDR 이미지 로 눈부신 화질을 제공하기 위한 작업을 계속합니다 . HEIC 파일 형식의 UltraHDR 이미지에 대한 지원을 추가합니다. 이러한 이미지는 ImageFormat 유형 HEIC_ULTRAHDR을 받고 기존 UltraHDR JPEG 형식과 유사한 임베디드 게인맵을 포함합니다. UltraHDR에 대한 AVIF 지원도 작업 중이므로 계속 지켜봐 주시기 바랍니다.
또한 Android 16은 ISO 21496-1 초안 표준 의 UltraHDR에 대한 추가 매개변수를 구현합니다 . 여기에는 게인맵 수학이 적용되어야 하는 색공간을 가져오고 설정하는 기능과 SDR 게인맵이 있는 HDR 인코딩된 기본 이미지에 대한 지원이 포함됩니다.
| AGSL을 사용한 사용자 정의 그래픽 효과
Android 16에서는 RuntimeColorFilter 와 RuntimeXfermode 가 추가되어 Threshold, Sepia, Hue Saturation과 같은 복잡한 효과를 작성하고 이를 그리기 호출에 적용할 수 있습니다. Android 13부터 AGSL을 사용하여 Shaders를 확장하는 사용자 지정 RuntimeShaders를 만들 수 있었습니다. 새로운 API는 이를 반영하여 ColorFilters를 확장하는 AGSL 기반 RuntimeColorFilter 와 소스 및 대상 픽셀 간에 AGSL 기반 사용자 지정 합성 및 블렌딩을 구현할 수 있는 Xfermode 효과를 추가 합니다.
| 행동 변화
모든 Android 릴리스에서 우리는 플랫폼을 더 효율적이고, 개인 정보 보호에 신경 쓰고, 국제화에 친화적이며, 견고하게 만들고자 노력하며, 앱의 요구 사항과 하드웨어 지원, 시스템 성능, 사용자 개인 정보 보호 및 배터리 수명 간의 균형을 유지합니다. 이는 호환성에 영향을 미치는 동작 변경으로 이어질 수 있습니다.
| Edge to Edge 옵트아웃이 사라집니다
Android 15는 Android 15(SDK 35)를 타겟팅하는 앱에 대해 엣지 투 엣지를 적용했지만 , 앱은 R.attr#windowOptOutEdgeToEdgeEnforcement를 true 로 설정하여 옵트아웃할 수 있습니다 . 앱이 Android 16(Baklava)을 타겟팅하면 R.attr#windowOptOutEdgeToEdgeEnforcement가 더 이상 사용되지 않고 비활성화되며 앱은 엣지 투 엣지로 전환을 옵트아웃할 수 없습니다. Android 16 베타 2와 호환되도록 하려면 앱이 엣지 투 엣지를 지원하고 R.attr#windowOptOutEdgeToEdgeEnforcement 사용을 제거해야 합니다 . 엣지 투 엣지를 지원하려면 Compose 및 Views 지침을 참조하세요. 피드백 페이지 의 추적기에서 우려 사항을 알려주세요 .
| 건강 및 피트니스 권한
Android 16 이상을 타겟팅하는 앱의 경우 BODY_SENSORS 권한이 Health Connect 에서도 사용되는는 android.permissions.health 아래의 세부 권한으로 전환됩니다 . 이전에 BODY_SENSORS 또는 BODY_SENSORS_BACKGROUND 가 필요했던 모든 API는 이제 해당 android.permissions.health 권한이 필요합니다 . 이는 다음 데이터 유형, API 및 포그라운드 서비스 유형에 영향을 미칩니다.
Wear Health Services의 HEART_RATE_BPM
Android 센서 관리자의 Sensor.TYPE_HEART_RATE
Wear ProtoLayout의 heartRateAccuracy 및 heartRateBpm
BODY_SENSORS 대신해당 android.permission.health 권한이 필요한 FOREGROUND_SERVICE_TYPE_HEALTH
앱에서 이러한 API를 사용하는 경우 이제 해당 세부적인 권한을 요청해야 합니다.
심박수, SpO2, 피부 온도를 사용 중 모니터링하려면 BODY_SENSORS 대신 READ_HEART_RATE 와 같이 android.permissions.health 에서 세부적인 권한을 요청하세요 .
백그라운드 센서 액세스를 위해 BODY_SENSORS_BACKGROUND 대신 READ_HEALTH_DATA_IN_BACKGROUND를 요청하세요 .
이러한 권한은 건강, 피트니스, 웰빙 데이터의 Android 데이터 저장소인 Health Connect에서 데이터를 읽을 수 있는 액세스를 보호하는 권한과 동일합니다.
https://developer.android.com/reference/android/Manifest.permission#BODY_SENSORS
Manifest.permission | API reference | Android Developers
developer.android.com
| 버려진 빈 일자리 중단 이유
중단된 작업은 작업과 관련된 JobParameters 객체가 가비지 수집되었지만 jobFinished가 호출되어 작업 완료를 알리지 않은 경우 발생합니다. 이는 작업이 실행 중이고 애플리케이션의 인식 없이 다시 예약되고 있음을 나타냅니다.
JobParameters 객체 에 대한 강력한 참조를 유지하지 않고 JobScheduler 에 의존하는 Android 16의 애플리케이션은 이제 STOP_REASON_TIMEOUT 대신 시간 초과 시 새로운 작업 중지 이유인 STOP_REASON_TIMEOUT_ABANDONED 가 부여됩니다 .
새로운 중단 사유가 자주 발생하는 경우, 시스템은 작업 빈도를 줄이기 위한 완화 조치를 취합니다. 새로운 중단 사유를 사용하여 중단된 작업을 감지하고 줄이십시오.
참고: WorkManager를 사용하는 경우 이 변경으로 인해 영향을 받지 않을 것으로 예상됩니다. 이는 Android Jetpack을 사용하여 작업을 예약하는 데 따른 좋은 부작용 중 하나입니다.
의도 리디렉션 변경
Android 16은 앱의 targetSDK 버전과 관계없이 Intent 리디렉션 공격에 대한 기본 보안 강화를 도입합니다. removeLaunchSecurityProtection API를 사용하면 테스트에서 문제가 발견되면 이 보호를 옵트아웃할 수 있습니다.
참고: 보안 보호 기능을 해제할 때는 신중을 기해야 하며, 절대적으로 필요한 경우에만 해야 합니다. 그렇지 않으면 보안 취약성의 위험이 커질 수 있습니다.
| 우아한 글꼴 API가 더 이상 사용되지 않으며 비활성화됨
Android 15(API 레벨 35)를 타겟팅하는 앱은 기본적으로 elegantTextHeight TextView 속성을 true로 설정하여 컴팩트 글꼴을 훨씬 더 읽기 쉬운 글꼴로 대체합니다. elegantTextHeight 속성을 false로 설정하여 이를 재정의할 수 있습니다.
Android 16에서는 elegantTextHeight 속성을 더 이상 사용하지 않으며 앱이 Android 16을 대상으로 하면 이 속성이 무시됩니다. 이러한 API에서 제어하는 "UI 글꼴"은 중단되므로 아랍어, 라오어, 미얀마어, 타밀어, 구자라트어, 칸나다어, 말라얄람어, 오디아어, 텔루구어 또는 태국어로 일관되고 미래에도 사용 가능한 텍스트 렌더링을 보장하기 위해 모든 레이아웃을 조정해야 합니다.
Android 14(API 레벨 34) 이하를 타겟으로 하는 앱에 대한 기본 elegantTextHeight 동작,
| 16KB 페이지 크기 호환 모드
Android 15는 플랫폼의 성능을 최적화하기 위해 16KB 메모리 페이지에 대한 지원을 도입했습니다 . Android 16은 호환성 모드를 추가하여 4K 메모리 페이지용으로 빌드된 일부 앱이 16KB 메모리 페이지로 구성된 기기에서 실행될 수 있도록 합니다.
Android에서 앱에 4KB로 정렬된 메모리 페이지가 있음을 감지하면 자동으로 호환 모드를 사용하고 사용자에게 알림 대화 상자를 표시합니다. AndroidManifest.xml 에서 android:pageSizeCompat 속성을 설정하여 이전 버전과의 호환 모드를 활성화하면 앱이 시작될 때 대화 상자가 표시되지 않습니다. 최상의 성능, 안정성, 신뢰성을 위해 앱은 여전히 16KB로 정렬되어야 합니다. 자세한 내용은 16KB 메모리 페이지를 지원하도록 앱을 업데이트하는 방법 에 대한 최근 블로그 게시물을 읽어보세요 .
| 측정 시스템 사용자 정의
이제 사용자는 설정 내의 지역적 환경 설정에서 측정 시스템을 사용자 정의할 수 있습니다. 사용자 환경 설정은 로케일 코드의 일부로 포함되므로 ACTION_LOCALE_CHANGED 에 BroadcastReceiver를 등록하여 지역적 환경 설정이 변경될 때 로케일 구성 변경을 처리할 수 있습니다.
포매터를 사용하면 로컬 경험과 일치시키는 데 도움이 될 수 있습니다. 예를 들어, 영어(미국)의 "0.5인치"는 휴대전화를 영어(덴마크)로 설정하거나 미터법을 측정 시스템 기본 설정으로 영어(미국)로 휴대전화를 사용하는 사용자의 경우 "12.7mm"입니다.
Android 16 베타 2에서 이러한 설정을 찾으려면 설정 앱을 열고 시스템 > 언어 및 지역으로 이동하세요.
| 라이브 배경화면에 대한 콘텐츠 처리
Android 16에서 라이브 배경화면 프레임워크는 동적이고 사용자 중심의 배경화면의 과제를 해결하기 위해 새로운 콘텐츠 API를 얻습니다.현재 사용자가 제공한 콘텐츠를 통합한 라이브 배경화면은 복잡하고 서비스별 구현이 필요합니다.Android 16에서는 WallpaperDescription 과 WallpaperInstance가 도입되었습니다 .WallpaperDescription 을 사용하면 동일한 서비스에서 라이브 배경화면의 고유한 인스턴스를 식별할 수 있습니다.예를 들어 홈 화면과 잠금 화면 모두에 인스턴스가 있는 배경화면은 두 곳 모두에 고유한 콘텐츠가 있을 수 있습니다.배경 화면 선택기와 WallpaperManager는 이 메타데이터를 사용하여 사용자에게 배경화면을 더 잘 표시하여 다양하고 개인화된 라이브 배경화면 환경을 만드는 프로세스를 간소화합니다.
| ADPF의 헤드룸 API
SystemHealthManager 는 게임과 리소스를 많이 사용하는 앱에 사용 가능한 CPU 및 GPU 리소스 추정치를 제공하도록 설계된 getCpuHeadroom 및 getGpuHeadroom API를 소개합니다 . 이러한 방법은 앱이나 게임이 시스템 상태를 가장 잘 개선할 수 있는 방법을 측정하는 방법을 제공하며, 특히 열 조절을 감지하는 다른 Android Dynamic Performance Framework (ADPF) API 와 함께 사용할 때 유용합니다. 지원되는 기기에서 CpuHeadroomParams 및 GpuHeadroomParams를 사용하면 헤드룸을 계산하는 데 사용되는 시간 창을 사용자 지정하고 평균 또는 최소 리소스 가용성 중에서 선택할 수 있습니다. 이를 통해 CPU 또는 GPU 리소스 사용량을 적절히 줄여 더 나은 사용자 경험과 향상된 배터리 수명을 얻을 수 있습니다.
| 키 공유 API
Android 16은 다른 앱과 Android Keystore 키 에 대한 액세스 공유를 지원하는 API를 추가합니다 . 새로운 KeyStoreManager 클래스는 앱 uid 로 키에 대한 액세스 권한을 부여 하고 취소하는 것을 지원하며 , 앱이 공유 키에 액세스하는 API를 포함합니다.
| TV용 표준화된 화질 및 오디오 품질 프레임워크
Android 16의 새로운 MediaQuality 패키지는 오디오 및 사진 프로필과 하드웨어 관련 설정에 액세스하기 위한 표준화된 API 세트를 노출합니다. 이를 통해 스트리밍 앱은 프로필을 쿼리하고 이를 동적으로 미디어에 적용할 수 있습니다.
더 넓은 다이내믹 레인지로 마스터한 영화는 그림자의 미묘한 디테일을 표현하고 주변광에 적응하기 위해 더 높은 색상 정확도가 필요하므로 밝기보다 색상 정확도를 선호하는 프로필이 적합할 수 있습니다.
라이브 스포츠 경기는 종종 좁은 다이나믹 레인지로 마스터링되지만, 종종 낮에 시청되기 때문에 색상 정확도보다 밝기를 우선시하는 프로필이 더 나은 결과를 제공할 수 있습니다.
완전한 상호 작용이 가능한 콘텐츠는 지연 시간을 줄이기 위해 최소한의 처리만으로 제공되어야 하며, 더 높은 프레임 속도가 필요합니다. 이것이 많은 TV에 게임 프로필이 탑재된 이유입니다.
API를 사용하면 앱이 프로필 간에 전환할 수 있으며 사용자는 지원되는 TV를 자신의 콘텐츠에 가장 적합하게 조정하여 이점을 누릴 수 있습니다.
| 접근성
Android 16에서는 TalkBack 과 같은 접근성 서비스를 사용하는 사용자의 일관성을 개선하는 데 도움이 되는 UI 의미론을 강화하는 추가 API가 추가되었습니다 .
| 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 위젯에 대한 RangeInfo를 노출할 수 있으며 , TalkBack 과 같은 서비스에서 진행률 표시기에 대한 피드백을 보다 일관되게 제공할 수 있습니다.
| 3개 주 체크박스
Android 16의 새로운 AccessibilityNodeInfo getChecked 및 setChecked(int) 메서드는 이제 "checked" 및 "unchecked" 외에도 "partially checked" 상태를 지원합니다. 이는 더 이상 사용되지 않는 boolean isChecked 및 setChecked(boolean)을 대체합니다 .
The Second Beta of Android 16
Android 16 Beta 2 is now available, with new features for professional camera experiences, graphical effects, performance improvements, and more.
android-developers.googleblog.com
'App Market > GooglePlay' 카테고리의 다른 글
Google Play 개발자 프로그램 정책 업데이트 (0) | 2025.03.11 |
---|---|
앱 정책 업데이트 - 건강 관련 콘텐츠 및 서비스 (4) | 2024.11.07 |
Google 개발자 신원 정보 확인 - 하루만에 승인 완료 (4) | 2024.10.02 |
Google Play Console iOS 앱 출시 (7) | 2024.10.01 |
개발자 센터 D-U-N-S 번호 설정하기 (0) | 2023.11.15 |