Android 11 AMA: Kayan ekran görüntüleri yok, uygulama başlatma işlemleri daha hızlı ve daha fazlası

Google'ın Android mühendislik ekibi, Android 11 hakkındaki soruları yanıtlamak için Reddit'te bir AMA düzenledi. İşte bir sonraki Android işletim sistemi sürümü hakkında öğrendiklerimiz.

Google dün yayınladı Android 11 Beta 2geliştiriciler için sonlandırılmış SDK, NDK, uygulamaya yönelik yüzeyler, platform davranışları ve SDK olmayan arayüzlere ilişkin kısıtlamalar getiriyor. Bugün Google, Reddit'in /r/AndroidDev topluluğunda Android 11 ile ilgili soruları yanıtlıyor geçen hafta soruları yanıtladıktan sonra. Google'ın AMA'sından (Bana Her Şeyi Sor) öğrendiğimiz her şeyin bir özetini burada bulabilirsiniz.

Android 11'in en çok beklenen özelliklerinden biri, işletim sistemi kurulduğunda kullanılamayacak 8 Eylül'de betadan çıkıyor: Ekran görüntülerinin kaydırılması. İlk olarak Android 11'de piyasaya sürülmesi planlanıyor, Google artık bu özelliğin "R için yeterli olmadığını" doğruladı. Android 11 Geliştirici Önizlemesi 1 ve sonraki tüm DP ve Beta sürümlerinde kayan ekran görüntüsü almak için bir yer tutucu düğme bulunur.

gizli bir geliştirici komutuyla manuel olarak ortaya çıktıancak düğmeye dokunulduğunda özelliğin "uygulanmadığını" belirten bir mesaj görüntülenir.

Android 11'in uygulanmayan kayan ekran görüntüsü düğmesi.

Bu özelliğin beta sürümde veya hatta kararlı sürümde yer alacağını umuyorduk, ancak görünen o ki bu gerçekleşmeyecek.

Yorum tartışmadan. Android mühendislik ekibindeyiz. Android Platformuna yapılan Android 11 güncellemeleri hakkında bize her şeyi sorun! (9 Temmuz'da başlıyor).

Bu haber anlaşılır bir şekilde bazı kullanıcıları üzecektir. Sonuçta birçok OEM bu özelliği yıllardır kendi yazılımlarında kullanıyor; peki Google'ın bunu Pixel telefonlara eklemesi neden bu kadar uzun sürüyor? Google'ın Sistem Kullanıcı Arayüzü ekibinden Dan Sandler'ın açıkladığı gibi sorun, Google'ın bunu doğru yapmak istemesidir. Bazı kayan ekran görüntüsü uygulamaları, basitçe bir kaydırmayı taklit eder ve ardından ekran hareket ettikçe birden fazla ekran görüntüsünü birleştirir. Android'de kullanıcı arayüzü otomasyonu ile daha önce ilgilendiyseniz, bunun her zaman işe yaramadığını bilirsiniz, çünkü Bay Sandler'ın da belirttiği gibi uygulamalar "bataklık standardında bir RecyclerView kullanabilir veya kendi OpenGL hızlandırmalı kaydırma motorunu uygulayabilir." Google bunu yapmayı planladığından beri Bu özelliği yalnızca Pixel akıllı telefonlar için değil, AOSP'nin bir parçası olarak tüm Android ekosistemi için uygulamaya koymaları gerekiyor. işe yarayacak Tümü uygulamalar ve yalnızca "belirli bir cihazda özenle seçilmiş bir veya iki uygulama" değil.

Çünkü özellikle ortaya çıkan zorluklar nedeniyle ekibin "sınırlı kaynaklarına odaklanması" gerekiyordu. Ekip, COVID-19 nedeniyle gelecekteki bir Android sürümü için kayan ekran görüntülerini arka plana koymaya karar verdi.

Kullanıcıları arka plan kısıtlamaları konusunda bilgilendirmek için yeni CDD gereksinimi

Pek çok Android OEM'in, özellikle de Çinli OEM'lerin, arka planda çalışan uygulamalar üzerinde agresif kısıtlamalara sahip olduğu bir sır değil. Bazı geliştiriciler, uygulamalarının arka planda kapatılmasından o kadar rahatsız oldular ki, bir araya gelerek "" adında bir web sitesi oluşturdular.Uygulamamı Öldürme" OEM'leri arka planda uygulama süreçlerini ne kadar kötü yönettiklerine göre sıralamak için. Aynı geliştiriciler yakın zamanda bir kıyaslama bile yaptı böylece kullanıcılar, cihazlarının arka planda uygulamaları ne kadar agresif bir şekilde sonlandırdığını test edebilir. Birçok OEM'in arka plan uygulama süreçlerini öldürmeyi sevmesinin nedeni karmaşıktır, ancak bence bu en iyi Redditor /u/ tarafından yapılan bu yorumda açıklanmaktadır.muhtemelen şüpheli. Yorum, Çin'de Android uygulama geliştirmenin karmaşık durumunu, Çinli teknoloji şirketlerinin nasıl çalıştığını özetlemektedir. işleri daha da karmaşık hale getirdiğini ve Google hizmetlerinin eksikliğinin devam eden sorunlara nasıl katkıda bulunduğunu karışıklık.

Ne olursa olsun, birçok uygulama geliştiricisi, Android platform davranışında yapılan bu ince ayarlar nedeniyle anlaşılır bir şekilde hayal kırıklığına uğradı ve bu da geliştiricilerin yorum yapmasına neden oldu Google'a bu konuda ne yaptıklarını sormak Reddit AMA'nın zirvesine. İşte Google'ın yanıtı:

Yorum tartışmadan. Android mühendislik ekibindeyiz. Android Platformuna yapılan Android 11 güncellemeleri hakkında bize her şeyi sorun! (9 Temmuz'da başlıyor).

Bu yanıttan çıkarılacak birkaç şey var. Öncelikle Google, OEM'lerin uyguladıkları arka plan uygulama kısıtlamaları konusunda kullanıcılara karşı daha şeffaf olmalarını istiyor. (Yayınlanmamış) Android 11 Uyumluluk Tanımı Belgesini (CDD) kontrol ettim ve Bölüm 3.5 - API Davranışsal Uyumluluğu için önerilen aşağıdaki eklemeyi buldum:

Cihaz uygulamaları, uygulamaları kısıtlamak için özel bir mekanizma uyguluyorsa ve bu mekanizma, AOSP'deki "Nadir" bekleme paketinden daha kısıtlayıcıysa:

[C-1-5] Uygulama kısıtlamaları bir uygulamaya otomatik olarak uygulanıyorsa kullanıcıları bilgilendirmelidir ZORUNLU. (YENİ) Bu tür bilgiler, bu kısıtlamaların uygulanmasından 24 saat önce SAĞLANMAMALIDIR.

(Not) Zorunlu Durdurmanın "Nadir"den daha kısıtlayıcı olduğu kabul edilir ve yeni 3.5.1/C-1-5 dahil olmak üzere 3.5.1 kapsamındaki tüm gereksinimlere uyması ZORUNLUDUR.

Temel olarak Google, OEM'lerin kendi kısıtlayıcı uygulama öldürme özelliklerini uygulamalarını engelleyecek pek bir şey değil. Yalnızca OEM'lerin, uygulama kısıtlamaları otomatik olarak uygulanıyorsa kullanıcıları bilgilendirmesini istiyorlar. Bir OEM, pil tüketen arka plan uygulamalarının çalışmasını durduracaklarını belirten bir iletişim kutusu gösterebilir. arka planda çalışır ve kullanıcı, arka planda gerçekten çalıştırmak istediği uygulamaları fark etmeden izin verebilir. etkilendim! Google, uygulamalarının arka planda beklenmedik bir şekilde sonlandırıldığı durumlarla ilgilenme sorumluluğunu geliştiricilere yüklüyor. Aslında Reddit yorumu yeni olanı vurgulamaya devam ediyor "uygulama sürecinden çıkış nedenleri" Geliştiricilere, uygulamalarının kullanıcı tarafından mı, işletim sistemi tarafından mı sonlandırıldığını, yoksa sadece çöküp çökmediğini bildirebilen API.

Öte yandan Google, nihayet OEM'lerin bazı ayrıcalıklı uygulamaların arka plandaki uygulama kısıtlamalarını atlamasına izin veren adil olmayan uygulamasına da değiniyor. Geliştiricinin bu Medium gönderisi Timothy Asiimwe WhatsApp, Facebook gibi uygulamalar hakkında ayrıntılara giriyor ve diğer uygulamalar, bazı OEM yazılımlarının sert arka plan kısıtlamalarından otomatik olarak muaf tutuluyor. Google, "cihaz üreticilerinin en iyi uygulamalar için izin verilenler listesi oluşturmamasını zorunlu kıldıklarını" söylüyor. Bunun nasıl uygulanacağını bilmiyoruz, ancak OEM'lerin, uygulamaları ne kadar büyük veya küçük olursa olsun, sonunda üçüncü taraf geliştiricilere eşit şartlarda davranmak zorunda kalacaklarını bilmek güzel öyle.

Son olarak Google, Android 11'in "uygulamaların hatalı davranarak kötü niyetli davranışlarını önlemek için ekstra önlemler eklediğini" ve OEM'lerin arka plan işlemlerini agresif bir şekilde öldürmesini daha az cazip hale getirdiğini de belirtiyor. Ancak şirket bu "ekstra önlemlerin" neleri gerektirdiği konusunda ayrıntılı bilgi vermedi.

Geliştirilmiş Cihazdan Cihaza Yedeklemeler

Geçen ay, Android 11'in belgelerinde şu şekilde bir değişiklik tespit ettik: Daha iyi yerel veri yedeklemeleri için destek ima edildi. Android 11'de, kullanıcı uygulama dosyalarının "cihazdan cihaza" geçişini başlattığında sistem, API düzeyi 30'u hedefleyen herhangi bir uygulama için izin Verme Manifest özelliğini göz ardı edecektir. Google çalışanı Eliot Stock, bu özelliğin, "Samsung'un mükemmel Smart Switch ürünü" gibi "telefon üreticilerinin cihazdan cihaza geçiş araçları oluşturmasını" çok daha kolay hale getirmeyi amaçladığını söylüyor. "uygulamaların kullanıcı açısından cihazlar arasında daha güvenilir bir şekilde aktarılmasını sağlamaya" yardımcı olun. Ne yazık ki bu, bulut tabanlı yedeklemeler için geçerli değil çünkü Google, "yazılım geliştiricilerine ne yapacakları konusunda kontrol vermek istiyor" Bu nedenle, Android 11, Google Play Hizmeti'nin yerleşik Google Drive'ı gibi herhangi bir bulut tabanlı yedekleme ve geri yükleme için izin Verme özelliğine saygı duymaya devam edecektir. destek olmak. Son olarak Google, uygulama başına 25 MB'lık yedekleme tavanının bazı geliştiriciler için yeterli olmayabileceğini kabul ediyor ve bu sorunu çözmenin yollarını arıyor. Ancak bir bilgisayara yerel yedekleme yapılması düşünülmüyor ve Google, yedekleme planını yineliyor adb yedeklemesini aşamalı olarak sonlandırın gelecekteki bir Android sürümünde.

Yorum tartışmadan. Android mühendislik ekibindeyiz. Android Platformuna yapılan Android 11 güncellemeleri hakkında bize her şeyi sorun! (9 Temmuz'da başlıyor).

Geliştiricilerin sürtünmesiz veri taşıma yöntemlerini uygulamaları teşvik edilir. yeni Block Store kütüphanesiGoogle Kimlik Hizmetleri Kitaplığı'nın bir parçası olan, geri yüklenen uygulamalarda oturum açmayı kolaylaştırmak için tasarlanmıştır yeni cihazlarda buluttan sağlanır ancak bunu uygulamak isteyip istememek geliştiricilere kalmıştır. kütüphane.

G/Ç İleri Okuma Süreci (IORap) ile Daha Hızlı Uygulama Başlatma Hızları

Google her zaman Android'deki performansı artırmanın yollarını deniyor. Android 10'a ekledikleri az bilinen özelliklerden biri, Uzmanlaşmamış Uygulama İşlem Havuzu (USAP) olarak adlandırılıyor. Bu özellik, uygulama başlatma işlemi sırasında Zygote'un çatallanmasını ortadan kaldırarak Pixel 2 cihazında ortalama uygulama başlatma hızında yaklaşık ~5 ms tasarruf sağlar. Bu özellik şu anda AOSP'de varsayılan olarak devre dışıdırve Google, eklenen bellek kullanımının hala test edilmesi gerektiğini açıklıyor. Daha da ilginci, Android 11'e gelen I/O Read Ahead Process (Giriş/Çıkış Okuma İleri Süreci) adı verilen yeni bir özelliktir.IORap). Google'a göre, bu özellik "%20 daha hızlı ulaşan kahraman vakalarla %5'ten daha hızlı soğuk başlatmalara" yol açacak. Bu özellik Uygulamanın başlatılmasını hızlandırmak için "başlatma işlemi sırasında uygulama yapıtlarını (kod ve kaynaklar gibi) önceden getirecek" hızlar.

Google ayrıca "önyükleme sınıfı yolunu ve sistem görüntüsünü optimize etmek için kullanılan profillerde iyileştirmeler yaptı" bu, uygulama performansını artıracak ve sistemle ilişkili bellek ve depolama maliyetini azaltacaktır eserler. Bu değişiklikler çoğunlukla daha yüksek miktarda RAM'e sahip cihazlara fayda sağlayacak, ancak Google, en fazla faydayı göreceğimiz yer için kesintinin ne olduğunu söylemedi.

Android 11'in Kapsamlı Depolama Alanı değişiklikleri - /İndirmelere erişim neden kısıtlandı?

Android 11'i hedefleyen ve harici üzerindeki belirli dizinlere erişim istemek için ACTION_OPEN_DOCUMENT_TREE amacını kullanan uygulamalar depolama artık kullanıcılardan harici depolamanın kök dizinine (/data/media/{user}) erişim isteyemeyecek, İndirme dizini (/data/media{user}/Download) veya harici depolama birimindeki (/Android/data veya) uygulamaya özel veri dizinlerinden herhangi biri /Android/obb). İndirme dizinine erişim neden kısıtlandı? Google Roxanna Aliabadi'ye göreBunun nedeni, indirme klasörünün "özel bilgilere sahip olma riski en yüksek olan klasör olmasıdır." Örnek olarak vergilerini indiren kullanıcılar İadeler veya banka ekstreleri, uygulamaların sürekli okuma erişimlerini kötüye kullanma olasılığı konusunda endişelenmemelidir. dizin. Google, belge seçicinin Android'in belirli klasörleri kısıtladığını belirtmek için "güncellenmiş metne" sahip olacağını söylüyor seçilecek." Bunun, uygulamaların belirli dizinlere neden erişmesine izin veremedikleri konusundaki kafa karışıklığını azaltacağını umuyoruz. artık değil.

Yakında yapılacak Kapsamlı Depolama ve Oynatma politikası değişiklikleri hakkında daha fazla bilgi için, bu makaleye bakın.

Çeşitli Konular

  • Google'ın köklendirme/modlama konusundaki tutumu
    • Google'ın AOSP ekibinden Jeff Bailey, şirketin tercihleri ​​destekleme konusundaki tutumunu yineliyor. Google, "Pixel serisi cihazların modlanmasının/köklendirilmesinin mümkün olmasını sağlamaya devam edecek" ancak aynı zamanda "OEM'lerin cihazlarına izin vermeme seçimini de destekleyecektir" Ayrıca Google, yazılım geliştiricilere, yazılımdaki son değişikliklere istinaden "yazılımlarının root erişimli cihazlarda çalışmasına izin vermeme" seçeneği sunuyor. SafetyNet Onaylama API'sinin yazılım kurcalanmasının tespiti.
  • "Aç ve varsayılana ayarla"ya ne oldu?
    • Android 10 yapıldı bir uygulamayı varsayılan işleyici olarak ayarlamak biraz sinir bozucu Google'ın söylediğine göre kullanıcıları "sömürücü uygulamalardan" korumak için belirli bağlantılar için. Google geri adım attı Bu değişikliği yeniden düşündükten sonra kullanıcıyı korumak için "perde arkasında bir takım değişiklikler" yaptık.
  • Kullanıcı arayüzünü oluşturmak için Vulkan Graphics API'yi mi kullanıyorsunuz?
    • Google sonunda kullanmayı planlıyor Kullanıcı arayüzünü oluşturmak için Vulkan Graphics API'siBu da bazı performans iyileştirmeleri sağlayacaktır. Bu hala değerlendiriliyorancak şirketin paylaşacak herhangi bir ayrıntısı yoktu.
  • Birçok cihazda CallScreeningService eksik
    • Android uygulamaları şunları uygulayabilir: Çağrı Tarama Hizmeti API'si yeni gelen ve giden aramaları keserek arayanı tanımlamalarına ve aramayı kabul etmelerine veya reddetmelerine olanak tanır. Bu resmi olarak belgelenmiş bir API olmasına rağmen geliştirici /u/'ye göre görünüşe göre pek çok OEM bunu düzgün bir şekilde uygulamayamıyor._zeromod_. Google onaylıyor Bu API'nin, tüm cihazların Android uyumlu olarak değerlendirilmesi için geçmesi gereken otomatik bir test paketi olan Uyumluluk Test Paketi (CTS) tarafından doğrulandığını. Sebep ne olursa olsun, bu API, Huawei, Vivo, Xiaomi veya Samsung gibi OEM'lerin cihazlarında çağrıldığında null değerini döndürür; dolayısıyla bu OEM'lerin yazılımlarında bir hata olması muhtemeldir.
  • Ses eklentisi çerçevesi için plan yok
    • Bir geliştirici Google'a, Apple'ın Ses Birimleri gibi bir ses eklentisi çerçevesi uygulamayı planlayıp planlamadıklarını sordu ancak cevap yakın gelecekte gerçekleşmesinin pek mümkün olmadığıdır.

Android mühendislik ekibinin tüm yanıtlarını okuyabilirsiniz Burada. Ekip birkaç yorumda Java, Kotlin, Android derleme sistemi, CameraX API ve diğer konular hakkında biraz konuşuyor. Wear OS, Android TV ve Android Auto hakkında da çeşitli yorumlar var ancak Google çoğunlukla bunu yineliyor Bu platformlardaki mevcut çalışmalarını ve geliştiricilere, bu süreç boyunca daha fazla bilgi için bizi takip etmeye devam etmelerini söyler. "Telefonların Ötesinde Android"10 Ağustos'ta başlayan hafta.