이 글의 원문은 여기서 확인하실 수 있으며 블로그 리뷰에는 노현석(GDE)님이 참여해주셨습니다.
오늘 Android 13 소스를 Android 오픈소스 프로젝트(AOSP)에 제공하고 Android 최신 버전을 공식 출시했습니다. 개발자 입장에서 Android 13은 개인정보 보호와 보안 등의 핵심 테마와 개발자 생산성에 중점을 두고 손쉽게 우수한 사용자 경험을 구축할 수 있도록 지원합니다. 또한 Android가 태블릿 및 대화면에 더욱 적합한 OS로써 개발자 여러분이 전 세계 2억 7천만대 기기를 대상으로 개발할 수 있도록 더 나은 도구를 제공하고자 노력하고 있습니다. 소비자 대상의 Android 13에 관한 내용은 키워드 블로그 게시물에서 자세히 살펴보실 수 있습니다.
Android 13은 Pixel를 시작으로 올해 내 Android 13을 Samsung Galaxy, Asus, HMD(Nokia phones), iQOO, Motorola, OnePlus, Oppo, Realme, Sharp, Sony, Tecno, vivo, Xiaomi 등 더 많은 주요 기기에도 출시할 예정입니다.
이번 버전과 앱이 호환되도록 언제나처럼 애써주시고 소중한 의견 보내주셔서 감사합니다. 개발자 여러분의 지원과 공헌 덕분에 Android를 모두를 위한 훌륭한 플랫폼으로 만들어 나갈 수 있습니다.
개발자용 Android 13의 기능
Android 13의 새로운 기능을 몇 가지 소개합니다. 더욱 자세한 내용은 Android 13 개발자 사이트를 참조하시기 바랍니다.
개발자 생산성과 도구
테마 앱 아이콘 - Android 13은 모든 앱 아이콘에 'Material You' 동적 색상을 확대 적용하여 사용자가 배경화면이나 기타 테마 기본 설정의 색조를 이어받은 아이콘을 선택할 수 있습니다. 앱에서는 단색 앱 아이콘과 적응형 아이콘 XML 조정만 제공하면 됩니다. 여기서 자세히 알아보세요.
테마 앱 아이콘은 배경화면 색상과 어두운 테마(왼쪽)에 맞춰 조정됩니다.
앱별 언어 기본 설정 - Android 13에서는 앱을 시스템 언어와 다른 언어로 사용하고자 하는 다국어 사용자를 더 간편하게 지원할 수 있습니다. 이제 Android는 선택된 앱에 표준형 '앱 언어' 설정 패널을 제공하므로, 런타임에 새 플랫폼 API를 호출해 사용자가 선호하는 언어를 가져오거나 설정할 수 있습니다. 이를 통해 상용구 코드를 줄이고 호환성을 개선할 수 있습니다. 여기서 자세히 살펴보세요.
설정에서 앱별 언어 제공
텍스트 지원 강화 - Android 13은 향상된 경험을 제공할 수 있도록 텍스트 및 언어 부분을 개선했습니다. 더 빠르게 하이픈 넣기로 하이픈 넣기 성능을 200%나 최적화했으므로, 이제는 렌더링 성능에 거의 영향을 주지 않고 TextView에서 이 기능을 사용할 수 있습니다. 텍스트 변환 API를 통해 일본어, 중국어 등의 언어로 음성 문자 변환 입력 기능을 사용할 때 검색과 자동 완성 속도를 높였습니다. Android 13은 또한 비라틴어 스크립트(타밀어, 버마어, 텔루구어, 티베트어 등)의 줄 높이가 개선되어 잘림 현상이 사라지고 읽기가 더 쉬워졌습니다. 여기서 자세히 알아보세요.
Android 13을 대상으로 하는 앱에서 비라틴어 스크립트의 줄 높이가 개선되었습니다(아래).
컬러 벡터 글꼴 - Android 13은 COLR 버전 1(사양, 소개 영상) 글꼴에 대한 렌더링 지원을 추가하고 시스템 그림 이모티콘을 COLRv1 형식으로 업데이트합니다. COLRv1은 어떤 크기에서든 빠르고 또렷하게 렌더링되는 새로운 초소형 글꼴 형식입니다. 대부분의 앱에서는 COLRv1이 곧바로 작동하며, 시스템이 모든 것을 처리합니다. 여기서 자세히 살펴보세요.
COLRv1 벡터 그림 이모티콘(왼쪽)과 비트맵 그림 이모티콘
Quick Settings Placement API - 사용자 지정 빠른 설정 타일을 제공하는 앱의 경우, Android 13은 사용자가 타일을 더 손쉽게 검색하고 추가할 수 있습니다. 새로운 타일 배치 API를 이용하면 사용자가 앱에서 한 단계 만에 사용자 지정 빠른 설정 타일을 바로 추가할 수 있습니다. 여기서 자세히 확인하세요.
프로그래밍 가능한 셰이더 - Android 13에는 AGSL(Android Graphics Shading Language)을 사용하여 동작과 함께 프로그래밍 가능한 RuntimeShader 객체가 도입되었습니다. 이러한 셰이더를 사용해 앱에서 물결, 흐리게, 늘리기를 비롯해 이와 비슷한 고급 효과를 연출할 수 있습니다. 여기서 자세히 살펴보세요.
PlaybackState 파생 미디어 컨트롤 - Android 13을 대상으로 하는 앱의 경우, 이제 시스템이 PlaybackState 작업에서 미디어 컨트롤이 파생됩니다. 이를 통해 전화와 태블릿 기기 전반에서 일관적이면서 Android Auto 및 Android TV 등 기타 Android 플랫폼과 호환되는 컨트롤 세트를 더 풍부하게 제공합니다. 여기서 자세히 알아보세요.
전화 및 태블릿에서 일관적인 Android 13 미디어 컨트롤
Bluetooth LE Audio - LE(저전력) Audio는 친구와 가족에게 오디오를 공유하고 브로드캐스트하거나 정보, 엔터테인먼트 또는 접근성을 목적으로 공개 브로드캐스트를 구독하는 등의 새로운 사용 사례를 지원하도록 구축된 차세대 무선 오디오입니다. 사용자가 배터리 수명의 단축 없이도 하이파이 오디오를 수신할 수 있도록 설계되었으며, 다양한 사용 사례 간에 원활한 전환이 가능합니다. Android 13은 LE Audio를 기본 지원하므로 개발자는 호환되는 기기에서 이러한 새 기능을 사용할 수 있습니다. 여기서 자세히 확인하세요.
MIDI 2.0 - Android 13은 USB를 통해 MIDI 2.0 하드웨어를 연결하는 기능을 포함해 새로운 MIDI 2.0 표준에 대한 지원을 추가합니다. 이 업데이트된 표준에서는 컨트롤러용으로 향상된 해상도, 비서구권 억양에 대한 지원 개선, 음별 컨트롤러를 사용한 더욱 표현력이 뛰어난 성능 등을 제공합니다. 여기서 자세히 알아보세요.
OpenJDK 11 업데이트 - 이제 Android 13 코어 라이브러리가 OpenJDK 11 LTS 버전과 호환되므로 라이브러리 업데이트는 물론 앱 및 플랫폼 개발자를 위한 Java 11 프로그래밍 언어 지원도 제공됩니다. Android 12 이상을 실행하는 기기에 대한 ART 모듈 업데이트의 일환으로, 이러한 코어 라이브러리 변경 사항을 Google Play 시스템 업데이트를 통해 더 많은 기기에 적용할 계획입니다. 여기서 자세히 살펴보세요.
예측형 뒤로 이동 동작 - Android 13에는 새로운 API가 도입되어 앱이 시스템에 뒤로 이동 이벤트를 미리 처리할 것이라고 알릴 수 있습니다. 이것을 'Ahead-Of-Time' 모델이라고 합니다. 이 새로운 방식은 예측형 뒤로 이동 동작을 지원하도록 앱을 준비하는 데 도움을 드리기 위한 다년간의 프로젝트의 일환으로, 이번 버전에서 개발자 옵션을 통해 테스트할 수 있습니다. 여기서 자세히 확인해보세요.
태블릿에 적합한 설계
Android 13은 올해 초에 출시한 12L 업데이트를 확장하여 태블릿에서 훨씬 더 나은 경험을 제공합니다. 그 예로 멀티태스킹 작업 표시줄이 개선되었고, 시스템 UI와 앱에 대화면 레이아웃과 최적화가 추가되었으며, 앱 호환성 모드가 향상되었습니다. 앞으로도 개발자 여러분이 Chromebook과 폴더블은 물론 태블릿에서도 훌륭한 경험을 만들 수 있도록 필요한 도구를 꾸준히 제공할 예정입니다. 대화면용 최적화 시작 방법에 대해 자세히 알아보고 대화면 개발자 리소스를 참조하시기 바랍니다.
Android 13으로 태블릿에서 멀티태스킹.
개인정보 보호 및 보안
사진 선택기 및 API - 새로운 시스템 사진 선택기를 사용하면 사용자는 개인정보가 보호되는 표준 방법으로 로컬 및 클라우드 기반 사진을 공유할 수 있습니다. 사진 선택기는 Android의 유구한 문서 선택기 기능이 확장된 것으로, 사용자가 앱에 기기의 모든 미디어 파일을 조회할 권한을 부여하지 않고도 해당 앱에서 특정 사진과 동영상을 손쉽게 공유할 수 있도록 해줍니다. 사진 선택기는 사진 및 동영상 전용이며 앱이 공유된 미디어 파일에 액세스하는 데 필요한 API를 포함합니다. Android 11 이상 버전을 실행하는 기기(Go 기기 제외)에서 Google Play 시스템 업데이트를 받는 사용자들은 사진 선택기를 경험할 수 있습니다. 여기서 자세히 살펴보세요.
사진 선택기를 사용하면 사용자가 앱에서 특정 사진과 동영상을 공유할 수 있습니다.
알림 권한 - 사용자가 자신에게 가장 중요한 알림에 집중할 수 있도록 Android 13에는 알림 런타임 권한이 새롭게 도입되었습니다. 이제 앱은 사용자로부터 알림 권한을 요청한 후 알림을 게시해야 합니다. Android 12 이하를 대상으로 하는 앱의 경우 시스템에서 개발자를 대신해 업그레이드 흐름을 처리합니다. 여기서 자세히 알아보세요.Android 13의 알림 권한 대화상자.
Wi-Fi 환경을 위한 근처 기기 권한 - Android 13은 Wi-Fi를 통한 근처 액세스 포인트로의 기기 접속을 관리하는 앱에 대해 NEARBY_WIFI_DEVICES 런타임 권한을 도입합니다. 일반적으로 사용되는 대다수의 Wi-Fi API에는 이 새로운 권한이 꼭 필요하며, 이 권한이 있으면 앱이 위치 권한을 얻지 않고도 Wi-Fi를 통해 근처 기기를 검색하고 접속할 수 있습니다. 여기서 자세히 확인해보세요.
미디어 파일 액세스 권한 세분화 - 사진 선택기는 사진과 동영상을 권한 없이 공유할 수 있는 사용자 친화적인 솔루션으로 권장되지만, 아직 사진 선택기로 이동하지 않은 앱이나 오디오 사용 사례의 경우, Android 13은 세분화된 새로운 미디어 권한을 추가합니다. 이와 같은 새 권한이 READ_EXTERNAL_STORAGE 권한을 대신하게 되며, 이미지, 동영상이나 오디오 등 특정 유형의 미디어 파일에 대한 액세스를 제공합니다. 가급적 앱을 사진 선택기로 이동하는 것이 가장 좋습니다. 이동하지 않을 경우에는 Android 13을 대상으로 할 때 세분화된 미디어 권한을 사용하십시오. 여기서 자세히 알아보세요.
개발자가 다운그레이드할 수 있는 권한 - Android 13부터 사용자가 이전에 부여한 권한을 더 이상 필요로 하지 않는 앱은 새 API를 사용하여 권한을 다운그레이드할 수 있습니다. 사용하지 않는 권한을 없애면 앱이 필요한 최소한의 권한만 사용하는 것을 보여줄 수 있으므로 사용자의 신뢰를 강화할 수 있습니다. 여기서 자세히 살펴보세요.
내보낸(Exported) Intent 필터 안전성 강화 - Android 13은 Android 13을 대상으로 하는 다른 앱에서 내보낸 Intent 필터로 명시적 인텐트를 전달할 때 전보다 더 엄격한 규칙을 적용합니다. 작업을 지정하는 Intent의 경우, 이제부터는 Intent가 수신기가 선언한 <intent-filter> 요소와 일치하는 경우에만 시스템이 Intent를 내보낸 구성 요소에 전달하게 됩니다. 여기서 자세히 알아보세요.
앱 성능
Android 13은 ART 런타임을 업데이트하여 모든 앱의 성능과 효율성을 개선합니다. Android 12 이상을 실행하는 기기에 대한 지속적인 ART 모듈 업데이트의 일환으로, 이러한 개선 사항을 Google Play 시스템 업데이트를 통해 더 많은 Android 사용자에게 제공할 계획입니다.
가비지 컬렉션 개선 - 다가오는 Google Play 시스템 업데이트에서 Android 13 기기 ART에 Linux 커널 기능 userfaultfd 기반의 새로운 가비지 수집기를 제공합니다. 새로운 가비지 수집기는 로드된 객체마다 읽기 장애물과 이에 해당하는 고정된 오버헤드를 없애 메모리 압박을 완화하고 컴파일된 코드 크기를 약 10% 줄일 수 있습니다. 압축이 진행될수록 여유 페이지가 확보되므로 GC 시간에서도 효율성이 개선됩니다. 전반적으로, 새 가비지 수집기는 배터리 절약에 유익하고 GC 작업 중 버벅거림이 없으며 메모리 부족으로 인한 앱 종료를 방지하는데 도움을 줍니다.
ART 전반에서 최적화 - Android 13에서는 ART 덕분에 네이티브 코드 전환이 훨씬 빨라져 JNI 호출이 전보다 최대 2.5배 빨라졌습니다. 런타임의 참조 처리도 재작업하여 대부분 비차단으로 설정하였으며, 덕분에 버벅거림이 한층 더 줄었습니다. 새롭게 내놓은 공개 API인 Reference.refersTo()는 참조 불가능한 객체를 더 빨리 회수하는 데 유용하며 클래스/메서드 조회를 최적화하여 인터프리터 속도도 높였습니다. 마지막으로, ART가 설치 시점에 더 많은 바이트-코드 확인 작업을 수행하여 런타임에 검증 비용이 발생하지 않고 앱 시작 시간을 짧게 유지할 수 있게 되었습니다. 여기서 자세히 살펴보세요.
앱 준비를 완료하세요!
이제 Android 13이 AOSP에 공개 되니, Android 개발자 여러분 모두 호환성 테스트를 완료하고 가능한 한 빨리 업데이트를 게시하여 사용자가 Android 13으로 원활히 전환할 수 있도록 지원하시기 바랍니다.
앱 호환성을 테스트하려면 Android 13을 실행하는 기기에 앱을 설치하고 앱 흐름을 따라 기능 문제나 UI 문제가 있는지 살펴보기만 하면 됩니다. Android 13에서 모든 앱의 동작 변경 사항부터 검토하여 현재 버전의 앱이 영향을 받을 수 있는 영역을 집중적으로 살펴보세요. 다음과 같은 주요 변경 사항을 테스트해야 합니다.
앱에서 라이브러리와 SDK의 호환성을 테스트하는 것을 잊지 마세요. SDK 문제를 발견하면 최신 SDK 버전으로 업데이트하거나 개발자에게 연락하여 도움을 받으세요.
현재 앱의 호환 버전을 게시하면 앱의 targetSdkVersion을 업데이트하는 프로세스를 시작할 수 있습니다. 이를 위해 Android 13을 대상으로 하는 앱의 동작 변경 사항을 검토하고 문제를 빠르게 감지하는 데 도움이 되는 호환성 프레임워크를 사용합니다.
태블릿 및 대화면 지원
태블릿에서의 경험을 한층 더 향상시키는 Android 13을 통해 여러분의 앱이 가장 멋지게 보일 수 있도록 준비하시기 바랍니다. Android Studio에서 Android 에뮬레이터를 설정하여 대화면 기능을 테스트하거나 Android 13 베타 파트너의 대화면 기기를 사용하면 됩니다. 다음 부분들을 눈여겨 살펴보세요.
여기서 Android 13의 태블릿 기능과 테스트할 항목에 대한 자세한 내용을 읽어볼 수 있습니다.
다음 단계
Android 13은 픽셀 기기를 시작으로 출시됩니다.
현재 Android 베타 프로그램에 등록된 경우 Android 13 최종 버전을 받아볼 수 있으며, 등록 상태를 유지하면 올해 하반기부터 시작되는 Android 13 기능 출시 베타 버전 업데이트를 계속 받아볼 수 있습니다. 기기를 완전 삭제하지 않고 지속적인 베타 업데이트를 받지 않으시려면, Android 베타 사이트에서 선택 해제하면 됩니다. 단, Android 13 최종 버전을 받고 Android 기능 출시용 첫 베타를 받기 전에 선택 해제해야 합니다.
픽셀 기기의 시스템 이미지는 여기서 수동 다운로드와 플래시로 구할 수 있으며, 최신 Android Emulator 시스템 이미지는 Android Studio에서 SDK Manager를 통해 받으면 됩니다. Android 13 소스는 Android 13 branch의 Android 오픈소스 프로젝트 저장소 안에 있는 여기에서 확인 가능합니다.
초기 프리뷰와 베타 프로그램에 참여해 주셔서 다시 한번 감사드립니다. Android 13에서 여러분의 앱을 만날 수 있길 바랍니다!
Java와 OpenJDK는 Oracle 및/또는 그 계열사의 상표 또는 등록 상표입니다.