구글이 2월 18일(현지시간) 안드로이드 차기 메이저 버전인 안드로이드 12(Android 12) 개발자 프리뷰 버전을 공개하고 안드로이드12 각 기능과 출시 일정도 공식적으로 밝혔다.
공개된 안드로이드 12 개발자 프리뷰 버전은 일반 사용자도 쓸 수 있지만 어디까지나 정식 버전을 위해 개발자가 응용 프로그램을 테스트하기 위한 것이다. 구글은 원래 빌드에서 프리뷰 버전에서 이전 빌드로 마이그레이션을 하려면 장치에서 사용자 데이터를 모두 삭제하는 완전한 재설정이 필요하다며 반드시 먼저 데이터를 백업하라고 명시하고 있다.
안드로이드 12 공개 일정은 2021년 3월과 4월 각각 프리뷰 버전 2번째와 3번째를 선보이며 5월에는 일반 사용자까지도 대상으로 한 베타 버전을 공개한다. 6월과 7월에는 베타 2탄과 3탄이 나오고 8월에는 최종 베타 버전을 공개한다. 이후 최종 베타 조정이 끝나면 안드로이드 12 풀 버전이 등장하게 된다.
이번 개발자 프리뷰 버전에 따라 밝혀진 안드로이드 12 업데이트 사항은 이렇다. 신뢰성과 안정성 관련 내용부터 보면 먼저 웹뷰(WebView)에서 새임사이트 쿠키(SameSite Cookie) 동작. 크롬과 기타 브라우저 업데이트에 따라 새로운 새임사이트 쿠키 동작을 추가한다. 보안과 개인 정보 보호 면에서 강화하고 쿠키 사용에 투명성이 높은 사용자 제어가 가능하게 됐다.
다음은 넷링크(Netlink) MAC 제한 추가. 안드로이드 11은 API 레벨 30에 따라 액세스가 제한되어 있던 넷링크 MAC이 대상 SDK 레벨에 무관하고 모든 응용 프로그램에서 제한될 수 있다.
다음은 구성 요소 내보내기 안정화. 앱이 활동, 서비스, 수신기를 잘못 내보내는 걸 방지하기 위해 속성(android : exported) 디폴트 처리를 개정한 것. 이어 더 안전한 의도 취급. 펜딩인텐트(PendingIntent) 취급을 안정화하기 위해 응용 프로그램이 플래그(FLAG_MUTABLE 또는 FLAG_IMMUTABLE)를 명시적으로 요청하게 된다.
다음은 사용자 환경 도구. 먼저 호환되는 미디어 트랜스 코딩 도입이다. HEVC 포맷을 지원하지 않는 응용 프로그램용으로 호환되는 미디어 트랜스코딩. HEVC를 지원하지 않는 응용 프로그램에 대해 플랫폼이 파일을 AVC 자동으로 트랜스코딩한다.
또 AVIF 이미지를 지원한다. 추가 고압축화와 고화질화를 위해 안드로이드 12에선 그림 형식으로 AVIF를 지원한다. 기존 JPEG의 경우와 비교하면 같은 파일 크기도 화질이 크게 향상된다. 예를 들어 AVIF 파일 크기가 18.2KB라면 JPEG 포맷이면 파일 크기는 20.7KB다. AVIF 포맷에 비해 파일 크기가 크지만 확대하면 이미지가 무너진다.
다음은 포그라운드(foreground) 서비스 최적화다. 앱이 사용자를 위한 작업을 관리하는 포그라운드 서비승에 대한 새로운 플랫폼을 대상으로 하는 응용 프로그램의 경우 백그라운드에서 포그라운드 서비스 시작을 차단한다.
이어 풍부한 콘텐츠 삽입. CG나 애니메이션 같은 동적 콘텐츠 앱이 단순하게 수신할 수 있도록 클립보드와 키보드, 드래그앤드롭 등 새로운 통합 API를 지원한다. 또 안드로이드 12는 스마트폰에 탑재된 진동 기능과 연동한 오디오 체험이 가능하다. 예를 들어 영상 통화 앱으로 발신자를 식별할 수 있는 촉각 피드백을 갖춘 사용자 정의 벨소리를 설정하거나 레이싱 게임 경험을 시뮬레이션할 수 있다.
다음은 제스처 탐색에 몰입 모드 API 개선. 몰입 모드를 단순화하고 영상을 볼 때, 책을 읽을 때나 게임을 할 때 등 제스처 탐색을 단순하고 일관성이 있게 해준다. 또 알람 UI도 개편했다. 알람 디자인을 쇄신하고 더 현대적이고 사용하기 쉬운 기능으로 했다. 새롭게 공개한 프리뷰 버전은 제어 템플릿 자체를 업데이트하고 시스템 전체 애니메이션이 최적화되어 원활하게 되어 있다.
다음은 알람 속도. 알람을 밀어 활동을 수행하는 동안 활동을 직접 수행하는 게 아니라 중개 시스템을 통하는 경우 실행 속도에 제한이 걸리기 때문에 이런 중개 시스템에 제한을 걸어 중개 시스템을 배출하도록 개발자에게 촉구하도록 했다. 그 밖에 바인더(Binder) IPC 호출 개선. 지연과 워크로드 배포판에 착안해 중앙값을 낮추는 최적화를 실시했다.
마지막으로 응용 프로그램 호환성. 새로운 플랫폼 버전을 배포할 때 응용 프로그램 호환성을 우선해 업데이트 속도와 용이화를 도모하고 있다. 안드로이드 12에선 더 많은 시간을 제공하기 위해 대부분 응용 프로그램을 위한 변경을 탈퇴하고 도구와 프로세스를 업데이트하도록 했다.
먼저 구글플레이 시스템 업데이트 확대. 구글플레이 시스템 업데이트를 지속적으로 확대하고 각 응용 장치에 의하지 않은 안전하고 일관성 있는 환경을 제공한다. 안드로이드 12는 장ㅇ치 핵심인 런타임과 코어 라이브러리에 대한 업데이트를 푸시할 수 있는 안드로이드 런타임 모듈을 추가했다. 이는 런타임 성능과 정확성 향상과 메모리 관리 효율화를 달성하고 코틀린(Kotlin) 작업을 가속화했다.
이어 태블릿과 접이식 스마트폰, TV를 위한 최적화. 태블릿과 접이식 스마트폰, TV 등 대화면 장치에서 응용 프로그램 사용자가 증가하면서 태블릿용 최적화와 접이식 장치용 응용 프로그램 구축에 착수했다. 또 안드로이드TV용 안드로이드 12 개발자 프리뷰 버전도 공개했다.
다음으로 비 SDK 인터페이스에 대한 새로운 제한을 추가했고 응용 프로그램에 영향을 줄 수 있는 옵트인 방식 변경을 테스트하는데 도움이 많은 변화를 토글식으로 했다. 개발자 옵션 내지 안드로이드 디버그 브리지(Android Debug Bridge)에서 각 변경을 따로 활성화 혹은 비활성화할 수 있다. 마지막으로 2020년과 마찬가지로 플랫폼 안정성에 관한 이정표를 사전 통지해 개발자가 응용 프로그램 호환성 작업 시간을 확보할 수 있게 한다. 이는 최종 SDK와 네이티브 API 뿐 아니라 내부 API와 응용 프로그램을 지원하는 시스템 동작을 사전 통지한다. 관련 내용은 이곳에서 확인할 수 있다.