Android 7.0 Nougat, kullanıcılar ve geliştiriciler için bir dizi yeni özellik ve işlev sunuyor. Bu dokümanda, geliştiriciler için yenilikler vurgulanmaktadır.
Platform değişikliklerinin uygulamalarınızı etkileyebileceği alanlar hakkında bilgi edinmek için Android 7.0 davranış değişikliklerine göz atın.
Android 7.0'ın tüketici özellikleri hakkında daha fazla bilgi edinmek için www.android.com adresini ziyaret edin.
Çoklu Pencere Desteği
Android 7.0'da, çok istenen yeni bir çoklu görev özelliği olan çoklu pencere desteğini platforma sunuyoruz.
Kullanıcılar artık ekranda aynı anda iki uygulamayı açabilir.
- Android 7.0 çalıştıran telefon ve tabletlerde kullanıcılar, bölünmüş ekran modunda iki uygulamayı yan yana veya birbirinin üzerinde çalıştırabilir. Kullanıcılar uygulamaların arasındaki ayırıcıyı sürükleyerek uygulamaları yeniden boyutlandırabilir.
- Android TV cihazlarında uygulamalar kendilerini pencere içinde pencere moduna alabilir. Bu sayede, kullanıcı diğer uygulamalara göz atarken veya diğer uygulamalarla etkileşimde bulunurken içerik göstermeye devam edebilirler.
![Bölünmüş ekran modunda çalışan mobil uygulamalar](https://developer.android.google.cn/static/images/android-7.0/mw-portrait.png?authuser=4&hl=tr)
Şekil 1. Bölünmüş ekran modunda çalışan uygulamalar.
Çoklu pencere desteği, özellikle tabletlerde ve daha büyük ekranlı diğer cihazlarda kullanıcılarla etkileşime girmek için yeni yollar sunar. Uygulamanızda sürükle ve bırak özelliğini etkinleştirerek kullanıcıların, içeriği uygulamanıza veya uygulamanızdan kolayca sürükleyip bırakmasını sağlayabilirsiniz. Bu, kullanıcı deneyiminizi geliştirmenin harika bir yoludur.
Uygulamanıza çoklu pencere desteği eklemek ve uygulamanın birden fazla pencereli ekranı nasıl işleyeceğini yapılandırmak çok kolaydır. Örneğin, etkinliğinizin izin verilen minimum boyutlarını belirleyebilir, böylece kullanıcıların etkinliği bu boyutun altındaki değerleri yeniden boyutlandırmasını engelleyebilirsiniz. Ayrıca, uygulamanız için çok pencereli görünümü devre dışı bırakabilirsiniz. Bu, sistemin uygulamanızı yalnızca tam ekran modunda göstermesini sağlar.
Daha fazla bilgi için Çoklu Pencere Desteği geliştirici belgelerine bakın.
Bildirim Geliştirmeleri
Android 7.0'da bildirimleri daha kolay ve daha hızlı kullanabilmeniz için yeniden tasarladık. Değişikliklerden bazıları şunlardır:
- Şablon güncellemeleri: Lokomotif resim ve avatara tekrar ağırlık verecek şekilde bildirim şablonlarını güncelliyoruz. Geliştiriciler, kodlarında çok az düzenleme yaparak yeni şablonlardan yararlanabilecek.
-
Mesajlaşma stilini özelleştirme:
MessagingStyle
sınıfını kullanarak bildirimlerinizle ilişkili daha fazla kullanıcı arayüzü etiketini özelleştirebilirsiniz. Mesajı, ileti dizisi başlığını ve içerik görünümünü yapılandırabilirsiniz. - Gruplandırılmış bildirimler: Sistem, mesajları birlikte gruplandırabilir (örneğin, mesaj konusuna göre) ve grubu görüntüleyebilir. Kullanıcılar, bu iletiler için Kapatma veya Arşivle gibi işlemler gerçekleştirebilir. Android Wear için bildirimleri uyguladıysanız bu modele zaten aşinasınız demektir.
- Doğrudan yanıt: Android sistemi, gerçek zamanlı iletişim uygulamalarında satır içi yanıtları destekler. Böylece kullanıcılar bir SMS veya kısa mesaja doğrudan bildirim arayüzünden hızla yanıt verebilir.
- Özel görünümler: İki yeni API, bildirimlerde özel görünümler kullanırken bildirim başlıkları ve işlemler gibi sistem süslemelerinden yararlanmanızı sağlar.
![Gruplandırılmış ileti bildirimlerini gösteren mobil cihaz](https://developer.android.google.cn/static/images/android-7.0/notifications-1.png?authuser=4&hl=tr)
![Tek mesaj bildirimi gösteren mobil cihaz](https://developer.android.google.cn/static/images/android-7.0/notifications-3.png?authuser=4&hl=tr)
![Bildirim arayüzünde satır içi mesaj yanıtını gösteren mobil cihaz](https://developer.android.google.cn/static/images/android-7.0/notifications-2.png?authuser=4&hl=tr)
2. Şekil. Gruplandırılmış bildirimler ve doğrudan yanıt.
Yeni özellikleri nasıl uygulayacağınızı öğrenmek için Bildirimler kılavuzuna bakın.
Profil Rehberli JIT/AOT Derlemesi
Android 7.0'da, ART'a kod profili çıkarma özelliğine sahip Just in Time (JIT) derleyicisi ekledik. Bu derleyici, Android uygulamalarının çalışırken performansını sürekli olarak iyileştirmeyi sağlıyor. JIT derleyicisi, ART'ın mevcut Ahead of Time (AOT) derleyicisini tamamlar ve çalışma zamanı performansını iyileştirmeye, depolama alanından tasarruf sağlamaya, uygulama güncellemeleri ve sistem güncellemelerini hızlandırmaya yardımcı olur.
Profil rehberliğinde yapılan derleme, ART'ın her uygulamanın AOT/JIT derlemesini gerçek kullanımına ve cihazdaki koşullara göre yönetmesine olanak tanır. Örneğin, ART her uygulamanın popüler yöntemlerini içeren bir profil tutar ve en iyi performansı elde etmek için bu yöntemleri önceden derleyip önbelleğe alabilir. Uygulamanın diğer bölümlerini gerçekten kullanılana kadar derlenmemiş halde bırakır.
Profil yönlendirmeli derleme, uygulamanın önemli parçalarının performansını iyileştirmenin yanı sıra ilişkili ikili programlar da dahil olmak üzere uygulamanın toplam RAM ayak izini azaltmaya yardımcı olur. Bu özellik özellikle düşük bellek kapasiteli cihazlarda önemlidir.
ART, profil yönlendirmeli derlemeyi, cihazın pili üzerindeki etkiyi en aza indirecek şekilde yönetir. Yalnızca cihaz boşta kalıp şarj olurken önceden derleme yaparak bu işlemi önceden yaparak zaman ve pil tasarrufu yapar.
Uygulama Yüklemeye Hızlı Yol
ART'ın JIT derleyicisinin en somut avantajlarından biri, uygulama yükleme işlemlerinin ve sistem güncellemelerinin hızıdır. Optimize edilmesi ve Android 6.0'da yüklenmesi birkaç dakika süren büyük uygulamalar bile artık birkaç saniye içinde yüklenebiliyor. Ayrıca, başka optimizasyon adımı olmadığından sistem güncellemeleri de daha hızlıdır.
Hareket Halinde Doz...
Android 6.0, cihaz boşta kaldığında (örneğin masa üzerinde veya çekmecedeyken) uygulamaların CPU ve ağ etkinliklerini erteleyerek pil tasarrufu sağlayan bir sistem modu olan Doz'u kullanıma sundu.
Doz artık Android 7.0'da bir adım daha ileri giderek hareket halindeyken pil tasarrufu sağlar. Ekran bir süreliğine kapalı olduğunda ve cihaz fişe takılı olmadığında Doz, uygulamalara bilinen CPU ve ağ kısıtlamalarının bir alt kümesini uygular. Böylece kullanıcılar cihazlarını ceplerinde taşırken bile pilden tasarruf edebilirler.
![Doz'un, pil ömrünü iyileştirmek için sistem etkinliği kısıtlamalarının ilk düzeyini nasıl uyguladığını gösteren resim](https://developer.android.google.cn/static/images/android-7.0/doze-diagram-1.png?authuser=4&hl=tr)
3. Şekil. Doz, artık cihaz sabit değilken bile pil ömrünü uzatmak için kısıtlamalar uyguluyor.
Cihaz pille çalışırken ekran kapandıktan kısa bir süre sonra Doz, ağ erişimini kısıtlar ve işlerin ve senkronizasyonların ertelenmesini sağlar. Kısa bakım dönemleri sırasında uygulamalara ağ erişimine izin verilir ve ertelenen işleri/senkronizasyonları yürütülür. Ekranı açmak veya fişe takmak, cihaz Doz'dan çıkar.
Cihaz bir süre boyunca ekran kapalı ve pil açık durumdayken tekrar hareketsiz kalırsa Doz, PowerManager.WakeLock
, AlarmManager
alarmları ve GPS/Kablosuz taramaları için tam CPU ve ağ kısıtlamalarını uygular.
Cihaz hareket halinde olsun ya da olmasın, uygulamanızı Doz'a uyarlamayla ilgili en iyi uygulamalar aynıdır. Bu nedenle, uygulamanızı Doz'u düzgün bir şekilde işleyecek şekilde güncellediyseniz hazırsınız demektir. Öyle değilse hemen uygulamanızı Doz'a uyarlamaya başlayın.
Svelte Projesi: Arka Plan Optimizasyonları
Project Svelte, ekosistemdeki çeşitli Android cihazlar genelinde sistem ve uygulamaların RAM kullanımını en aza indirmek için devam eden bir çalışmadır. Android 7.0'da Project Svelte, uygulamaların arka planda çalışma şeklini optimize etmeye odaklanmıştır.
Arka planda işleme, çoğu uygulamanın temel bir parçasıdır. Doğru kullanıldığında kullanıcı deneyiminizi anında, hızlı ve bağlama duyarlı hale getirebilir. Doğru şekilde işlenmezse arka planda işleme, gereksiz şekilde RAM (ve pil) tüketebilir ve diğer uygulamaların sistem performansını etkileyebilir.
JobScheduler
, Android 5.0'dan beri arka planda çalışmayı kullanıcılar için iyi bir şekilde gerçekleştirmek için tercih edilen yöntemdir. Uygulamalar, sistemin bellek, güç ve bağlantı koşullarına göre optimizasyon yapmasına izin verirken işleri planlayabilir. JobScheduler hem kontrol hem de
basitlik sağlar ve tüm uygulamaların bunu kullanmasını istiyoruz.
Bir diğer iyi seçenek de Google Play Hizmetleri'nin bir parçası olan
GCMNetworkManager
. Bu hizmet, Android'in eski sürümleriyle uyumlulukla benzer iş planlaması sunar.
Daha fazla kullanım alanı için JobScheduler
ve GCMNetworkManager
kullanım alanlarını genişletmeye devam ediyoruz. Örneğin, Android 7.0'da artık İçerik Sağlayıcılardaki değişikliklere göre arka plan çalışması planlayabilirsiniz. Aynı zamanda, özellikle düşük bellek kapasiteli cihazlarda sistem performansını azaltabilecek eski kalıpların bazılarını kullanımdan kaldırmaya başlıyoruz.
Android 7.0'da, yaygın olarak kullanılan üç örtülü yayını (CONNECTIVITY_ACTION
, ACTION_NEW_PICTURE
ve ACTION_NEW_VIDEO
) kullanımdan kaldırıyoruz. Bu yayınlar, aynı anda birden fazla uygulamanın arka plan işlemlerini uyandırabileceği ve hem bellek hem de pili zorlayabildiği için. Uygulamanız bunları alıyorsa JobScheduler
ve ilgili API'lere geçiş yapmak için Android 7.0'dan yararlanın.
Ayrıntılar için Arka Plan Optimizasyonları dokümanlarına göz atın.
Yüzey Görünümü
Android 7.0, eşzamanlı hareketi SurfaceView
sınıfına taşıyarak belirli durumlarda TextureView
uygulamasından daha iyi pil performansı sağlar: Video veya 3D içerik oluştururken, kaydırma ve animasyonlu video konumu içeren uygulamalar SurfaceView
ile TextureView
ile daha az güç kullanır.
SurfaceView
sınıfı, uygulama penceresi içeriğinden ayrı olarak özel donanımda bir araya getirildiği için ekranda daha fazla pil verimli birleştirme sağlar. Sonuç olarak, TextureView
oranından daha az ara kopya oluşturur.
Bir SurfaceView
nesnesinin içerik konumu, artık kapsayıcı uygulama içeriğiyle eşzamanlı olarak güncellenir. Bu değişikliğin bir sonucu olarak, SurfaceView
içinde oynatılan bir videonun basit çevirileri veya ölçekleri artık görüntü hareket ederken görünümün yanında siyah çubuklar üretmez.
Android 7.0 ile başlayarak, TextureView
yerine SurfaceView
kullanarak güç tasarrufu yapmanızı önemle tavsiye ederiz.
Veri tasarrufu
![Ayarlar'da Veri Tasarrufu](https://developer.android.google.cn/static/images/android-7.0/datasaver.png?authuser=4&hl=tr)
4. Şekil. Ayarlar'da Veri Tasarrufu'na gidin.
Bir mobil cihazın kullanım ömrü boyunca, hücresel veri planının maliyeti genellikle cihazın kendi maliyetini aşar. Hücresel veri, birçok kullanıcı için tasarruf etmek istedikleri pahalı bir kaynaktır.
Android 7.0'da, dolaşımda, faturalandırma döneminin sonuna yaklaşırken veya ön ödemeli küçük bir veri paketi kullanan uygulamaların hücresel veri kullanımını azaltmaya yardımcı olan yeni bir sistem hizmeti olan Veri Tasarrufu modu kullanıma sunuluyor. Veri Tasarrufu, kullanıcılara uygulamaların hücresel veriyi kullanma şeklini kontrol etme olanağı sunar ve Veri Tasarrufu açıkken geliştiricilerin daha verimli hizmet sunmalarına olanak tanır.
Kullanıcı, Ayarlar'da Veri Tasarrufu'nu etkinleştirdiğinde, cihaz sayaçlı bir ağda olduğunda sistem arka plan veri kullanımını engeller ve mümkün olduğunda uygulamaların ön planda daha az veri kullanması için sinyal gönderir. Örneğin, akış için bit hızını sınırlandırabilir, görüntü kalitesini düşürebilir, iyimser önbelleğe almayı erteleyebilir vb. Kullanıcılar, Veri Tasarrufu açık olduğunda bile belirli uygulamaların arka planda ölçülen veri kullanımına izin vermesine izin verebilir.
Android 7.0, ConnectivityManager
kapsamını genişleterek uygulamalara kullanıcının Veri Tasarrufu tercihlerini alma ve tercih değişikliklerini izleme imkanı sağlar. Tüm uygulamalar, kullanıcının Veri Tasarrufu'nu etkinleştirip etkinleştirmediğini kontrol etmeli ve ön plan ile arka plan veri kullanımını sınırlamaya çalışmalıdır.
Vulkan API'sı
Yeni bir 3D oluşturma API'si olan VulkanTM, Android 7.0'da platforma entegre edildi. OpenGLTM ES gibi Vulkan da Khronos Group tarafından yönetilen bir 3D grafik ve oluşturma açık standardıdır.
Vulkan, sürücüdeki CPU ek yükünü en aza indirecek ve uygulamanızın GPU işlemini daha doğrudan kontrol edebilmesini sağlayacak şekilde sıfırdan tasarlanmıştır. Ayrıca Vulkan, komut arabelleği oluşturma gibi birden fazla iş parçacığının aynı anda çalışmasına olanak tanıyarak daha iyi paralel yapma olanağı da sunar.
Vulkan geliştirme araçları ve kitaplıkları, Android 7.0 SDK'sında kullanıma sunuldu. Bunlardan bazıları:
- Üstbilgiler
- Doğrulama katmanları (hata ayıklama kitaplıkları)
- SPIR-V gölgelendirici derleyici
- SPIR-V çalışma zamanı gölgelendirici derleme kitaplığı
Vulkan yalnızca Nexus 5X, Nexus 6P ve Nexus Player gibi Vulkan özellikli donanıma sahip cihazlardaki uygulamalarda kullanılabilir. Vulkan'ı mümkün olan en kısa sürede daha fazla cihazda kullanıma sunmak için iş ortaklarımızla yakın işbirliği içinde çalışıyoruz.
Daha fazla bilgi için API dokümanlarına bakın.
Hızlı Ayar Kutu API'sı
![Bildirim gölgesindeki Hızlı Ayar blokları](https://developer.android.google.cn/static/images/android-7.0/quicksettings.png?authuser=4&hl=tr)
5.Şekil Bildirim gölgesindeki Hızlı Ayar blokları.
Hızlı Ayarlar, temel ayarları ve işlemleri doğrudan bildirim gölgesinden göstermenin popüler ve basit bir yoludur. Android 7.0'da, Hızlı Ayarlar'ın kapsamını daha da yararlı ve kullanışlı hale getirdik.
Ek Hızlı Ayar blokları için daha fazla alan ekledik. Bu sayede kullanıcılar, sayfayı sola veya sağa kaydırarak sayfalara ayrılmış bir görüntüleme alanından erişebilir. Ayrıca, kullanıcılara hangi Hızlı Ayar karolarının ve nerede görüntüleneceklerini denetleme olanağı sağladık. Kullanıcılar kartları sürükleyip bırakarak ekleyebilir veya taşıyabilir.
Android 7.0'da, geliştiricilerin uygulamanızdaki önemli kontrollere ve işlemlere kolayca erişebilmesi için kendi Hızlı Ayarlar bloklarınızı tanımlamanızı sağlayan yeni bir API de eklenmiştir.
Hızlı Ayar blokları, acilen gerekli olan veya sık kullanılan kontroller ya da işlemler için ayrılmıştır ve bir uygulama başlatmak için kısayol olarak kullanılmamalıdır.
Karolarınızı tanımladıktan sonra, kullanıcılara gösterebilirsiniz. Kullanıcılar bunları sürükleyip bırakarak Hızlı Ayarlar'a ekleyebilir.
Uygulama kutusu oluşturma hakkında bilgi için Tile
referans belgelerine bakın.
Numara Engelleme
Android 7.0 artık platformda numara engellemeyi destekliyor ve servis sağlayıcıların engellenen numaralar listesi tutmalarına olanak tanıyan bir çerçeve API'si sunuyor. Varsayılan SMS uygulaması, varsayılan telefon uygulaması ve operatör uygulamaları, engellenen numaralar listesinden veri okuyup yazabilir. Diğer uygulamalar listeye erişemez.
Android, numara engellemeyi platformun standart bir özelliği haline getirerek uygulamaların çok çeşitli cihazlarda numara engellemeyi desteklemesi için tutarlı bir yol sağlar. Uygulamaların yararlanabileceği diğer avantajlar arasında şunlar yer alır:
- Aramalarda engellenen numaralar kısa mesajlarda da engellenir
- Engellenen numaralar, Yedekleme ve Geri Yükleme özelliği aracılığıyla yapılan sıfırlama işlemlerinde ve cihazlarda kullanılmaya devam edebilir.
- Aynı engellenen numaralar listesini birden fazla uygulama kullanabilir
Buna ek olarak, Android üzerinden operatör uygulaması entegrasyonu, operatörlerin cihazdaki engellenen numaralar listesini okuyabilmesi ve istenmeyen çağrıların ve kısa mesajların kullanıcıya VOIP uç noktası veya yönlendirme telefonları gibi herhangi bir aracı üzerinden ulaşmasını önlemek amacıyla kullanıcı için hizmet tarafı engelleme gerçekleştirebilmesi anlamına gelir.
Daha fazla bilgi için BlockedNumberContract
referans dokümanlarına bakın.
Arama Süzme
Android 7.0, varsayılan telefon uygulamasının gelen aramaları filtrelemesine olanak tanır. Telefon uygulaması bunu yapmak için yeni CallScreeningService
API'sini kullanır. Bu sayede telefon uygulaması, bir gelen aramanın Call.Details
özelliğine göre çeşitli işlemler gerçekleştirebilir. Örneğin:
- Gelen aramayı reddet
- Çağrı kaydına yapılan çağrıya izin verme
- Arama için kullanıcıya bildirim gösterme
Daha fazla bilgi için CallScreeningService
referans dokümanlarına bakın.
Çoklu Yerel Ayar Desteği, Daha Fazla Dil
Android 7.0, iki dilli kullanım alanlarını daha iyi desteklemek için kullanıcıların artık Ayarlar'da birden fazla yerel ayar seçmesine olanak tanıyor. Uygulamalar, kullanıcının seçtiği yerel ayarları almak için yeni bir API kullanıp ardından birden çok dil konuşan kullanıcılara daha gelişmiş kullanıcı deneyimleri sunabilir. Örneğin, arama sonuçlarını birden fazla dilde gösterebilir ve web sayfalarını kullanıcının bildiği bir dildeki çevirisini teklif etmeyebilir.
Android 7.0, çoklu yerel ayar desteğiyle birlikte kullanıcılara sunulan dil yelpazesini de genişletir. İngilizce, İspanyolca, Fransızca ve Arapça gibi yaygın olarak kullanılan diller için her biri 25'ten fazla lehçe sunar. Ayrıca 100'den fazla yeni dil için kısmi destek de ekliyor.
Uygulamalar, LocaleList.GetDefault()
numaralı telefonu arayarak kullanıcı tarafından belirlenen yerel ayarların listesini alabilir. Android 7.0, giderek artan yerel ayarları desteklemek için kaynakları çözümleme şeklini değiştiriyor. Uygulamalarınızın yeni kaynak çözümleme mantığıyla beklendiği gibi çalıştığını test edip doğruladığınızdan emin olun.
Yeni kaynak çözümleme davranışı ve izlemeniz gereken en iyi uygulamalar hakkında bilgi edinmek için Çok Dilli Destek bölümüne bakın.
Yeni Emoji'ler
Android 7.0'da, ten rengi emojileri ve varyasyon seçici desteği de dahil olmak üzere ek emojiler ve emojiyle ilgili özellikler sunulmaktadır. Uygulamanız emojileri destekliyorsa emojilerle ilgili bu özelliklerden yararlanmak için aşağıdaki yönergeleri uygulayın.
-
Cihazı eklemeden önce emoji içerip içermediğini kontrol edin.
Sistem yazı tipinde hangi emojilerin olduğunu kontrol etmek için
hasGlyph(String)
yöntemini kullanın. - Emojilerin, varyasyon seçicileri destekleyip desteklemediğini kontrol edin. Varyasyon seçiciler, belirli emojileri renkli veya siyah beyaz olarak sunmanıza olanak tanır. Mobil cihazlardaki uygulamalar emojileri siyah beyaz yerine renkli olarak göstermelidir. Ancak uygulamanız emojileri metinle satır içi olarak görüntülüyorsa siyah-beyaz varyasyonunu kullanmalıdır. Bir emojinin varyasyonu olup olmadığını belirlemek için varyasyon seçiciyi kullanın. Varyasyonlarıyla ilgili karakterlerin tam listesi için varyasyonlarla ilgili Unicode belgelerinin emoji varyasyon dizileri bölümünü inceleyin.
-
Emojilerin cilt tonunu desteklediğinden emin olun. Android 7.0, kullanıcıların emojilerin oluşturulan cilt tonunu tercihlerine göre değiştirmelerine olanak tanır. Klavye uygulamaları, birden fazla ten rengine sahip emoji'ler için görsel işaretler sağlamalı ve kullanıcıların tercih ettikleri cilt tonunu seçmelerine izin vermelidir. Cilt tonu değiştiricisi olan sistem emojilerini belirlemek için
hasGlyph(String)
yöntemini kullanın. Hangi emojilerin cilt tonlarını kullandığını Unicode belgelerini okuyarak belirleyebilirsiniz.
Android'deki ICU4J API'leri
Android 7.0, artık Android çerçevesindeki android.icu
paketi kapsamında, ICU4J API'lerinin bir alt kümesini sunuyor. Taşıma işlemi kolaydır ve çoğunlukla com.java.icu
ad alanından android.icu
olarak değiştirilmesini gerektirir. Uygulamalarınızda zaten ICU4J paketi kullanıyorsanız Android çerçevesinde sağlanan android.icu
API'lerine geçmek APK boyutunda önemli tasarruflar sağlayabilir.
Android ICU4J API'leri hakkında daha fazla bilgi edinmek için ICU4J Desteği sayfasına göz atın.
Web Görünümü
Chrome + Web Görünümü, Birlikte
Android 7.0 ve sonraki sürümlerde Chrome sürüm 51'den itibaren Android Sistem Web Görünümleri'ni sağlamak ve oluşturmak için cihazınızdaki Chrome APK kullanılır. Bu yaklaşım, cihazın kendisindeki bellek kullanımını iyileştirir ve WebView'u güncel tutmak için gereken bant genişliğini azaltır (çünkü, Chrome etkin kaldığı sürece bağımsız Web Görünümü APK'sı artık güncellenmez).
Geliştirici Seçenekleri'ni etkinleştirip Web Görünümü uygulaması'nı seçerek Web Görünümü sağlayıcınızı belirleyebilirsiniz. Web Görünümü uygulaması işlevini yerine getirmek için cihazınıza yüklü herhangi bir uyumlu Chrome sürümünü (Dev, Beta veya Kararlı) ya da bağımsız Web Görünümü APK'sını kullanabilirsiniz.
Çoklu işlem
"Çoklu İşlem Web Görünümü" geliştirici seçeneği etkin olduğunda Web Görünümü, Android 7.0'daki Chrome sürüm 51'den itibaren web içeriğini korumalı alana alınmış ayrı bir işlemde çalıştıracaktır.
Android'in gelecekteki bir sürümünde çoklu işlem WebView'u etkinleştirmeden önce N'de uyumluluk ve çalışma zamanı performansı ile ilgili geri bildirim istiyoruz. Bu sürümde başlatma süresindeki regresyonlar, toplam bellek kullanımı ve yazılım oluşturma performansı beklenmektedir.
Çok işlemli modda beklenmedik sorunlarla karşılaşırsanız bunları öğrenmek isteriz. Lütfen Chromium hata izleyici hakkında Web Görünümü ekibiyle iletişime geçin.
Sayfa yüklenmeden önce JavaScript çalıştırma
Android 7.0'ı hedefleyen uygulamalardan başlayarak, yeni bir sayfa yüklendiğinde JavaScript bağlamı sıfırlanacaktır. Şu anda bağlam, yeni bir Web Görünümü örneğinde yüklenen ilk sayfa için aktarılmaktadır.
Web Görünümü'ne JavaScript eklemek isteyen geliştiriciler, komut dosyasını sayfa yüklenmeye başladıktan sonra çalıştırmalıdır.
Güvenli olmayan kaynaklarda coğrafi konum
Android 7.0'ı hedefleyen uygulamalardan başlayarak, coğrafi konum API'sine yalnızca güvenli kaynaklarda (HTTPS üzerinden) izin verilecektir. Bu politika, güvenli olmayan bir bağlantı kullanan kullanıcıların özel bilgilerini korumak için tasarlanmıştır.
WebView Beta ile test etme
Web Görünümü düzenli olarak güncellendiğinden, Web Görünümü'nün beta kanalını kullanarak uygulamanızla uyumluluğu sık sık test etmenizi öneririz. Android 7.0'da Web Görünümü'nün yayın öncesi sürümlerini test etmeye başlamak için Chrome Dev veya Chrome Beta'yı indirip yükleyin ve yukarıda açıklandığı gibi geliştirici seçenekleri altında Web Görünümü uygulaması olarak seçin. Web Görünümü'nün yeni sürümü yayınlanmadan önce sorunları düzeltebilmemiz için lütfen sorunları Chromium hata izleyici aracılığıyla bildirin.
OpenGLTM ES 3.2 API'sı
Android 7.0, OpenGL ES 3.2 için aşağıdakiler de dahil olmak üzere çerçeve arayüzleri ve platform desteği ekler:
-
EXT_texture_sRGB_decode
hariç Android Uzantı Paketi'ndeki (AEP) tüm uzantılar. - HDR ve ertelenmiş gölgelendirme için kayan noktalı çerçeve arabellekleri.
- BaseVertex çizim çağrıları, daha iyi toplu işlem ve akış sağlamak için kullanılır.
- WebGL ek yükünü azaltmak için güçlü arabellek erişim denetimi.
Android 7.0'da OpenGL ES 3.2 için çerçeve API'si GLES32
sınıfıyla sağlanır. OpenGL ES 3.2 kullanırken, <uses-feature>
etiketini ve android:glEsVersion
özelliğini kullanarak manifest dosyanızda bu gereksinimi beyan ettiğinizden emin olun.
Çalışma zamanında cihazın desteklenen OpenGL ES sürümünün nasıl kontrol edileceği de dahil olmak üzere OpenGL ES'yi kullanma hakkında bilgi için OpenGL ES API kılavuzuna bakın.
Android TV'de Kayıt
Android 7.0'a yeni kayıt API'leri aracılığıyla Android TV giriş hizmetlerinden içerik kaydetme ve oynatma özelliği eklendi. TV giriş hizmetleri, mevcut zaman değiştirme API'lerinin yanı sıra hangi kanal verilerinin kaydedilebileceğini ve kaydedilen oturumların nasıl kaydedileceğini kontrol edebilir ve kullanıcıların kaydedilen içerikle etkileşimini yönetebilir.
Daha fazla bilgi için Android TV Kayıt API'leri bölümüne bakın.
Android for Work
Android for Work, Android 7.0 çalıştıran cihazlar için birçok yeni özellik ve API ekler. Bazı öne çıkan özellikleri aşağıda bulabilirsiniz. Özelliklerin tam listesi için Android Enterprise özellik listesini inceleyin.
İş profili güvenlik sorgulaması
N SDK'sını hedefleyen profil sahipleri, iş profilinde çalışan uygulamalar için ayrı bir güvenlik sorgulaması belirtebilir. Kullanıcı herhangi bir iş uygulamasını açmayı denediğinde iş sorgulaması gösterilir. Güvenlik sorgulaması başarıyla tamamlandığında iş profilinin kilidi açılır ve gerekiyorsa şifresi çözülür. Profil sahipleri için ACTION_SET_NEW_PASSWORD
, kullanıcıdan iş sorgulaması, ACTION_SET_NEW_PARENT_PROFILE_PASSWORD
de kullanıcıdan cihaz kilidi ayarlamasını ister.
Profil sahipleri, setPasswordQuality()
, setPasswordMinimumLength()
ve ilgili yöntemleri kullanarak iş sorgulaması için farklı şifre kodu politikaları belirleyebilir (ör. PIN'in ne kadar olması gerektiği veya profilin kilidini açmak için parmak izinin kullanılıp kullanılamayacağı gibi). Profil sahibi, yeni getParentProfileInstance()
yöntemi tarafından döndürülen DevicePolicyManager
örneğini kullanarak cihaz kilidini de ayarlayabilir.
Ayrıca profil sahipleri, yeni setOrganizationColor()
ve setOrganizationName()
yöntemlerini kullanarak iş meydan okuması için kimlik bilgileri ekranını özelleştirebilir.
İş modunu devre dışı bırakın
Kullanıcılar, iş profili olan bir cihazda çalışma moduna geçebilir. İş modu kapalıyken yönetilen kullanıcı geçici olarak kapatılır. Bu durumda, iş profili uygulamaları, arka planda senkronizasyon ve bildirimler devre dışı bırakılır. Profil sahibi başvurusu da buna dahildir. İş modu kapalıyken sistem, kullanıcıya iş uygulamalarını başlatamayacağını hatırlatmak için kalıcı bir durum simgesi görüntüler. Başlatıcı, iş uygulamalarının ve widget'larının erişilebilir olmadığını belirtir.
Her Zaman Açık VPN
Cihaz sahipleri ve profil sahipleri, iş uygulamalarının her zaman belirli bir VPN üzerinden bağlanmasını sağlayabilir. Cihaz başlatıldıktan sonra sistem bu VPN'yi otomatik olarak başlatır.
Yeni DevicePolicyManager
yöntemleri şunlardır: setAlwaysOnVpnPackage()
ve getAlwaysOnVpnPackage()
.
VPN hizmetleri, uygulama etkileşimi olmadan doğrudan sistem tarafından bağlanabildiğinden, VPN istemcilerinin Her Zaman Açık VPN için yeni giriş noktalarını yönetmesi gerekir. Daha önce olduğu gibi hizmetler, sisteme bir intent filtresi eşleştirme işlemi android.net.VpnService
ile belirtilir.
Kullanıcılar, VPNService
yöntemlerini uygulayan Her Zaman Açık VPN istemcilerini Ayarlar>Diğer>VPN'i kullanarak manuel olarak da ayarlayabilirler. Ayarlar'dan Her Zaman Açık VPN'yi etkinleştirme seçeneği yalnızca VPN istemcisi API düzeyi 24'ü hedefliyorsa kullanılabilir.
Özelleştirilmiş temel hazırlık
Bir uygulama, profil sahibi ve cihaz sahibi temel hazırlık akışlarını kurumsal renkler ve logolarla özelleştirebilir.
DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR
, akış rengini
özelleştirir. DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI
, akışı kurumsal bir logoyla özelleştirir.
Erişilebilirlik Geliştirmeleri
Android 7.0'da artık yeni cihaz kurulumu için Görüş Ayarları'nı doğrudan Karşılama ekranında bulabilirsiniz. Bu sayede kullanıcılar, cihazlarında büyütme hareketi, yazı tipi boyutu, görüntü boyutu ve TalkBack gibi erişilebilirlik özelliklerini çok daha kolay bir şekilde keşfedip yapılandırabilir.
Bu erişilebilirlik özellikleri daha belirgin konumlara yerleştirildiğinde kullanıcılarınızın uygulamanızı bu özellikler etkinken deneme olasılığı daha yüksek. Bu ayarları etkinleştirerek uygulamalarınızı erkenden test ettiğinizden emin olun. Bunları Ayarlar > Erişilebilirlik bölümünden etkinleştirebilirsiniz.
Ayrıca, Android 7.0'da erişilebilirlik hizmetleri artık hareket engelli kullanıcıların ekrana dokunmasına yardımcı olabilmektedir. Bu yeni API, söz konusu kullanıcıların ihtiyaçlarını karşılamak için yüz izleme, göz izleme, nokta taraması gibi özelliklere sahip hizmetler geliştirmenize olanak tanır.
Daha fazla bilgi için GestureDescription
referans belgelerine göz atın.
Doğrudan Başlatma
Doğrudan başlatma, cihaz başlatma sürelerini iyileştirir ve kayıtlı uygulamaların beklenmedik bir yeniden başlatmadan sonra bile sınırlı işlevselliğe sahip olmasına olanak tanır. Örneğin, kullanıcı uykudayken şifrelenmiş bir cihaz yeniden başlatılırsa kayıtlı alarmlar, mesajlar ve gelen aramalar artık kullanıcıyı normal şekilde bilgilendirmeye devam edebilir. Bu, erişilebilirlik hizmetlerinin de yeniden başlatıldıktan hemen sonra kullanılabileceği anlamına da gelir.
Doğrudan başlatma, hem sistem hem de uygulama verileri için ayrıntılı şifreleme politikaları sağlamak üzere Android 7.0'daki dosya tabanlı şifrelemeden yararlanır. Sistem, belirli sistem verileri ve açıkça kaydedilmiş uygulama verileri için cihaz şifreli bir depolama alanı kullanır. Kimlik bilgisi ile şifrelenmiş bir depo, varsayılan olarak diğer tüm sistem verileri, kullanıcı verileri, uygulamalar ve uygulama verileri için kullanılır.
Başlatma sırasında sistem, uygulamalara veya verilere genel erişim olmadan, yalnızca cihazla şifrelenmiş verilere erişimi olan kısıtlı bir modda başlar.
Bu modda çalıştırmak istediğiniz bileşenleriniz varsa manifest'te bir işaret ayarlayarak bunları kaydedebilirsiniz. Yeniden başlatma sonrasında sistem, LOCKED_BOOT_COMPLETED
amacını yayınlayarak kayıtlı bileşenleri etkinleştirir. Sistem, kilit açma işleminden önce kayıtlı cihaz şifreli uygulama verilerinin kullanılabilir olmasını sağlar. Kullanıcı, şifresini çözmek için kilit ekranı kimlik bilgilerini onaylayana kadar diğer hiçbir veri kullanılamaz.
Anahtar Onayı
Android 7.0, bir cihazın donanım destekli anahtar deposunda depolanan anahtar çiftlerinin, uygulamanızın kullandığı hassas bilgileri düzgün bir şekilde koruduğundan emin olmanızı sağlayan yeni bir güvenlik aracı olan anahtar onayını kullanıma sunuyor. Bu aracı kullandığınızda, uygulamanızı çalıştıran cihaz rootlanmış olsa bile uygulamanızın güvenli donanımda bulunan anahtarlarla etkileşime girdiği konusunda daha fazla güven kazanırsınız. Uygulamalarınızda donanım destekli anahtar deposundan anahtarlar kullanıyorsanız, özellikle uygulamanızdaki hassas bilgileri doğrulamak için anahtarları kullanıyorsanız bu aracı kullanmalısınız.
Anahtar onayı, RSA veya EC anahtar çiftinin oluşturulduğunu ve cihazın güvenilir yürütme ortamında (TEE) cihazın donanım destekli anahtar deposunda depolandığını doğrulamanızı sağlar. Araç ayrıca, anahtar çiftinin kullanımlarını ve geçerliliğini belirlemek ve kesin bir şekilde doğrulamak için uygulamanızın arka uç sunucusu gibi cihaz dışı bir hizmeti kullanmanıza da olanak tanır. Bu özellikler, birisi cihazı rootlasa veya cihazda çalışan Android platformunun güvenliğini tehlikeye atsa bile anahtar çiftini koruyan ek bir güvenlik düzeyi sağlar.
Not: Android 7.0 çalıştıran az sayıda cihaz, donanım düzeyinde anahtar onayını destekler. Android 7.0 çalıştıran diğer tüm cihazlar bunun yerine yazılım düzeyinde anahtar onayını kullanır. Bir cihazın donanım destekli anahtarlarının özelliklerini üretim düzeyinde bir ortamda doğrulamadan önce, cihazın donanım düzeyinde anahtar onayını desteklediğinden emin olmanız gerekir. Bunu yapmak için onay sertifikası zincirinin Google onay kök anahtarı tarafından imzalanmış bir kök sertifika içerdiğini ve anahtar açıklaması veri yapısındaki attestationSecurityLevel
öğesinin TrustedEnvironment güvenlik düzeyine ayarlandığını kontrol etmeniz gerekir.
Daha fazla bilgi için Anahtar Onay geliştirici belgelerini inceleyin.
Ağ Güvenliği Yapılandırması
Android 7.0'da uygulamalar, hataya eğilimli geleneksel API'ler (ör. X509TrustManager) yerine bildirim temelli Network Security Config özelliğini kullanarak, herhangi bir kod değişikliği olmaksızın güvenli (HTTPS, TLS) bağlantılarının davranışını güvenli bir şekilde özelleştirebilir.
Desteklenen özellikler:
- Özel güven bağlantıları. Bir uygulamanın, güvenli bağlantıları için hangi Sertifika Yetkililerine (CA) güvenileceğini özelleştirmesini sağlar. Örneğin, belirli kendinden imzalı sertifikalara veya kısıtlı bir herkese açık CA grubuna güvenme.
- Yalnızca hata ayıklama için geçersiz kılma işlemleri. Uygulama geliştiricilerinin, yüklü tabanını riske atmadan uygulamalarının güvenli bağlantılarında güvenli bir şekilde hata ayıklamasına olanak tanır.
- Net metin trafiğini devre dışı bırakma. Bir uygulamanın, şifresiz metin trafiğinin yanlışlıkla kullanılmasına karşı kendini korumasını sağlar.
- Sertifika sabitleme. Bir uygulamanın, güvenli bağlantılar için hangi sunucu anahtarlarına güvenileceğini sınırlandırmasına olanak tanıyan gelişmiş bir özelliktir.
Daha fazla bilgi için Ağ güvenliği yapılandırması başlıklı makaleye bakın.
Varsayılan Güvenilir Sertifika Yetkilisi
Varsayılan olarak, Android 7.0'ı hedefleyen uygulamalar yalnızca sistem tarafından sağlanan sertifikalara güvenir ve artık kullanıcı tarafından eklenen Sertifika Yetkililerine (CA) güvenmez. Kullanıcı tarafından eklenen CA'lara güvenmek isteyen ve Android 7.0'ı (API düzeyi 24) hedefleyen uygulamalar, kullanıcı CA'larına nasıl güvenilmesi gerektiğini belirtmek için Ağ güvenliği yapılandırmasını kullanmalıdır.
APK İmza Şeması v2
Android 7.0'da, uygulamaların daha hızlı yüklenmesini ve APK dosyalarında yetkisiz değişikliklere karşı daha fazla koruma sağlayan yeni uygulama imzalama şeması olan APK İmza Şeması v2 kullanıma sunuluyor. Varsayılan olarak, Android Studio 2.2 ve Gradle 2.2 için Android Eklentisi, uygulamanızı hem APK İmza Şeması v2'yi hem de JAR imzalamasını kullanan geleneksel imzalama şemasını kullanarak imzalar.
Uygulamanıza APK İmza Şeması v2'yi uygulamanızı önersek de bu yeni şema zorunlu değildir. APK İmza Şeması v2 kullanılırken uygulamanız düzgün şekilde oluşturulmazsa yeni şemayı devre dışı bırakabilirsiniz. Devre dışı bırakma işlemi, Android Studio 2.2 ve Gradle 2.2 için Android Eklentisi'nin, uygulamanızı yalnızca geleneksel imzalama şemasını kullanarak imzalamasına neden olur. Yalnızca geleneksel şemayla oturum açmak için modül düzeyindeki build.gradle
dosyasını açın, ardından sürüm imzalama yapılandırmanıza v2SigningEnabled false
satırını ekleyin:
android { ... defaultConfig { ... } signingConfigs { release { storeFile file("myreleasekey.keystore") storePassword "password" keyAlias "MyReleaseKey" keyPassword "password" v2SigningEnabled false } } }
Dikkat: APK İmza Şeması v2 kullanarak uygulamanızı imzalar ve uygulamada başka değişiklikler yaparsanız uygulamanın imzası geçersiz kılınır. Bu nedenle, APK İmza Şeması v2'yi kullanarak uygulamanızı imzalamadan önce (sonra değil) zipalign
gibi araçları kullanın.
Daha fazla bilgi edinmek için Android Studio'da uygulama imzalama ve Gradle için Android Eklentisi kullanılarak uygulamaları imzalamak üzere derleme dosyasının nasıl yapılandırılacağını açıklayan Android Studio dokümanlarını okuyun.
Kapsamlı Dizin Erişimi
Android 7.0'da uygulamalar, belirli harici depolama dizinlerine (SD kartlar gibi çıkarılabilir medyalardaki dizinler dahil) erişim isteğinde bulunmak için yeni API'leri kullanabilir. Yeni API'ler, uygulamanızın Pictures
dizini gibi standart harici depolama dizinlerine erişme şeklini büyük ölçüde basitleştirir. Fotoğraf uygulamaları gibi uygulamalar, tüm depolama dizinlerine erişim izni veren READ_EXTERNAL_STORAGE
veya kullanıcının dizine gitmesini sağlayan Depolama Erişim Çerçevesi yerine bu API'leri kullanabilir.
Ayrıca yeni API'ler, kullanıcıların uygulamanıza harici depolama erişimi vermek için uyguladığı adımları basitleştirir. Yeni API'leri kullandığınızda sistem, uygulamanın hangi dizine erişmek istediğini açıkça belirten basit bir izin kullanıcı arayüzü kullanır.
Daha fazla bilgi için Kapsamlı Dizin Erişimi geliştirici belgelerine bakın.
Klavye Kısayolları Yardımcısı
Android 7.0'da kullanıcı, hem sistemden hem de odaklanılan uygulamadan kullanılabilen tüm kısayolları gösteren bir Klavye Kısayolları ekranını tetiklemek için Meta + / tuşlarına basabilir. Kısayollar varsa sistem, bu kısayolları uygulama menüsünden otomatik olarak alır. Ayrıca, ekran için kendi ince ayar yapılmış kısayol listelerinizi de sağlayabilirsiniz. Bunu, onProvideKeyboardShortcuts()
yöntemini geçersiz kılarak yapabilirsiniz.
Not: Meta tuşu tüm klavyelerde yoktur: Macintosh klavyede Command tuşu, Windows klavyede, Windows tuşu, Pixel C ve ChromeOS klavyelerde ise Arama tuşudur.
Klavye Kısayolları Yardımcısı'nı uygulamanızın herhangi bir yerinden tetiklemek için ilgili etkinlikten requestShowKeyboardShortcuts()
çağrısı yapın.
Özel İşaretçi API'sı
Android 7.0'da, işaretçinin görünümünü, görünürlüğünü ve davranışını özelleştirmenize olanak tanıyan Özel İşaretçi API'si kullanıma sunuluyor. Bu özellik, özellikle kullanıcı kullanıcı arayüzü nesneleriyle etkileşim kurmak için fare veya dokunmatik alan kullandığında kullanışlıdır. Varsayılan işaretçi, standart bir simge kullanır. Bu API, işaretçi simgesinin görünümünü belirli fare veya dokunmatik alan hareketlerine göre değiştirme gibi gelişmiş işlevler de içerir.
İşaretçi simgesi ayarlamak için View
sınıfının onResolvePointerIcon()
yöntemini geçersiz kılın. Bu yöntem, belirli bir hareket etkinliğine karşılık gelen simgeyi çizmek için bir PointerIcon
nesnesi kullanır.
Sürdürülebilir Performans API'si
Sistem, cihaz bileşenleri sıcaklık sınırlarına ulaştıkça çip üzerinde sistem çalışan motorları kısıtlar. Bu nedenle uzun süre çalışan uygulamalarda performans önemli ölçüde dalgalanmalar gösterebilir. Bu dalgalanma, yüksek performanslı, uzun süreli uygulamalar oluşturan uygulama geliştiriciler için hareketli bir hedef teşkil eder.
Android 7.0, bu sınırlamaları ortadan kaldırmak amacıyla sürekli performans modunu destekler. Bu sayede, OEM'ler uzun süreli uygulamalar için cihaz performansı özellikleri hakkında ipuçları sağlayabilir. Uygulama geliştiriciler bu ipuçlarını kullanarak uygulamalarda uzun süreli tahmin edilebilir ve tutarlı cihaz performansı düzeyi için ince ayarlar yapabilirler.
Uygulama geliştiriciler, bu yeni API'yi Android 7.0'da yalnızca Nexus 6P cihazlarda deneyebilir. Bu özelliği kullanmak için uzun süreli performans modunda çalıştırmak istediğiniz pencere için sürekli performans penceresi işaretini ayarlayın. Window.setSustainedPerformanceMode()
yöntemini kullanarak bu işareti ayarlayın. Pencere artık odakta değilken sistem bu modu otomatik olarak devre dışı bırakır.
VR Desteği
Android 7.0, geliştiricilerin kullanıcılar için yüksek kaliteli mobil Sanal Gerçeklik deneyimleri oluşturmasını sağlamak amacıyla yeni VR Modu için platform desteği ve optimizasyonlar ekler. VR uygulamaları için özel bir CPU çekirdeğine erişim de dahil olmak üzere çeşitli performans iyileştirmeleri yapılır. Uygulamalarınızda, akıllı baş izleme teknolojisinden ve VR için çalışan stereo bildirimlerden yararlanabilirsiniz. En önemlisi de Android 7.0'ın çok düşük gecikmeli grafikler sağlaması. Android 7.0 için VR uygulamaları oluşturma hakkında ayrıntılı bilgiyi Android için Google VR SDK'sı bölümünde bulabilirsiniz.
Yazdırma Hizmeti Geliştirmeleri
Android 7.0'da yazdırma hizmeti geliştiricileri artık yazıcılar ve yazdırma işleri hakkında ayrı ayrı ek bilgiler sunabilir.
Yazdırma hizmeti artık her yazıcıyı ayrı ayrı listelerken her yazıcının simgelerini iki şekilde ayarlayabilir:
setIconResourceId()
yöntemini çağırarak kaynak kimliğinden simge ayarlayabilirsiniz.setHasCustomPrinterIcon()
numarasını arayarak veonRequestCustomPrinterIcon()
ile simge istendiğinde bir geri arama ayarlayarak ağdan bir simge gösterebilirsiniz.
Ayrıca, setInfoIntent()
yöntemini çağırarak ek bilgileri görüntülemek için yazıcı başına etkinlik sağlayabilirsiniz.
Yazdırma işi bildiriminde, yazdırma işlerinin ilerleme durumunu ve durumunu sırasıyla setProgress()
ve setStatus()
çağrılarıyla belirtebilirsiniz.
Çerçeve Metrikleri API'sı
Frame Metrics API'si, bir uygulamanın kullanıcı arayüzü oluşturma performansını izlemesine olanak tanır. Bu API, uygulamanın geçerli penceresi için çerçeve zamanlama bilgilerini aktarmak üzere bir Pub/Sub API akış sunarak bu özelliği sağlar. Döndürülen veriler, adb shell
dumpsys gfxinfo framestats
tarafından görüntülenen verilerle eşdeğerdir ancak son 120 kareyle sınırlı değildir.
Frame Metrics API'yi, bir USB bağlantısı olmadan üretimde etkileşim düzeyinde kullanıcı arayüzü performansını ölçmek için kullanabilirsiniz. Bu API, adb shell dumpsys gfxinfo
özelliğine kıyasla çok daha yüksek bir ayrıntı düzeyinde veri toplanmasına olanak tanır. Sistem, uygulamadaki belirli etkileşimler için veri toplayabileceğinden bu daha yüksek ayrıntı düzeyine sahip olabilir. Sistemin, tüm uygulamanın performansının genel bir özetini yakalaması veya herhangi bir genel durumu temizlemesine gerek yoktur. Bu özelliği, uygulama içindeki gerçek kullanım alanlarında performans verileri toplamak ve kullanıcı arayüzü performansındaki regresyonları yakalamak için kullanabilirsiniz.
Bir pencereyi izlemek için OnFrameMetricsAvailableListener.onFrameMetricsAvailable()
geri çağırma yöntemini uygulayın ve söz konusu pencereye kaydedin.
API, oluşturma alt sisteminin bir kare yaşam döngüsündeki çeşitli aşamalar için raporladığı zamanlama verilerini içeren bir FrameMetrics
nesnesi sağlar. Desteklenen metrikler şunlardır: UNKNOWN_DELAY_DURATION
,
INPUT_HANDLING_DURATION
, ANIMATION_DURATION
,
LAYOUT_MEASURE_DURATION
, DRAW_DURATION
, SYNC_DURATION
,
COMMAND_ISSUE_DURATION
, SWAP_BUFFERS_DURATION
,
TOTAL_DURATION
ve FIRST_DRAW_FRAME
.
Sanal Dosyalar
Uygulamanız, Android'in önceki sürümlerinde Depolama Erişim Çerçevesi'ni kullanarak kullanıcıların Google Drive gibi bulut depolama alanı hesaplarından dosya seçebiliyordu. Ancak doğrudan bayt kodu gösterimi olmayan dosyaları temsil etmenin bir yolu yoktu ve her dosyanın bir giriş akışı sağlaması gerekiyordu.
Android 7.0, Depolama Erişim Çerçevesi'ne sanal dosya kavramını ekler. Sanal dosyalar özelliği, DocumentsProvider
cihazınızın, doğrudan bayt kodu gösterimi olmasa bile ACTION_VIEW
amacıyla kullanılabilecek belge URI'leri döndürmesini sağlar. Android 7.0, kullanıcı dosyaları için sanal veya diğer alternatif biçimler sağlamanıza da olanak tanır.
Sanal dosyaları açma hakkında daha fazla bilgi için Depolama Erişim Çerçeveleri kılavuzunda sanal dosyaları açma bölümüne bakın.