Nova Launcher가 Google Pixel 휴대폰에서 더 잘 작동하는 이유는 다음과 같습니다.

Google은 Nova Launcher와 같은 타사 실행 프로그램이 더욱 유동적인 전환 애니메이션을 표시할 수 있는 API를 추가했습니다. 현재 Pixel 휴대전화에만 이 기능이 있습니다.

과거에는 타사 런처 앱이 대부분의 Android 휴대폰에 있는 기본 런처보다 뛰어난 경험을 제공하는 경우가 많았습니다. 하지만 최근 앱 화면이 개편되고 Android 9 Pie에 제스처가 도입되면서 이러한 새로운 경험이 재고에 통합되면서 타사 런처는 불리한 입장에 놓였습니다. 런처 앱. 시간이 지남에 따라 Google은 제스처를 사용할 때 제3자 런처 경험을 그다지 나쁘지 않게 만들기 위해 노력해 왔으며 실제로 최근에 성공하기 시작했습니다.

지난 몇 달 동안 Google Pixel 휴대폰에서 최신 Nova Launcher 베타 릴리스를 사용한 적이 있다면 동작 탐색을 사용할 때 유동적인 애니메이션을 발견했을 것입니다. 안타깝게도 적어도 지금은 다른 기기에서 Nova Launcher를 사용할 때 이와 동일한 애니메이션이 표시되지 않습니다. 왜 Nova Launcher와 같은 타사 런처와 Google의 Pixel Launcher와 같은 기본 런처를 구분하는 요소가 무엇인지 간략하게 설명해야 하는 이유를 이해하려면 먼저

Google이 처음으로 제스처 탐색을 도입했습니다. 안드로이드 9 파이에서. 제스처가 최대한 유연하게 느껴지도록 하기 위해 Google은 앱 전환이 원활해 보이도록 해야 했습니다. 또한 사용자가 최근 앱 화면에서 전체 앱 목록에 액세스할 수 있기를 원했습니다. 이 두 가지를 모두 수행하기 위해 Google은 최근 앱 화면을 처리하는 코드를 Android에서 이동하기로 결정했습니다. SystemUI에서 대부분의 OEM 순정 런처가 포크되는 Android의 오픈 소스 런처 앱인 Launcher3으로 이동합니다. 그래서 퀵스텝 구성 요소가 탄생했으며 Android의 특권적인 특성으로 인해 Android에서는 사전 설치된 런처 앱만 최신 앱 공급자로 설정할 수 있도록 허용합니다. 이것은 될 수있다

루트 액세스로 재정의됨 타사 런처가 지원하는 경우 대부분의 사용자에게 이는 타사 런처 앱이 항상 기본 런처를 사용하여 제스처와 최근 앱 화면을 처리한다는 것을 의미합니다. 여러분 대부분이 경험하셨겠지만 그 결과는 매끄럽고 매끄럽게 보이지 않는 전환으로 인해 약간 버벅거릴 수 있습니다. Google Pixel 전화를 사용하지 않는 한 그렇습니다.

대부분의 Google Pixel 휴대전화에는 타사 런처가 앱에서 홈 화면으로의 전환을 훨씬 더 자연스럽게 보이도록 만드는 데 사용할 수 있는 API가 있습니다. 다음과 같은 일부 타사 런처 앱 나이아가라 런처 앞서 언급한 Nova Launcher는 이 API를 활용하고 있지만 후자는 해당 API만 포함합니다. 개발 중인 v7 빌드. 이 API를 사용하면 사용자가 스와이프하여 홈으로 이동 동작을 수행할 때마다 타사 런처 앱이 QuickStep으로부터 인텐트와 콜백을 수신합니다. 그런 다음 타사 실행 프로그램은 창이 앱 아이콘으로 최소화될 때 창에 애니메이션을 적용하는 방법을 제스처 시스템에 암시할 수 있습니다.

다음은 런처 개발자가 제공한 Niagara Launcher의 모습에 대한 예입니다. 8비트핏:

다음은 애니메이션이 어떻게 보이는지 보여주는 비교입니다. ASUS ROG 폰 5 그리고 구글 픽셀 4, 둘 다 Nova Launcher v7.0.25(게시 당시 최신 베타 릴리스) 및 Android 11을 실행합니다.

\r\n https://www.youtube.com/watch? v=equ-8yDw_Do\r\n

이제 궁금하실 것입니다. 이 API는 Google Pixel 휴대폰에만 적용되나요? 대답은 '아니오'입니다. 그렇지 않습니다. API는 Launcher3/QuickStep의 일부이며 AOSP에서 찾을 수 있습니다, 이는 모든 OEM 런처 앱에 열려 있음을 의미합니다. API를 사용하는 동안 Launcher3에 커밋되었습니다. 내부적으로는 2020년 7월 21일에 있었던 것 같습니다. AOSP 마스터 브랜치에 병합됨 12월에 Android R QPR1이 출시됩니다.

Nova Launcher와 Niagara Launcher를 Google Pixel 휴대전화에서 더욱 자연스럽게 느낄 수 있게 해주는 API입니다.

Nova Launcher의 개발자이자 이 API를 최초로 발견한 사람 중 한 명인 Kevin Barry는 다음 중 일부가 의심된다고 말했습니다. OEM이 Launcher3 포크에서 이 API를 사용하지 않는 이유는 이 API가 Android 11 릴리스에서 조금 늦게 제공되었기 때문입니다. 주기. 큰 AOSP 변경 사항을 병합하려면 상당한 노력이 필요하며 Android R QPR1 업데이트에는 확실히 이러한 변경 사항이 많이 포함되어 있습니다. 지난 몇 년 동안 우리는 이러한 코드 드롭을 "유지 관리 릴리스"라고 불렀지만 OEM의 반발 이후 Google은 더 이상 이를 수행하지 않습니다(또는 그렇게 들었습니다). 이것이 인기 있는 Android 맞춤 ROM인 LineageOS가 최신 릴리스를 ''라고 부르는 이유입니다.리니지OS 18.1"LineageOS 18"이 아닌 "는 ROM이 초기 Android 11 릴리스가 아닌 최신 Android 11 코드베이스를 기반으로 함을 나타냅니다.

이 API는 다음 이후의 Google Pixel 휴대폰에서만 액세스할 수 있다는 점도 주목할 가치가 있습니다. 12월 Pixel 기능 출시이는 공개 Android R QPR1 릴리스와 일치합니다. 그리고 Pixel 2가 12월 최종 업데이트, 해당 업데이트에는 Android R QPR1 코드베이스가 포함되지 않았으므로 Nova Launcher v7을 실행하는 Pixel 2 소유자는 다른 Pixel과 동일한 경험을 하지 못합니다. (Pixel 2 소유자는 최신 Pixel 장치의 API가 포함된 최신 버전의 Pixel Launcher를 사이드로드할 수 있지만 사용자 보고서에 따르면 가끔씩 작동하더라도 애니메이션은 여전히 ​​버그가 있습니다. 참고로 Pixel Launcher는 대부분의 순정 런처와 마찬가지로 Launcher3를 기반으로 구축되었지만 일부 Pixel 전용 기능도 포함되어 있습니다.

그렇다면 이 API를 다른 Android 기기에 추가하려면 무엇이 필요할까요? 안타깝게도 각 OEM이 런처 앱을 어떻게 개발하는지 정확히 모르기 때문에 이에 대한 쉬운 대답은 없습니다. 주어진 방법 Google은 전체 화면 동작 탐색을 엄격하게 제어합니다., 우리는 대부분의 OEM이 제스처 및/또는 QuickStep과 관련된 코드를 크게 수정하지 않는 것으로 의심합니다. OEM이 커밋을 되돌리거나, 코드를 깨뜨리거나, 업데이트를 거부하기 위해 노력하지 않는 한 Launcher3, 그러면 OEM 런처가 리베이스할 때마다 이 API가 OEM 런처에 추가되는 것을 볼 수 있습니다. 다가오는 안드로이드 12 풀어 주다. 실제로 우리가 대화를 나눈 한 OEM인 ASUS는 Android 12 업데이트에 이 API를 도입할 계획이라고 말했습니다. Google이 이 변경 사항을 OEM에 전달했는지는 알 수 없지만 더 많은 OEM이 이 변경 사항에 주목하기를 바랍니다. 타사 사용 경험을 개선하기 위해 Launcher3 포크에 API를 통합하기로 결정했습니다. 발사대.

그러나 작업은 여기서 끝나지 않습니다. 이 API를 포함시킨 후에도 타사 런처와 OEM 런처 간의 패리티를 달성하기 위해 수행해야 할 작업이 더 많습니다. 예를 들어 일부 OEM 장치는 홈 화면에 애니메이션이 표시되기 전에 사용자가 화면을 탭하면 깜박입니다. 때로는 선택한 타사 런처 앱 대신 시스템 런처 앱이 나타나는 경우도 있습니다(이러한 경우가 몇 번 있었습니다). 개선된 전환 애니메이션은 좋지만 런처 앱이나 최근 앱 화면의 버그를 처리하려는 사람은 아무도 없으므로 제스처 코드 스틸에는 정리 및/또는 표준화가 필요합니다.

이 기사에 도움을 준 Kevin Barry와 Peter Huber에게 감사드립니다!