İşte Nova Launcher'ın Google Pixel telefonlarda daha iyi çalışmasının nedeni

Google, Nova Launcher gibi üçüncü taraf başlatıcıların daha akıcı geçiş animasyonları göstermesine olanak tanıyan bir API ekledi. Artık yalnızca Pixel telefonlarda bu özellik var.

Geçmişte, üçüncü taraf başlatıcı uygulamaları çoğu Android telefonda bulunan standart başlatıcıya göre genellikle üstün bir deneyim sağlıyordu. En son uygulamalar ekranının yenilenmesi ve Android 9 Pie'da hareketlerin kullanıma sunulmasıyla birlikte, Bu yeni deneyimler stoklara entegre edildiğinden üçüncü taraf başlatıcılar dezavantajlı duruma düştü başlatıcı uygulaması. Zamanla Google, hareketleri kullanırken üçüncü taraf başlatıcı deneyiminin o kadar da kötü olmamasını sağlamaya çalıştı ve son zamanlarda bunda da başarılı olmaya başladılar.

Son birkaç ayda bir Google Pixel telefonunda yeni bir Nova Launcher beta sürümü kullandıysanız, hareketle gezinmeyi kullanırken akıcı animasyonları fark etmiş olabilirsiniz. Ne yazık ki Nova Launcher'ı başka bir cihazda kullanırken aynı animasyonları en azından şimdilik görmeyeceksiniz. Nedenini anlamak için öncelikle Nova Launcher gibi üçüncü taraf başlatıcıları Google'ın Pixel Launcher gibi hazır başlatıcılardan ayıran şeyin ne olduğunu kısaca açıklamamız gerekiyor.

Google, hareketle gezinmeyi ilk kez tanıttı Android 9 Pie'da. Hareketlerin olabildiğince akıcı olmasını sağlamak için Google'ın uygulama geçişlerinin kusursuz görünmesini sağlaması gerekiyordu. Ayrıca kullanıcıların son uygulamalar ekranından uygulama listesinin tamamına erişmesine izin vermek istiyorlardı. Bunların her ikisini de yapmak için Google, en son uygulamalar ekranını yöneten kodu Android'in ekranına taşımaya karar verdi. SystemUI'dan Launcher3'e, çoğu OEM stok başlatıcısının çatallandığı, Android'in açık kaynaklı başlatıcı uygulaması. Böylece Hızlı adım bileşeni doğdu ve ayrıcalıklı doğası nedeniyle Android yalnızca önceden yüklenmiş başlatıcı uygulamasının en son uygulama sağlayıcısı olarak ayarlanmasına izin veriyor. Bu olabilir root erişimiyle geçersiz kılındı Üçüncü taraf başlatıcının desteklemesi durumunda, ancak çoğu kullanıcı için bu, üçüncü taraf başlatıcı uygulamasının, hareketleri ve son uygulamalar ekranını yönetmek için her zaman standart başlatıcıya güveneceği anlamına gelir. Sonuç, çoğunuzun muhtemelen deneyimlediği gibi, akıcı ve kusursuz görünmeyen geçişlerle biraz sarsıntılı olabilir. Tabii bir Google Pixel telefonu kullanmıyorsanız.

Çoğu Google Pixel telefonunda, bir uygulamadan ana ekrana geçişin çok daha yerel görünmesini sağlamak için üçüncü taraf başlatıcıların kullanabileceği bir API bulunur. Gibi bazı üçüncü taraf başlatıcı uygulamaları Niagara Başlatıcısı ve yukarıda bahsedilen Nova Launcher bu API'den yararlanıyor, ancak ikincisi bunu yalnızca kendi kapsamına dahil ediyor geliştirilmekte olan v7 derlemeleri. Bu API kullanıldığında üçüncü taraf başlatıcı uygulaması, kullanıcı eve gitmek için kaydırma hareketini her gerçekleştirdiğinde QuickStep'ten bir amaç ve bir geri arama alır. Daha sonra üçüncü taraf başlatıcı, bir uygulama simgesinin üzerine simge durumuna küçültüldüğünde pencerenin nasıl canlandırılacağına dair hareket sistemine ipucu verebilir.

Başlatıcı geliştiricisinin izniyle, bunun Niagara Başlatıcı'da nasıl göründüğüne dair bir örnek 8bitpit:

Burada animasyonun neye benzediğini gösteren bir karşılaştırma var. ASUS ROG Telefon 5 Ve Google Piksel 4, her ikisi de Nova Launcher v7.0.25'i (yayınlandığı tarihteki en son beta sürümü) ve Android 11'i çalıştırıyor:

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

Şimdi şunu merak ediyor olabilirsiniz: Bu API, Google Pixel telefonlara özel mi? Cevap hayır, değil. API, Launcher3/QuickStep'in bir parçasıdır ve AOSP'de bulunabilir, herhangi bir OEM başlatıcı uygulamasına açık olduğu anlamına gelir. API iken Launcher3'e bağlıydı 21 Temmuz 2020'de dahili olarak öyle görünüyor ki AOSP ana şubesiyle birleştirildi Aralık ayında Android R QPR1 sürümüyle birlikte.

Nova Launcher ve Niagara Launcher'ın Google Pixel telefonlarda daha yerel hissetmesini sağlayan API.

Nova Launcher'ın geliştiricisi ve bu API'yi ilk fark edenlerden biri olan Kevin Barry, bize API'nin bir kısmından şüphelendiğini söyledi. OEM'lerin Launcher3 çatallarında bu API'yi kullanmamasının nedeni, Android 11'in piyasaya sürülmesinde biraz geç gelmesidir döngü. Büyük AOSP değişikliklerini birleştirmek oldukça çaba gerektiriyor ve Android R QPR1 güncellemesi kesinlikle bunlardan çoğunu içeriyordu. Geçmiş yıllarda, bu kod düşüşlerine "bakım sürümü" adını verirdik, ancak Google, OEM'lerden gelen geri dönüşlerden sonra artık bunları gerçekten yapmıyor (ya da ben öyle duydum). Bu nedenle popüler Android özel ROM'u LineageOS, en son sürümünü "LineageOS 18.1ROM'un ilk Android 11 sürümü yerine en son Android 11 kod tabanına dayandığını belirtmek için "LineageOS 18" yerine ".

Ayrıca bu API'ye yalnızca şu tarihten sonra Google Pixel telefonlarda erişilebildiğini de belirtmekte fayda var: Aralık Ayı Piksel Özellik DüşüşüBu, herkese açık Android R QPR1 sürümüyle örtüşüyor. Ve Pixel 2'nin almasına rağmen Aralık ayındaki son güncelleme, bu güncelleme Android R QPR1 kod tabanını içermiyordu; bu nedenle Nova Launcher v7 çalıştıran Pixel 2 sahipleri diğer Pixel'lerle aynı deneyime sahip değil. (Pixel 2 sahipleri, daha yeni bir Pixel cihazından API içeren Pixel Launcher'ın daha yeni bir sürümünü yan yana yükleyebilir, ancak kullanıcı raporları gösteriyor animasyon arada bir çalışsa bile hala hatalı. Bir hatırlatma olarak, Pixel Launcher, çoğu standart başlatıcı gibi Launcher3'ün üzerine kurulmuştur, ancak aynı zamanda Pixel'e özel bazı özellikleri de içerir.)

Peki bu API'nin diğer Android cihazlara eklenmesi için ne gerekecek? Maalesef buna kolay bir cevap yok çünkü her OEM'in kendi başlatıcı uygulamasını nasıl geliştirdiğini tam olarak bilmiyoruz. Nasıl verildiği göz önüne alındığında Google, tam ekran hareketle gezinmeyi sıkı bir şekilde kontrol ediyor, çoğu OEM'in hareketler ve/veya QuickStep ile ilgili kodu büyük ölçüde değiştirmediğinden şüpheleniyoruz. Bir OEM taahhüdü geri almak, kodu kırmak veya güncellemeyi reddetmek için yolunun dışına çıkmadığı sürece Launcher3'ü kullanıyorsanız, bu API'nin OEM başlatıcılarına her yeniden temellendiğinde eklendiğini görmeliyiz. yaklaşan Android 12 serbest bırakmak. Hatta konuştuğumuz OEM'lerden biri olan ASUS, bu API'yi Android 12 güncellemesinde getirmeyi planladıklarını söyledi. Google'ın bu değişikliği OEM'lere iletip iletmediğini bilmiyoruz ancak daha fazla OEM'in bu değişikliği fark edeceğini umuyoruz ve üçüncü taraf kullanım deneyimini geliştirmek için API'yi Launcher3 çatallarına dahil etmeye karar verin fırlatıcılar.

Ancak iş bununla bitmeyecek. Bu API'yi ekledikten sonra bile üçüncü taraf başlatıcılar ile OEM başlatıcılar arasında eşitliği sağlamak için yapılması gereken daha çok iş var. Örneğin, bazı OEM cihazları, kullanıcı ana ekrana bir animasyon gelmeden önce ekrana dokunduğunda titreşir. Bazen seçilen üçüncü taraf başlatıcı uygulaması yerine sistem başlatıcı uygulaması görünüyor (bu birkaç kez başıma geldi). Geliştirilmiş bir geçiş animasyonu güzel, ancak kimse başlatıcı uygulamasındaki veya son uygulamalar ekranındaki hatalarla uğraşmak istemiyor, bu nedenle hareket kodu hareketsizlerinin bir miktar temizliğe ve/veya standardizasyona ihtiyacı var.

Bu makaledeki yardımlarından dolayı Kevin Barry ve Peter Huber'a teşekkürler!