Android 7.0 Nougat, kullanıcılar ve geliştiriciler için bir dizi yeni özellik ve olanak sunmaktadır. Bu dokümanda, geliştiriciler için yenilikler vurgulanmaktadır.
Platform değişikliklerinin uygulamalarınızı etkileyebileceği alanları öğrenmek için Android 7.0 davranış değişiklikleri bölümüne göz atmayı unutmayı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 ve yeni bir çoklu görev özelliği olan çoklu pencere desteğini kullanıma 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 üst üste çalıştırabilir. Kullanıcılar, aralarındaki ayırıcıyı sürükleyerek uygulamaları yeniden boyutlandırabilir.
- Android TV cihazlarda uygulamalar kendilerini pencere içinde pencere moduna alabilir. Böylece, kullanıcı diğer uygulamalara göz atarken veya bu uygulamalarla etkileşimde bulunurken içerik göstermeye devam edebilirler.
![Bölünmüş ekran modunda çalışan mobil uygulamalar](https://developer.android.com/static/images/android-7.0/mw-portrait.png?authuser=5&hl=tr)
Şekil 1. Bölünmüş ekran modunda çalışan uygulamalar.
Özellikle tabletlerde ve daha büyük ekranlı diğer cihazlarda, çoklu pencere desteği, kullanıcılarla etkileşime geçmenin yeni yollarını 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 birden fazla pencereli ekranı nasıl işleyeceğini yapılandırmak kolaydır. Örneğin, etkinliğinizin izin verilen minimum boyutlarını belirleyebilir, böylece kullanıcıların etkinliği bu boyutun altında yeniden boyutlandırmasını engelleyebilirsiniz. Ayrıca, uygulamanız için çoklu pencere görünümünü 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 hızlı kullanım için yeniden tasarladık. Değişikliklerden bazıları şunlardır:
- Şablon güncellemeleri: Lokomotif resim ve avatara tekrar vurgu yapmak için 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 (örneğin, mesaj konusuna göre) gruplandırabilir ve grubu görüntüleyebilir. Kullanıcılar, kullanıcı cihazlarında Kapat veya Arşivle gibi işlemler yapabilir. Android Wear için bildirimleri uyguladıysanız bu modele zaten aşinasınız demektir.
- Doğrudan yanıt: Gerçek zamanlı iletişim uygulamalarında, Android sistemi 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ış mesaj bildirimlerini gösteren mobil cihaz](https://developer.android.com/static/images/android-7.0/notifications-1.png?authuser=5&hl=tr)
![Tek mesaj bildirimi gösteren mobil cihaz](https://developer.android.com/static/images/android-7.0/notifications-3.png?authuser=5&hl=tr)
![Bildirim arayüzünde satır içi mesaj yanıtını gösteren mobil cihaz](https://developer.android.com/static/images/android-7.0/notifications-2.png?authuser=5&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ştirmesini 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 etmeye ve uygulama güncellemeleri ile 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 cihazın koşullarına göre yönetmesine olanak tanır. Örneğin, ART her uygulamanın en popüler yöntemlerinin profilini korur ve en iyi performansı elde etmek için bu yöntemleri önceden derleyip önbelleğe alabilir. Uygulamanın diğer bölümleri, gerçekten kullanılana kadar derlenmemiş.
Profil yönlendirmeli derleme, uygulamanın önemli parçaları için performansı artırmanın 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 bellekli cihazlarda önemlidir.
ART, profil yönlendirmeli derlemeleri, cihaz pilinin etkisini en aza indirecek şekilde yönetir. Yalnızca bu durumda cihaz boşta kalıp şarj olurken önceden derleme yapar, böylece bu işlemi önceden yaparak zamandan ve pilden tasarruf eder.
Uygulama Yüklemeye Hızlı Yol
ART'ın JIT derleyicisinin en somut avantajlarından biri, uygulama yükleme ve sistem güncellemelerinin hızıdır. Android 6.0'da optimize edilip yüklenmesi birkaç dakika gerektiren büyük uygulamalar bile artık yalnızca saniyeler içinde yüklenebiliyor. Optimize etme 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 masada veya çekmecede otururken) 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 belirli 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. Bu sayede kullanıcılar cihazlarını ceplerinde taşırken bile pilden tasarruf edebilir.
![Doz'un, pil ömrünü iyileştirmek için ilk sistem etkinliği kısıtlamalarını nasıl uyguladığını gösteren resim](https://developer.android.com/static/images/android-7.0/doze-diagram-1.png?authuser=5&hl=tr)
3. Şekil. Doz, artık cihaz sabit değilken bile pil ömrünü uzatmak için kısıtlamalar uygular.
Cihaz pille çalışırken ekran kapandıktan kısa bir süre sonra Doz, ağ erişimini kısıtlar ve işler ile senkronizasyonları erteler. Kısa bakım dönemleri sırasında uygulamalara ağ erişimine izin verilir ve ertelenmiş işleri/senkronizasyonları yürütülür. Ekranın açılması veya takılması, cihazın Doz'dan çıkmasını sağlar.
Cihaz tekrar hareketsiz bir şekilde, belirli bir süre boyunca ekran kapalı ve pil açık olduğunda, Doz, PowerManager.WakeLock
, AlarmManager
alarmları ve GPS/Kablosuz taramaları için tam CPU ve ağ kısıtlamalarını uygular.
Cihaz hareket etse de etmese de uygulamanızı Doz'a uyarlamak için en iyi uygulamalar aynıdır. Bu nedenle, uygulamanızı Doz'u sorunsuz bir şekilde ele alacak şekilde güncellediyseniz hazırsınız demektir. Yoksa uygulamanızı Doz'a uyarlamaya hemen başlayın.
Project Svelte: 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. Project Svelte, Android 7.0'da uygulamaların arka planda çalışma şeklini optimize etmeye odaklanmıştır.
Arka planda işleme, çoğu uygulamanın önemli bir parçasıdır. Doğru kullanıldığında, kullanıcı deneyiminizi anlık, hızlı ve bağlama duyarlı olarak mükemmel hale getirebilir. Arka planda işleme, doğru şekilde işlenmediğinde gereksiz şekilde RAM (ve pil) tüketebilir ve diğer uygulamaların sistem performansını etkileyebilir.
Android 5.0'dan bu yana arka planda çalışmayı kullanıcılar için iyi bir şekilde gerçekleştirmek için JobScheduler
tercih edilen yöntem olmuştur. Uygulamalar, sistemin bellek, güç ve bağlantı koşullarına göre optimize etmesine izin verirken işleri planlayabilir. JobScheduler, kontrol ve basitlik
sunar ve tüm uygulamaların 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 uyumlu olacak şekilde benzer iş planlaması sunar.
Daha fazla kullanım alanınızı karşılamak için JobScheduler
ve GCMNetworkManager
kapsamını genişletmeye devam ediyoruz. Örneğin, Android 7.0'da artık arka plan çalışmalarını İçerik Sağlayıcılardaki değişikliklere göre planlayabilirsiniz. Aynı zamanda, özellikle düşük bellekli cihazlarda sistem performansını azaltabilecek eski kalıpların bazılarını kullanımdan kaldırmaya başlıyoruz.
Android 7.0'da, en çok kullanılan üç örtülü yayın (CONNECTIVITY_ACTION
, ACTION_NEW_PICTURE
ve ACTION_NEW_VIDEO
) kullanımdan kaldırılıyor. Çünkü bu yayınlar, aynı anda birden fazla uygulamanın arka plan işlemlerini
uyandırabilir ve bellek ile pili zorlayabilir. 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, SurfaceView
sınıfına eşzamanlı hareket katarak belirli durumlarda TextureView
'den 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
'a kıyasla daha az güç kullanır.
SurfaceView
sınıfı, uygulama penceresi içeriğinden ayrı olarak özel donanımda birleştirildiğinden, ekranda pili daha verimli bir şekilde birleştirmeye olanak tanır. Sonuç olarak, TextureView
ile karşılaştırıldığında 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 da, SurfaceView
içinde oynatılan videonun basit çevirilerinin veya ölçeklerinin, görüntü hareket ederken artık siyah çubuklar üretmemesidir.
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.com/static/images/android-7.0/datasaver.png?authuser=5&hl=tr)
4. Şekil. 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şmaktadır. Birçok kullanıcı için hücresel veri korumak istedikleri pahalı bir kaynaktır.
Android 7.0'da Veri Tasarrufu modu kullanıma sunuluyor. Bu yeni sistem hizmeti, dolaşımda, faturalandırma döneminin sonuna yaklaşırken veya ön ödemeli küçük bir veri paketinde uygulamalar tarafından kullanılan hücresel veri kullanımını azaltmaya yardımcı oluyor. Veri Tasarrufu, kullanıcıların uygulamaların hücresel verileri nasıl kullanacağını kontrol etmesini sağlar ve Veri Tasarrufu açık olduğunda geliştiricilerin daha verimli hizmet sunmalarına olanak tanır.
Kullanıcı, Ayarlar'da Veri Tasarrufu'nu etkinleştirirse ve cihaz sayaçlı bir ağ üzerindeyse 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ı erteleyebilirsiniz. Kullanıcılar, Veri Tasarrufu açık olsa 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 plandaki ve arka plandaki veri kullanımını sınırlamaya çalışmalıdır.
Vulkan API'si
Android 7.0, yeni bir 3D oluşturma API'sı olan VulkanTM'ı platforma entegre eder. OpenGLTM ES gibi Vulkan da Khronos Grubu tarafından yönetilen 3D grafik ve oluşturma için açık bir standarttır.
Vulkan, sürücüdeki CPU ek yükünü en aza indirmek ve uygulamanızın GPU işlemini daha doğrudan kontrol etmesini sağlamak için baştan sona tasarlanmıştır. Vulkan ayrıca birden çok iş parçacığının aynı anda komut arabelleği oluşturma gibi işler yapmasına olanak tanıyarak daha iyi paralellikler sağlar.
Vulkan geliştirme araçları ve kitaplıkları, Android 7.0 SDK'sında kullanıma sunulur. 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 Kutusu API'sı
![Bildirim gölgesindeki Hızlı Ayarlar blokları](https://developer.android.com/static/images/android-7.0/quicksettings.png?authuser=5&hl=tr)
5. Şekil. Bildirim gölgesindeki Hızlı Ayarlar kutuları.
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ı genişleterek daha da kullanışlı ve kullanışlı hale getirdik.
Ek Hızlı Ayarlar blokları için daha fazla yer ekledik. Bu sayede kullanıcılar sola veya sağa kaydırarak sayfalandırılmış bir görüntüleme alanından erişebilir. Ayrıca, kullanıcılara hangi Hızlı Ayarlar kutularının görüneceğini ve nerede gösterileceğini kontrol etme olanağı sağladık. Kullanıcılar, yalnızca sürükleyip bırakarak kutu ekleyebilir veya taşıyabilir.
Android 7.0, geliştiricilerin uygulamanızdaki önemli kontrollere ve işlemlere kolayca erişmesini sağlamak için kendi Hızlı Ayarlar bloklarınızı tanımlamanızı sağlayan yeni bir API'ye de yer verir.
Hızlı Ayarlar kutuları, 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.
Kutuları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 edinmek için Tile
referans dokümanlarına 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 numara listesinden okuma ve bu numaraya mesaj 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 sıfırlama işlemleri ve cihazlar genelinde kullanılmaya devam edebilir
- Aynı engellenen numaralar listesini birden fazla uygulama kullanabilir
Operatör uygulamasının Android üzerinden entegrasyonu da, 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 için kullanıcı için hizmet tarafı engelleme gerçekleştirebilmesi anlamına gelir.
Daha fazla bilgi için BlockedNumberContract
referans belgelerine bakın.
Arama Süzme
Android 7.0, varsayılan telefon uygulamasının gelen aramaları filtrelemesine izin verir. Telefon uygulaması bunu, gelen aramanın Call.Details
değerine göre telefon uygulamasının çeşitli işlemler yapmasına olanak tanıyan yeni CallScreeningService
özelliğini kullanarak yapar. Örneğin:
- Gelen aramayı reddet
- Çağrı kaydına yapılan çağrıya izin verme
- Kullanıcıya arama için bildirim gösterme
Daha fazla bilgi için CallScreeningService
referans belgelerine 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 kullanabilir ve ardından birden fazla dilde arama yapan kullanıcılara daha gelişmiş kullanıcı deneyimleri (ör. birden fazla dilde arama sonuçları göstermek ve kullanıcının zaten bildiği bir dildeki web sayfalarının çevrilmesini önermemek) sunabilir.
Android 7.0, çoklu yerel ayar desteğinin yanı sıra 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 eklemiştir.
Uygulamalar, LocaleList.GetDefault()
numaralı telefonu arayarak kullanıcı tarafından belirlenen yerel ayarların listesini alabilir. Android 7.0, 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 dahil olmak üzere ek emojiler ve emojilerle ilgili özellikler sunulmaktadır. Uygulamanız emojileri destekliyorsa emojilerle ilgili bu özelliklerden yararlanmak için aşağıdaki yönergeleri uygulayın.
-
Bir 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 desteklediğinden emin olun. 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 birlikte satır içinde gösteriyorsa siyah beyaz varyasyonu kullanmalıdır. Bir emojinin varyasyonunun olup olmadığını belirlemek için varyasyon seçiciyi kullanın. Varyasyonları olan karakterlerin tam listesi için varyasyonlarla ilgili Unicode belgelerinin emoji varyasyonu 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ştirmesine imkan tanır. Klavye uygulamaları, birden fazla ten rengine sahip emoji'ler için görsel göstergeler sağlamalı ve kullanıcıların tercih ettikleri cilt tonunu seçmelerine izin vermelidir. Hangi sistem emojilerinde cilt tonu değiştiricisi olduğunu belirlemek için
hasGlyph(String)
yöntemini kullanın. Unicode belgelerini okuyarak hangi emojilerin cilt tonlarını kullandığını belirleyebilirsiniz.
Android'deki ICU4J API'leri
Android 7.0 artık Android çerçevesindeki android.icu
paketi altında ICU4J API'lerinin bir alt kümesini sunmaktadır. Taşıma kolaydır ve çoğunlukla com.java.icu
ad alanının android.icu
olarak değiştirilmesini içerir. Uygulamalarınızda zaten bir ICU4J paketi kullanıyorsanız Android çerçevesinde sağlanan android.icu
API'lerine geçmek APK boyutunda önemli ölçüde tasarruf sağlayabilir.
Android ICU4J API'leri hakkında daha fazla bilgi edinmek için ICU4J Destek 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ümlerdeki Chrome 51 sürümünden itibaren, Android Sistem Web Görünümleri'ni sağlamak ve oluşturmak için cihazınızdaki Chrome APK'sı kullanılmaktadır. Bu yaklaşım, cihazın kendisinde 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. WebView uygulaması olarak işlev görmek için, cihazınıza yüklenmiş olan herhangi bir uyumlu Chrome sürümünü (Yeni geliştirilenler, Beta veya Mevcut ürün) veya 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 etkinleştirildiğinde, 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 sürümünde uyumluluk ve çalışma zamanı performansı ile ilgili geri bildirim arıyoruz. 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 üzerinden WebView 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 gizli bilgilerini korumak için tasarlanmıştır.
WebView Beta ile test etme
Web Görünümü düzenli olarak güncellenir. Bu nedenle, 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 WebView'un 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çıklanan 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 izleyicisi aracılığıyla bildirin.
OpenGLTM ES 3.2 API'sı
Android 7.0, OpenGL ES 3.2 için çerçeve arayüzleri ve platform desteği ekler. Bu özellikler şunlardır:
-
EXT_texture_sRGB_decode
dışında 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 sağlam arabellek erişimi kontrolü.
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 gereksinimi bildirdiğ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 Kaydı
Android 7.0'da, yeni kayıt API'leri aracılığıyla Android TV giriş hizmetlerinden içerik kaydetme ve oynatma özelliği eklenmiştir. TV giriş hizmetleri, mevcut zaman değiştirme API'lerine ek olarak hangi kanal verilerinin kaydedilebileceğini ve kaydedilen oturumların nasıl kaydedileceğini denetleyebilir ve kullanıcıların kaydedilen içerikle etkileşimini yönetebilir.
Daha fazla bilgi için Android TV Kayıt API'leri başlıklı makaleye göz atı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 özellikler aşağıda verilmiştir. Özelliklerin tam listesi için Android Enterprise özellik listesine göz atın.
İş 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ş profili açılır ve gerekirse şifresi çözülür. Profil sahipleri için ACTION_SET_NEW_PASSWORD
, kullanıcıdan iş sorgulaması ayarlamasını, 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şle ilgili giriş sorgulaması için farklı şifre kodu politikaları belirleyebilir (ör. PIN'in ne kadar süre olması gerektiği veya profilin kilidini açmak için parmak izinin kullanılıp kullanılamayacağı gibi). Profil sahibi, cihaz kilidini yeni getParentProfileInstance()
yöntemi tarafından döndürülen DevicePolicyManager
örneğini kullanarak da ayarlayabilir.
Ayrıca profil sahipleri, yeni setOrganizationColor()
ve setOrganizationName()
yöntemlerini kullanarak iş sorgulaması için kimlik bilgileri ekranını özelleştirebilir.
İş modunu devre dışı bırakın
İş profili olan bir cihazda kullanıcılar iş modunu açıp kapatabilir. İş 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ışı kalır. Buna profil sahibi başvurusu da 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 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.
Ayrıca kullanıcılar, VPNService
yöntemlerini uygulayan Her Zaman Açık VPN istemcilerini Ayarlar>Diğer>VPN'i kullanarak manuel olarak ayarlayabilirler. Ayarlar'dan Her Zaman Açık VPN'i etkinleştirme seçeneği yalnızca VPN istemcisi API düzeyi 24'ü hedefliyorsa kullanılabilir.
Özelleştirilmiş temel hazırlık
Bir uygulama, kurumsal renkler ve logolarla profil sahibi ve cihaz sahibi temel hazırlık akışlarını özelleştirebilir.
DevicePolicyManager.EXTRA_PROVISIONING_MAIN_COLOR
, akış rengini
özelleştirir. DevicePolicyManager.EXTRA_PROVISIONING_LOGO_URI
, kurumsal logoyla akışı özelleştirir.
Erişilebilirlik Geliştirmeleri
Android 7.0 artık yeni cihaz kurulumu için Karşılama ekranında Görüş Ayarları'nı sunuyor. 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 keşfedip yapılandırabilir.
Bu erişilebilirlik özellikleri daha belirgin bir şekilde yerleştirildiğinde, kullanıcılarınızın uygulamanızı etkinleştirmek için kullanma olasılıkları da artar. 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 güçlüğü çeken kullanıcıların ekrana dokunmalarına yardımcı olabilir. Yeni API, bu kullanıcıların ihtiyaçlarını karşılamak için yüz izleme, göz izleme, nokta tarama 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ın 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, şifrelenmiş bir cihaz kullanıcı uykudayken 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 yeniden başlatma işleminden hemen sonra da kullanılabileceği anlamına da gelir.
Doğrudan başlatma, Android 7.0'daki dosya tabanlı şifrelemeden faydalanarak hem sistem hem de uygulama verileri için ayrıntılı şifreleme politikaları sağlar. Sistem, belirli sistem verileri ve açıkça kaydedilmiş uygulama verileri için cihaz şifrelenmiş bir depolama alanı kullanır. Varsayılan olarak diğer tüm sistem verileri, kullanıcı verileri, uygulamalar ve uygulama verileri için kimlik bilgileriyle şifrelenmiş bir mağaza kullanılır.
Sistem, başlatma sırasında yalnızca cihaz tarafından şifrelenmiş verilere erişimi olan kısıtlı bir modda başlatılır. Bu modda, uygulamalara veya verilere genel erişim yoktur.
Bu modda çalıştırmak istediğiniz bileşenleriniz varsa manifest'te bir bayrak 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 şifrelenmiş 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'da, bir cihazın donanım destekli anahtar deposunda depolanan anahtar çiftlerinin, uygulamanızın kullandığı hassas bilgileri doğru şekilde koruduğundan emin olmanızı sağlayan yeni bir güvenlik aracı olan anahtar onayını kullanıma sunduk. 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 deposundaki anahtarlar kullanıyorsanız, özellikle uygulamanızdaki hassas bilgileri doğrulamak için bu 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ındaki (TEE) cihazın donanım destekli anahtar deposunda depolandığını doğrulamanıza olanak tanır. Araç ayrıca, anahtar çiftinin kullanımlarını ve geçerliliğini belirlemek ve güçlü 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ığından emin olmanız 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 Ağ Güvenliği Yapılandırması'nı kullanarak güvenli (HTTPS, TLS) bağlantılarının davranışını herhangi bir kod değişikliği olmadan 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üvenildiğini özelleştirmesine olanak tanır. Örneğin, kendinden imzalı belirli sertifikalara veya kısıtlı bir herkese açık CA grubuna güvenmek gibi.
- Yalnızca hata ayıklamayı hedefleyen geçersiz kılmalar. Uygulama geliştiricilerinin, yüklü tabanda ek risk olmadan 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. Uygulamanın, güvenli bağlantılar için hangi sunucu anahtarlarına güvenileceğini sınırlaması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üvenilen Sertifika Yetkilisi
Varsayılan olarak, Android 7.0'ı hedefleyen uygulamalar yalnızca sistem tarafından sağlanan sertifikalara güvenir; artık kullanıcılar tarafından eklenen Sertifika Yetkililerine (CA) güvenmez. Kullanıcılar 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 bir uygulama imzalama şeması olan APK İmza Şeması v2 kullanıma sunuldu. 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 imzalamayı 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ı 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: Uygulamanızı APK İmza Şeması v2 kullanarak imzalar ve uygulamada daha fazla değişiklik yaparsanız uygulamanın imzası geçersiz hale gelir. Bu nedenle, APK İmza Şeması v2'yi kullanarak uygulamanızı imzaladıktan sonra değil, zipalign
gibi araçları kullanın.
Daha fazla bilgi için Android Studio'da uygulama imzalama ve Gradle için Android Eklentisi kullanılarak uygulama imzalamak için 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 istemek 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 erişim istediği dizini açıkça ayrıntılarıyla açıklayan basit bir izin kullanıcı arayüzü kullanır.
Daha fazla bilgi için Kapsamlı Dizin Erişimi geliştirici belgelerini inceleyin.
Klavye Kısayolları Yardımcısı
Android 7.0'da kullanıcı, Meta + / tuşlarına basarak hem sistemden hem de odaklanılan uygulamadan kullanılabilen tüm kısayolları görüntüleyen bir Klavye Kısayolları ekranını tetikleyebilir. 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 klavyede ise Search tuşudur.
Klavye Kısayolları Yardımcısı'nı uygulamanızın herhangi bir yerinden tetiklemek için ilgili etkinlikten requestShowKeyboardShortcuts()
yöntemini çağırı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 sunuldu. Bu özellik, özellikle kullanıcı arayüzü nesneleriyle etkileşimde bulunmak için fare veya dokunmatik alan kullandığında kullanışlıdır. Varsayılan işaretçi standart bir simge kullanır. Bu API, belirli fare veya dokunmatik alan hareketlerine göre işaretçi simgesinin görünümünü 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.
Sustained Performance API'si
Sistem, cihaz bileşenleri sıcaklık sınırlarına ulaştıkça çip üzerinde ç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 üreten uygulama geliştiricileri için hareketli bir hedef teşkil ediyor.
Bu sınırlamaları ortadan kaldırmak için Android 7.0, sürekli performans modunu destekler. Bu sayede OEM'ler, uzun süre çalışan uygulamalar için cihaz performansı özellikleri hakkında ipuçları sağlayabilir. Uygulama geliştiriciler bu ipuçlarından yararlanarak uygulamalarında uzun süre boyunca öngörülebilir ve tutarlı bir cihaz performansı düzeyi elde edecek ayarlamalar yapabilirler.
Uygulama geliştiricileri, Android 7.0'daki bu yeni API'yi yalnızca Nexus 6P cihazlarda deneyebilir. Bu özelliği kullanmak amacıyla, sürdürülebilir performans modunda çalıştırmak istediğiniz pencere için sürekli performans aralığı 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 VR deneyimleri oluşturmasını sağlamak amacıyla yeni bir 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 mevcuttur. Uygulamalarınızda, sanal gerçeklik için çalışan akıllı kafa izleme ve stereo bildirimlerden yararlanabilirsiniz. En önemlisi de, Android 7.0 çok düşük gecikmeli grafikler sağlar. Android 7.0 için VR uygulamaları oluşturma hakkında ayrıntılı bilgi edinmek üzere Android için Google VR SDK'sına bakın.
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 ek bilgiler sunabilir.
Bir yazdırma hizmeti, tek tek yazıcıları listelerken artık her yazıcının simgelerini iki şekilde ayarlayabilir:
setIconResourceId()
yöntemini çağırarak bir 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, ek bilgileri görüntülemek için setInfoIntent()
yöntemini çağırarak 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'si
Frame Metrics API, bir uygulamanın, kullanıcı arayüzü oluşturma performansını izlemesine olanak tanır. Bu API, uygulamanın geçerli penceresi için kare 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 verilere eşdeğerdir ancak son 120 kareyle sınırlı değildir.
Bir USB bağlantısı olmadan, üretimde etkileşim düzeyindeki kullanıcı arayüzü performansını ölçmek için Frame Metrics API'yi kullanabilirsiniz. Bu API, adb shell dumpsys gfxinfo
modelinden çok daha yüksek bir ayrıntı düzeyinde verilerin toplanmasına olanak tanır. Sistem, uygulamadaki belirli etkileşimler için veri toplayabildiği için bu daha yüksek ayrıntı düzeyine sahip olabilir. Sistemin, tüm uygulamanın performansının genel bir özetini yakalamasına veya herhangi bir genel durumu temizlemesine gerek yoktur. Bu özelliği, bir uygulama içindeki gerçek kullanım alanları için performans verilerini toplamak ve kullanıcı arayüzü performansındaki regresyonları yakalamak üzere 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 çerçeve 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
Android'in önceki sürümlerinde uygulamanız, kullanıcıların Google Drive gibi bulut depolama alanı hesaplarından dosya seçebilmesi için Depolama Erişim Çerçevesi'ni kullanabiliyordu. Ancak, doğrudan bayt kodu temsili olmayan dosyaların temsil edilmesi mümkün değildi; 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'lerini döndürmesini sağlar. Android 7.0 ayrıca kullanıcı dosyaları için sanal veya başka türlü 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.