오늘 저희는 Android 14의 최초 개발자 프리뷰를 출시합니다. 이 프리뷰에 대한 개발자 여러분의 의견은 사용자 모두에게 더 나은 Android를 만드는 데 중요한 부분입니다. 성능, 개인정보 보호, 보안, 사용자 맞춤설정의 개선과 함께 개발자의 생산성 향상을 위한 저희의 노력은 Android 14에서도 계속됩니다. 이번 프리뷰는 그 시작이며, 출시 주기를 거쳐 훨씬 더 많은 기능과 도구를 공유드리겠습니다.
Android는 연중 내내 계속해서 향상된 기능과 새로운 기능을 제공하며 Android 14 개발자 프리뷰 및 QPR(Quarterly Platform Release) 베타 프로그램에 대한 여러분의 의견이 Android의 지속적인 개선에 핵심적인 역할을 합니다. Android 14 개발자 사이트에는 Pixel을 위한 다운로드와 출시 일정을 포함하여 프리뷰에 대한 더 많은 정보가 있습니다. 개발자 여러분의 의견을 기다리며, 모든 사람에게 효과적이고 유용한 Android 플랫폼을 만들기 위한 여러분의 지속적인 공헌에 미리 감사드립니다.
다양한 기기와 폼 팩터에서 작동
Android 14는 Android 12L 및 13에서 수행된 작업을 기반으로 태블릿 및 폴더블 폼 팩터를 지원하도록 개발되었습니다. 다양한 화면 크기에 맞춰 조정되는 앱을 개발하도록 도와드리고자, 창 크기 클래스, SlidingPaneLayout, Activity embedding, 제약 조건이 있는 상자 등을 만들었으며 Jetpack Compose에서도 모두 지원됩니다. 버전을 출시할 때마다 여러분이 모든 Android 에서 앱을 보다 쉽게 최적화할 수 있도록 하는 것을 목표로 두고 있습니다.
앱 준비 과정을 간소화할 수 있도록, 저희는 대화면을 위한 앱 품질 가이드를 업데이트했으며 대화면과 폴더블을 위한 개발을 위한 추가적인 학습 기회를 제공했습니다. 대화면 갤러리에는 소셜 및 커뮤니케이션, 미디어, 생산성, 쇼핑 및 독서 앱과 같이 앱이 지원하는 시장을 중심으로 디자인 아이디어와 함께 검증된 디자인 패턴이 있으니 활용해 보시기 바랍니다.
다중 기기 경험은 Android의 미래에서 중대한 부분입니다. 지금 바로 Cross device SDK 프리뷰로 시작해 다양한 기기와 폼 팩터에 걸쳐 직관적으로 작동하는 풍부한 사용 경험을 구현할 수 있으며 앞으로도 더 많은 기능을 선보일 예정입니다.
백그라운드 작업 간소화
Android 14에서도 앱이 함께 작동하는 방식을 최적화하고 시스템 상태와 배터리 수명을 개선하며 최종 사용자 환경의 완성도를 높이는 노력이 계속 이어집니다.
JobScheduler 및 포그라운드 서비스에 대한 업데이트 및 추가 사항
Wi-Fi를 사용할 수 있을 때 대용량 파일 다운로드와 같은 백그라운드 작업을 수행하는 일은 필요 이상으로 복잡합니다. 저희는 앱 개발을 단순화하고 잠재적으로 사용자 경험을 개선하기 위해 이 작업의 표준 경로를 만들고 있습니다. 또한 적합한 포그라운드 서비스 사용 방법에 대해 더 많은 방향을 제시하고 있으며 Android가 리소스 소비와 배터리 수명을 개선할 수 있도록 우선순위가 가장 높은 사용자 대상 작업에만 포그라운드 서비스를 사용합니다.
Android 14에서는 포그라운드 서비스 유형을 선언하기 위해 업데이트된 요구 사항과 함께 사용자가 시작한 데이터 전송을 위한 새로운 기능 추가를 포함하여 기존 Android API(포그라운드 서비스와 JobScheduler)를 변경할 예정입니다. 특히 Wi-Fi를 통해서만 다운로드하는 것과 같은 제약 조건이 요구될 때 사용자가 시작한 데이터 전송 작업으로 사용자가 시작한 다운로드와 업로드를 더 쉽게 관리할 수 있습니다. 포그라운드 서비스 유형 선언을 요구 사항으로 지정함으로써 앱의 백그라운드 작업 인텐트를 명확하게 정의하는 동시에, 포그라운드 서비스에 알맞은 사용 사례를 명확히 할 수 있습니다. 또한 Google Play는 이러한 API를 적절히 사용하도록 보장하는 새로운 정책을 발표할 예정이며, 자세한 사항은 곧 알려드리겠습니다.
최적화된 브로드캐스트
배터리 수명과 반응성을 개선하기 위해 내부 브로드캐스트 시스템을 여러 가지로 최적화했습니다. 대부분 Android의 내부적 최적화이므로 여러분의 앱에는 영향을 미치지 않겠지만, 앱이 캐시된 상태가 되면 앱이 컨텍스트 등록 브로드캐스트를 수신하는 방식을 조정했습니다. 컨텍스트 등록 수신자에 대한 브로드캐스트는 큐에 넣을 수 있으며 캐시된 상태에서 벗어나야만 앱으로 전달됩니다. 그뿐 아니라 BATTERY_CHANGED와 같은 일부 반복 컨텍스트 등록 브로드캐스트는 앱이 캐시된 상태에서 벗어나면 전달되기 전에 최종 브로드캐스트 하나로 병합될 수 있습니다.
정확한 알람
정확한 알람을 호출하면 배터리 수명과 같은 기기의 리소스에 상당한 영향을 미칠 수 있습니다. 따라서 Android 14에서는 시계나 캘린더가 아닌 앱 중 Android 13 이상(SDK 33 이상)를 대상으로 새로 설치된 앱은 정확한 알람을 설정하기 전에 사용자에게 SCHEDULE_EXACT_ALARM 특별 권한을 부여하도록 요청해야 합니다. 앱은 이 권한을 전환하는 인텐트를 통해 사용자를 설정 페이지로 안내할 수 있지만, 사용 사례를 평가하고 가능하면 더 유연하게 예약된 대안을 선택하는 것이 좋습니다.
핵심 앱 워크플로의 일부로 정확한 알람에 의존하며 Android 13 이상(SDK 33 이상)을 대상으로 하는 시계 및 캘린더 앱은 대신 USE_EXACT_ALARM 일반 권한을 선언할 수 있습니다(설치 시 권한이 부여됨). 앱은 정책 언어를 기반으로 자격을 갖추지 않는 한 매니페스트에서 이 권한으로 Play 스토어에 앱의 버전을 게시할 수 없습니다.
맞춤설정
저희는 Android 사용자가 개인의 필요에 맞게 향상된 접근성과 국제화 기능을 비롯한 환경을 조정할 수 있도록 하려고 계속 노력하고 있습니다.
비선형 크기 조정으로 더욱 커진 글꼴
Android 14부터는 사용자가 글꼴의 크기를 200%까지 조정할 수 있습니다. 이전에는 Pixel 기기에서 조정 가능한 글꼴 크기의 최대 배율이 130%였습니다.
텍스트가 너무 커지는 문제를 완화하기 위해, Android 14부터는 비선형 글꼴 크기 조정 곡선이 자동으로 적용됩니다. 이를 통해 이미 충분히 큰 텍스트는 더 작은 텍스트와 똑같은 비율로 크기가 늘지 않습니다.
Android 14에서는 Accessibility > Display size and text(접근성 > 표시 크기 및 텍스트) 설정 내에서 Font size(글꼴 크기) 옵션을 사용하여 최대 글꼴 크기로 앱 UI를 테스트해야 합니다. 조정된 큰 텍스트 크기 설정이 UI에 반영되고 텍스트가 잘리지 않도록 확인하고, 더 자세한 모범 사례는 여기서 참조하세요. |
앱별 언어 설정
LocaleManager.setOverrideLocaleConfig로 앱의 localeConfig를 동적으로 업데이트하여 Android 설정에서 앱별 언어 목록에 표시되는 언어 집합을 맞춤 설정할 수 있습니다. 이를 통해 지역별 언어 목록을 맞춤 설정하고, A/B 실험을 실행하고, 앱이 서버 측 현지화 푸시를 활용하는 경우 업데이트된 언어를 제공할 수 있습니다.
IME는 이제 LocaleManager.getApplicationLocales를 사용하여 현재 앱의 UI 언어를 파악해 키보드 언어를 업데이트할 수 있습니다.
Grammatical Inflection API
Grammatical Infection API를 사용하면 문법상의 성별이 있는 언어를 구사하는 사용자를 위한 지원을 더 쉽게 추가할 수 있습니다. 예를 들면 다음과 같습니다.
남성: “Vous êtes abonné à...”
여성: “Vous êtes abonnée à…”
중성: “Abonnement à…activé”
문법상의 성별은 언어 고유의 특성으로, 일부 비영어권 언어에서는 쉽게 해결할 수 없는 문제입니다. 이 새로운 API를 사용하면 문자열 기준으로 적용해야 하는 ICU의 SelectFormat을 사용하는 것에 비해 보는 사람의 성별(대화에 등장하는 인물이 아닌 UI를 보고 있는 사람)을 좀 더 수월하게 지원할 수 있습니다.
맞춤형 번역을 보여주려면 영향을 받는 언어에 대해 각 문법상의 성별에 맞게 변화된 번역을 추가하고 API를 통합하기만 하면 됩니다.
개인정보 보호 및 보안
런타임 수신기
Android 14를 대상으로 하는 앱은 동적 Context.registerReceiver() 사용을 'exported'로 처리할지 아니면 이전 버전에서 매니페스트 수준 작업의 연속인 'unexported'으로 처리할지 지정해야 합니다. 자세한 내용은 여기서 확인해보세요.
더 안전한 암시적 인텐트
악성 앱이 인텐트를 가로채지 못하도록 하기 위해, Android 14를 대상으로 하는 앱은 패키지를 지정하지 않는 인텐트를 내부적으로 전송하지 못하게 제한됩니다. 여기서 자세히 살펴보세요.
더 안전한 동적 코드 로딩
동적으로 다운로드된 실행 파일이 예기치 않게 조작되어 코드 삽입을 유발할 수 있으므로 DCL(동적 코드 로딩)에서는 멀웨어와 악용에 대한 유출구를 도입합니다. Android 14를 대상으로 하는 앱은 동적으로 로드된 파일을 읽기 전용으로 표시해야 합니다. 자세한 내용은 여기서 참조하세요.
앱 설치 차단
멀웨어는 종종 최신 Android 버전에 도입된 보안 및 개인정보 보호를 우회하기 위해 이전의 API 레벨을 대상으로 공격합니다. 이를 방지하기 위해 Android 14부터 targetSdkVersion이 23보다 낮은 앱은 설치할 수 없습니다. 일부 멀웨어 앱은 2015년에 Android 6.0(API 레벨 23)에서 도입된 런타임 권한 모델이 적용되지 않도록 targetSdkVersion 22를 사용하므로 이 버전 23을 선택했습니다.
Android 14로 업그레이드하는 기기에서는 targetSdkVersion이 23보다 낮은 모든 앱이 설치된 상태로 유지됩니다.
다음 ADB 명령을 사용하여 이전 API 레벨을 대상으로 하는 앱을 테스트할 수 있습니다.
adb install --bypass-low-target-sdk-block FILENAME.apk
Credential Manager 및 패스 키 지원
저희는 최근에 앱 개발자가 사용자의 인증 과정을 단순화하는 동시에, 패스 키 지원으로 보안도 강화할 수 있는 새로운 Jetpack API인 Credential Manager의 알파 버전을 발표했습니다. 패스 키는 비밀번호와 기타 피싱 가능한 인증 요소를 훨씬 더 안전하게 대체하며 사용자에게도 더욱 편리합니다. (생체 인식 스와이프만으로 어떤 기기에서도 안전하게 로그인 가능) 여기서 더 자세히 알아보세요.
앱 호환성
저희는 앱 호환성을 우선시하여 각 플랫폼 버전에서 더욱 빠르고 원활하게 업데이트할 수 있도록 하려고 노력하고 있습니다. Android 14에서는 개발자가 앱 변경 작업에 필요한 시간을 더 확보할 수 있도록 앱이 거쳐야 하는 변경 사항 대부분을 옵트인했을 뿐 아니라, 개발자가 더 신속하게 준비할 수 있도록 관련 도구와 프로세스를 업데이트했습니다.
OpenJDK 17 지원 - 이 프리뷰에는 300개의 OpenJDK 17 클래스에 대한 액세스가 포함됩니다. 저희는 곧 공개될 개발자 프리뷰에서 Java 17 언어 기능을 완전히 사용할 수 있도록 하기 위해 열심히 노력하고 있습니다. 여기에는 레코드 클래스, 여러 줄 문자열, 패턴 일치 instanceof가 포함됩니다. Google Play 시스템 업데이트(Project Mainline) 덕분에 6억 대 이상의 기기가 이러한 변경 사항을 포함하는 최신 ART(Android 런타임) 업데이트를 받을 수 있습니다. 이는 다양한 기기에서 앱에 보다 일관되고 안전한 환경을 제공하고 플랫폼 버전과 관계없이 사용자에게 새로운 기능을 제공하겠다는 약속의 일환입니다.
더욱 쉬워진 변경 사항 테스트와 디버깅 - 앱에 영향을 미칠 수 있는 옵트인 변경 사항을 더 쉽게 테스트할 수 있도록 올해도 역시 많은 변경 사항을 전환 스위치로 설정할 수 있게 만들 것입니다. 전환 스위치를 사용하여 개발자 옵션이나 adb에서 변경 사항을 개별적으로 강제 적용하거나 해제할 수 있습니다. 여기서 자세한 내용을 확인해 보세요.
|
개발자 옵션의 앱 호환성 전환 스위치 |
플랫폼 안정성 추진 일정 - 작년과 마찬가지로 더 여유 있게 앱 호환성 작업을 계획할 수 있도록 플랫폼 안정성 추진 일정을 미리 상세히 알려드리겠습니다. 이 일정을 따라가면 최종 SDK/NDK API는 물론이고, 최종 내부 API 및 앱과 직접 관련한 시스템 동작도 완성하게 됩니다. 2023년 6월에 플랫폼 안정성에 도달할 것으로 예상하고 있으며 그때부터 공식 출시 전까지 몇 주 동안 최종 테스트를 진행할 수 있을 것입니다. 세부적인 출시 일정은 여기에서 확인할 수 있습니다.
Android 14 시작하기
개발자 프리뷰에는 Android 14 기능을 사용해보고 앱을 테스트하고 의견을 전달하는 데 필요한 모든 것이 있습니다. 태블릿과 폴더블로 가장 쉽게 앱 테스트를 시작하는 방법은 Android Studio SDK Manager 최신 프리뷰의 태블릿 또는 폴더블 구성에서 Android Emulator를 사용하는 것입니다. 휴대폰의 경우, 지금 바로 Pixel 7 Pro, Pixel 7, Pixel 6a, Pixel 6 Pro, Pixel 6, Pixel 5a 5G, Pixel 5 또는 Pixel 4a(5G) 기기에 시스템 이미지를 플래시하여 앱 테스트를 시작할 수 있습니다. Pixel 기기가 없으면 Android Studio의 Android Emulator로 64비트 시스템 이미지를 사용할 수 있습니다.
Android 14에서 최상의 개발 경험을 얻으려면 Android Studio Giraffe의 최신 프리뷰(또는 최신 Giraffe+ 버전)를 사용하는 것이 좋습니다. 준비가 되었다면 다음 작업을 수행해야 합니다.
새로운 기능과 API 사용 - 개발자 프리뷰의 초기에는 여러분의 의견이 매우 중요합니다. 의견 페이지를 통해 문제를 알려주세요.
현재 앱의 호환성 테스트 - 앱이 Android 14에서 기본 동작 변경의 영향을 받는지 알아보고 Android 14를 실행하는 기기 또는 에뮬레이터에 앱을 설치한 후 광범위하게 테스트해 보세요.
옵트인 변경 사항으로 앱 테스트 - Android 14는 새 플랫폼을 대상으로 할 때만 앱에 영향을 주는 옵트인 동작 변경 사항이 있습니다. 이런 변경 사항을 일찍 파악하고 평가하는 것이 중요합니다. 더 쉽게 테스트할 수 있도록 전환 스위치를 사용하여 변경 사항의 적용 여부를 개별적으로 설정할 수 있습니다.
Android 14 출시 주기 내내 프리뷰 시스템 이미지와 SDK를 정기적으로 업데이트할 예정입니다. 이 초기 프리뷰 버전은 개발자 전용이며 일상적인 용도나 소비자용으로 제공되는 것은 아니므로, 직접 다운로드를 통해서만 사용할 수 있게 됩니다. 프리뷰 빌드를 수동으로 설치하고 나면 이후의 모든 프리뷰와 베타에 대해서는 자동으로 무선 업데이트가 진행됩니다. 여기에서 더 자세히 알아보세요.
Android 13 QPR 베타 프로그램에서 Android 14 개발자 프리뷰 프로그램으로 전환하고 기기를 완전 삭제하고 싶지 않다면 지금 개발자 프리뷰 1로 전환하는 것이 좋습니다. 그렇지 않으면 Android 13 베타의 빌드 날짜가 더 최신 버전이어서 데이터를 완전 삭제하지 않고서는 Android 14 개발자 프리뷰로 바로 전환하지 못하게 되는 기간이 발생할 수 있습니다.
베타 출시 단계가 되면 소비자도 Android 14를 사용해 볼 수 있도록 할 계획이며 그때 Android 베타 프로그램 등록을 시작하겠습니다. 지금 당장은 Android 14에서 Android 베타 프로그램을 사용할 수 없음을 참고해 주시기 바랍니다.
자세한 내용은 Android 14 개발자 사이트를 참조하세요.
Java와 OpenJDK는 Oracle 및/또는 그 계열사의 상표 또는 등록 상표입니다.