Google은 개인 정보 보호, 보안, 세련된 성능을 우선시하는 플랫폼을 구축하기 위한 노력을 계속하면서 오늘 Android 17의 첫 번째 베타를 출시합니다. 이 빌드는 더 적응력이 뛰어난 Android 앱을 위한 Google의 노력을 계속하고, 카메라 및 미디어 기능의 상당한 개선사항, 연결 최적화를 위한 새로운 도구, 호환 기기의 확장된 프로필을 도입합니다. 이번 출시에서는 기존 개발자 프리뷰 모델에서 Android Canary 프로그램으로 개발자 커뮤니티에 새로운 출시를 제공하는 방식의 근본적인 변화도 강조합니다. 기존 개발자 프리뷰 모델에서 Android Canary 프로그램으로
개발자 프리뷰를 넘어
Android는 기존 '개발자 프리뷰'를 연속 Canary 채널 로 대체했습니다. 이 새로운 '올웨이즈온' 모델은 세 가지 주요 이점을 제공합니다.
- 더 빠른 액세스: 기능 및 API는 분기별 출시를 기다리지 않고 내부 테스트를 통과하는 즉시 Canary에 제공됩니다.
- 더 나은 안정성: Canary의 초기 '실전 테스트'는 최종 버전에 더 가까운 새로운 API와 동작 변경사항으로 더 세련된 베타 환경을 제공합니다.
- 더 쉬운 테스트: Canary는 OTA 업데이트를 지원하며 (더 이상 수동 플래시가 필요 없음) 별도의 업데이트 채널로 CI 워크플로와 더 쉽게 통합되고 향후 잠재적 변경사항에 관한 즉각적인 의견을 제공할 수 있는 가장 빠른 기간을 제공합니다.
Android 17 일정
Google은 이번 베타에서 3월을 목표로 하는 플랫폼 안정성 마일스톤으로 빠르게 이동할 예정입니다. 이 마일스톤에서는 최종 SDK/NDK API와 거의 최종 앱 지향 동작을 제공합니다. 그때부터 최종 출시까지 테스트를 완료하는 데 몇 개월이 걸립니다.
1년간의 출시
Google은 Android 17이 분기별 출시를 통해 계속 업데이트되도록 계획하고 있습니다. 2분기에 출시될 예정인 버전은 계획된 앱 브레이킹 동작 변경사항을 도입하는 유일한 버전입니다. Google은 추가 API와 기능이 포함된 소규모 SDK를 4분기에 출시할 계획입니다.
방향 및 크기 조절 제한사항
Android 17 베타 출시와 함께 Google은 적응형 로드맵의 다음 단계로 이동합니다. Android 17 (API 수준 37)은대형 화면 기기 (sw > 600dp)에서 방향 및 크기 조절 제한사항에 관한 개발자 선택 해제를 삭제합니다.
앱이 SDK 37을 타겟팅하는 경우 앱은 적응할 준비가 되어 있어야 합니다. 사용자는 태블릿에서 멀티태스킹을 하거나, 기기를 펼치거나, 데스크톱 창 환경을 사용하는 등 어디에서나 앱이 작동하기를 기대하며, UI가 공간을 채우고 기기 자세를 존중하기를 기대합니다.
SDK 37의 주요 변경사항
Android 17을 타겟팅하는 앱은 Android 16에 도입된 매니페스트 속성 및 런타임 API의 단계적 폐지와 호환되는지 확인해야 합니다. 대형 화면 (작은 크기 ≥ 600dp)에서 실행할 때 다음 속성과 API는 무시됩니다.
| 매니페스트 속성/API | 무시되는 값 |
| screenOrientation | portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape |
| setRequestedOrientation() | portrait, reversePortrait, sensorPortrait, userPortrait, landscape, reverseLandscape, sensorLandscape, userLandscape |
| resizeableActivity | all |
| minAspectRatio | all |
| maxAspectRatio | all |
예외 및 사용자 제어
이러한 변경사항은 대형 화면에만 적용되며 기존 슬레이트 폼 팩터 휴대전화를 포함하여 sw600dp보다 작은 화면에는 적용되지 않습니다. 또한 게임으로 분류된 앱 (android:appCategory 플래그를 기반으로 함)은 이러한 제한사항에서 제외됩니다.
사용자는 계속 제어할 수 있다는 점도 중요합니다. 시스템의 가로세로 비율 설정을 통해 앱의 기본 동작을 사용 설정 또는 사용 중지하도록 명시적으로 선택할 수 있습니다.
구성 변경사항 업데이트
앱 호환성을 개선하고 동영상 재생 중단, 입력 삭제, 기타 유형의 방해 상태 손실을 최소화하기 위해 Google은 활동 재구성을 위한 기본 동작을 업데이트하고 있습니다. Android 17부터 시스템은 일반적으로 UI 재구성이 필요하지 않은 특정 구성 변경사항(예: CONFIG_KEYBOARD, CONFIG_KEYBOARD_HIDDEN, CONFIG_NAVIGATION, CONFIG_UI_MODE(UI_MODE_TYPE_DESK만 변경된 경우), CONFIG_TOUCHSCREEN, CONFIG_COLOR_MODE)에 대해 활동을 기본적으로 다시 시작하지 않습니다. 대신 실행 중인 활동은 onConfigurationChanged를 통해 이러한 업데이트를 수신합니다.애플리케이션이 이러한 변경사항의 리소스를 다시 로드하기 위해 전체 다시 시작에 의존하는 경우 이제 관련 상수 mcc, mnc, 새 상수 keyboard, keyboardHidden, navigation, touchscreen, colorMode와 함께 전체 활동 수명 주기 (중지에서 삭제 및 다시 생성까지)를 트리거해야 하는 구성 변경사항을 지정할 수 있는 새 android:recreateOnConfigChanges 매니페스트 속성을 사용하여 명시적으로 선택해야 합니다.
앱 준비
Google은 개발자가 쉽게 사용할 수 있도록 도구와 문서를 출시했습니다. Google의 집중 블로그 게시물에는 일반적인 문제를 해결하기 위한 전략과 함께 더 많은 안내가 포함되어 있습니다. 방향 또는 가로세로 비율을 제한하는 것은 더 이상 선택사항이 아니므로 앱은 전체 가로세로 비율 범위에서 창 크기에 맞는 가로 및 세로 레이아웃을 지원해야 합니다. Pixel Tablet 또는 Pixel Fold 에뮬레이터 (targetSdkPreview = "CinnamonBun"로 구성됨)를 사용하여 Android 17 베타 1로 앱을 테스트하거나 앱 호환성 프레임워크를 사용하여 Android 16 기기에서 UNIVERSAL_RESIZABLE_BY_DEFAULT를 사용 설정하는 것이 좋습니다.
성능
잠금 없는 MessageQueue
Android 17에서 SDK 37 이상을 타겟팅하는 앱은 구현이 잠금 없는 android.os.MessageQueue의 새로운 구현을 수신합니다. 새로운 구현은 성능을 개선하고 누락된 프레임을 줄이지만 MessageQueue 비공개 필드 및 메서드를 반영하는 클라이언트를 중단할 수 있습니다.
세대별 가비지 컬렉션
Android 17은 ART의 동시 표시-압축 컬렉터에 세대별 가비지 컬렉션을 도입합니다. 이 최적화는 전체 힙 컬렉션과 함께 더 자주, 리소스 집약도가 낮은 Young Generation 컬렉션을 도입하여 전반적인 가비지 컬렉션 CPU 비용과 시간 지속 기간을 줄이는 것을 목표로 합니다. ART 개선사항은 Google Play 시스템 업데이트를 통해 Android 12 (API 수준 31) 이상을 실행하는 10억 개 이상의 기기에서도 사용할 수 있습니다.
정적 최종 필드가 이제 진정한 최종 필드임
Android 17부터 Android 17 이상을 타겟팅하는 앱은 '정적 최종' 필드를 수정할 수 없으므로 런타임에서 성능 최적화를 더 적극적으로 적용할 수 있습니다. 리플렉션 (및 딥 리플렉션)을 통해 이를 시도하면 항상 IllegalAccessException이 발생합니다. JNI의 SetStatic<Type>Field 메서드 제품군을 통해 수정하면 애플리케이션이 즉시 비정상 종료됩니다.
맞춤 알림 뷰 제한사항
메모리 사용량을 줄이기 위해 맞춤 알림 뷰의 크기를 제한하고 있습니다. 이 업데이트는 앱이 URI를 사용하여 기존 한도를 우회할 수 있는 허점을 닫습니다. 이 동작은 타겟 SDK 버전에 의해 제어되며 API 37 이상을 타겟팅하는 앱에 적용됩니다.
새로운 성능 디버깅 ProfilingManager 트리거
성능 문제를 디버깅하기 위한 심층 데이터를 수집하는 데 도움이 되도록 ProfilingManager에 여러 가지 새로운 시스템 트리거를 도입했습니다. 이러한 트리거는 TRIGGER_TYPE_COLD_START, TRIGGER_TYPE_OOM, 및 TRIGGER_TYPE_KILL_EXCESSIVE_CPU_USAGE입니다.
새로운 시스템 트리거를 설정하는 방법을 알아보려면 트리거 기반 프로파일링 및 프로파일링 데이터 가져오기 및 분석 문서를 참고하세요.
미디어 및 카메라
Android 17은 원활한 전환 및 표준화된 음량과 같은 기능을 통해 미디어 및 카메라 앱에 전문가급 도구를 제공합니다.
동적 카메라 세션 업데이트
CameraCaptureSession에 updateOutputConfigurations()를 도입했습니다. 이렇게 하면 전체 카메라 캡처 세션을 재구성하지 않고도 출력 표면을 동적으로 연결하고 분리할 수 있습니다. 이 변경사항을 사용하면 카메라 시작 중에 앱에 필요할 수 있는 모든 카메라 출력 표면을 구성하고 유지하는 데 드는 메모리 비용과 코드 복잡성 없이 카메라 사용 사례와 모드 (예: 스틸 이미지 촬영과 동영상 촬영) 간에 원활하게 전환할 수 있습니다. 이렇게 하면 작동 중에 사용자가 볼 수 있는 결함이나 정지를 없애는 데 도움이 됩니다.
fun updateCameraSession(session: CameraCaptureSession, newOutputConfigs: List<OutputConfiguration>)) {
// Dynamically update the session without closing and reopening
try {
// Update the output configurations
session.updateOutputConfigurations(newOutputConfigs)
} catch (e: CameraAccessException) {
// Handle error
}
}논리 다중 카메라 기기 메타데이터
여러 물리적 카메라 센서를 결합하는 논리 카메라로 작업할 때 이제 기본 카메라뿐만 아니라 캡처에 관련된 모든 활성 물리적 카메라에서 추가 메타데이터를 요청할 수 있습니다. 이전에는 보조 활성 카메라에서 메타데이터를 가져오기 위해 (예: 팔로워 카메라가 활성 상태인 줌을 위한 렌즈 전환 중) 때로는 불필요한 물리적 스트림을 할당하는 해결 방법을 구현해야 했습니다. 이 기능은 LOGICAL_MULTI_CAMERA_ADDITIONAL_RESULTS라는 새로운 키를 CaptureRequest 및 CaptureResult에 도입합니다. CaptureRequest에서 이 키를 ON으로 설정하면 TotalCaptureResult에 이러한 추가 활성 물리적 카메라의 메타데이터가 포함됩니다. TotalCaptureResult.getPhysicalCameraTotalResults()를 사용하여 이 포괄적인 메타데이터에 액세스하면 카메라 애플리케이션에서 리소스 사용량을 최적화하는 데 도움이 되는 자세한 정보를 얻을 수 있습니다.
다용도 동영상 코딩 (VVC) 지원
Android 17 은 다용도 동영상 코딩 (VVC) 표준을 지원합니다. 여기에는 MediaFormat에서 video/vvc MIME 유형 정의, MediaCodecInfo에 새 VVC 프로필 추가, MediaExtractor에 지원 통합이 포함됩니다. 이 기능은 하드웨어 디코딩을 지원하고 지원되는 드라이버가 있는 기기에 제공됩니다.
동영상 녹화의 일정한 품질
MediaRecorder에 setVideoEncodingQuality()를 추가했습니다. 이렇게 하면 동영상 인코더의 일정한 품질 (CQ) 모드를 구성하여 간단한 비트 전송률 설정을 넘어 동영상 품질을 더 세밀하게 제어할 수 있습니다.
백그라운드 오디오 강화
Android 17부터 오디오 프레임워크는 오디오 재생, 오디오 포커스 요청, 볼륨 변경 API를 포함한 백그라운드 오디오 상호작용에 제한사항을 적용하여 이러한 변경사항이 사용자에 의해 의도적으로 시작되도록 합니다.
애플리케이션이 유효한 수명 주기에 있지 않은 동안 앱이 오디오 API를 호출하려고 하면 예외가 발생하거나 실패 메시지가 제공되지 않고 오디오 재생 및 볼륨 변경 API가 자동으로 실패합니다. 오디오 포커스 API는 결과 코드 AUDIOFOCUS_REQUEST_FAILED로 실패합니다.
개인 정보 보호 및 보안
일반 텍스트 트래픽 속성 지원 중단
android:usesCleartextTraffic 속성은 이제 지원 중단되었습니다. 앱이 (Android 17) 이상을 타겟팅하고 상응하는 네트워크 보안 구성 없이 usesCleartextTraffic="true"에 의존하는 경우 일반 텍스트 트래픽을 허용하지 않도록 기본 설정됩니다. 세부적인 제어를 위해 네트워크 보안 구성 파일로 이전하는 것이 좋습니다.
HPKE 하이브리드 암호화
Google은 HPKE 하이브리드 암호화 구현을 위한 공개 서비스 제공업체 인터페이스 (SPI)를 도입하여 공개 키와 대칭 암호화 (AEAD)의 조합을 사용하여 보안 통신을 지원합니다.
연결 및 통신
향상된 VoIP 통화 기록
Google은 앱 VoIP 통화 기록 통합을 위한 사용자 환경설정 관리를 도입하고 있습니다. 여기에는 시스템 다이얼러에서 발신자 및 참여자 아바타 URI 지원이 포함되어 통화 기록 개인 정보 보호에 대한 세부적인 사용자 제어가 가능하고 통합 VoIP 통화 기록의 시각적 표시가 풍부해집니다.
Wi-Fi 범위 지정 및 근접
Wi-Fi 범위 지정 은 연속 범위 지정 및 보안 P2P 검색을 지원하는 새로운 근접 감지 기능으로 향상되었습니다. _Wi-Fi Aware_ 범위 지정 업데이트에는 피어 핸들 및 11az 보안 범위 지정을 위한 PMKID 캐싱을 위한 새로운 API가 포함되어 있습니다.
개발자 생산성 및 도구
호환 기기 앱 업데이트
기기 구분 및 권한 처리를 개선하기 위해 CompanionDeviceManager에 두 가지 새로운 프로필을 도입했습니다.
- 의료 기기: 이 프로필을 사용하면 의료 기기 모바일 애플리케이션이 한 번의 탭으로 필요한 모든 권한을 요청하여 설정 프로세스를 간소화할 수 있습니다.
- 피트니스 트래커: DEVICE_PROFILE_FITNESS_TRACKER 프로필을 사용하면 호환 앱이 피트니스 트래커를 관리하고 있음을 명시적으로 나타낼 수 있습니다. 이렇게 하면 기존 시계 역할 권한을 재사용하면서 고유한 아이콘으로 정확한 사용자 환경을 보장할 수 있습니다.
또한 CompanionDeviceManager는 이제 기기 연결 및 근처 기기 권한 요청을 위한 통합 대화상자를 제공합니다. AssociationRequest.Builder의 새로운 setExtraPermissions 메서드를 활용하여 기존 연결 흐름 내에서 근처 기기 권한 메시지를 번들로 묶어 사용자에게 표시되는 대화상자 수를 줄일 수 있습니다.
Android 17 시작하기
지원되는 Pixel 기기를 등록하여 이 업데이트와 향후 Android 베타 업데이트를 무선으로 받을 수 있습니다. Pixel 기기가 없는 경우 Android 스튜디오에서 Android Emulator와 함께 64비트 시스템 이미지를 사용할 수 있습니다.
현재 Android 베타 프로그램에 참여하고 있다면 베타 1로 무선 업데이트가 제공됩니다.
Android 26Q1 베타를 사용하고 있으며 26Q1의 최종 안정화 버전을 사용하고 베타를 종료하려면 26Q2 베타 1로의 무선 업데이트를 무시하고 26Q1 출시를 기다려야 합니다.
Google은 의견을 기다리고 있으므로 의견 페이지에서 문제를 신고하고 기능 요청을 제출해 주세요. 의견을 일찍 제공할수록 최종 출시 작업에 더 많이 포함할 수 있습니다.
Android 17을 사용해 최적의 환경에서 개발하려면 Android 스튜디오 (Panda)의 최신 미리보기를 사용하는 것이 좋습니다. 설정이 완료되면 다음 작업을 실행해야 합니다.
- 새 SDK에서 컴파일하고 CI 환경에서 테스트하고 의견 페이지의 트래커에서 문제를 신고합니다.
- 현재 앱의 호환성을 테스트하고, 앱이 Android 17의 변경사항에 영향을 받는지 알아보고, Android 17을 실행하는 기기 또는 에뮬레이터에 앱을 설치하고 광범위하게 테스트합니다.
Android 17 출시 주기 내내 미리보기/베타 시스템 이미지와 SDK를 정기적으로 업데이트할 예정입니다. 베타 빌드를 설치하고 나면 향후 모든 미리보기 및 베타의 업데이트가 무선으로 자동으로 제공됩니다.
자세한 내용은 Android 17 개발자 사이트를 참고하세요.
대화 참여하기
올해 말 플랫폼 안정성 및 Android 17의 최종 안정화 버전 출시를 향해 나아가는 동안 의견은 가장 귀중한 자산으로 남아 있습니다. Canary 채널의 얼리 어답터이든 베타 1에서 테스트하는 앱 개발자이든 커뮤니티에 참여하고 의견을 제출해 보세요. Google은 의견을 경청하고 있습니다.
계속 읽기
-
제품 소식
Google은 오늘 복잡한 추론 및 자율 도구 호출 기능으로 설계된 최신 최첨단 오픈 모델인 Gemma 4로 Android 개발을 개선하고 있습니다.
Matthew McCullough • 2분 읽기
-
제품 소식
Android 17은 오늘 베타 3으로 플랫폼 안정성에 공식적으로 도달했습니다. 즉, API 표면이 잠겨 있습니다. 최종 호환성 테스트를 실행하고 Android 17을 타겟팅하는 앱을 Play 스토어에 푸시할 수 있습니다.
Matthew McCullough • 5분 읽기
-
제품 소식
Google은 개발자가 고품질 Android 앱을 더 빠르고 쉽게 빌드할 수 있도록 지원하고자 하며, 생산성을 높이는 한 가지 방법은 AI를 손쉽게 사용할 수 있도록 하는 것입니다.
Matthew McCullough • 2분 읽기
소식 받아 보기
Android 개발 관련 최신 정보를 이메일로 받아 보세요. 매주