Özelliklere ve API'lere Genel Bakış

Android 12, geliştiriciler için muhteşem yeni özellikler ve API'ler sunar. Aşağıdaki bölümler, uygulamalarınız için özellikler hakkında bilgi edinmenize ve ilgili API'leri kullanmaya başlamanıza yardımcı olur.

Yeni, değiştirilmiş ve kaldırılmış API'lerin ayrıntılı bir listesi için API fark raporunu okuyun. Yeni API'lerle ilgili ayrıntılar için Android API referansı sayfasını ziyaret edin. Yeni API'ler görünürlük için vurgulanmaktadır. Ayrıca, platform değişikliklerinin uygulamalarınızı etkileyebileceği alanları öğrenmek istiyorsanız Android 12'yi hedefleyen uygulamalar ve tüm uygulamalar için Android 12 davranış değişikliklerini inceleyin.

Kullanıcı deneyimi

Material You

Android 12, daha kişiselleştirilmiş ve güzel uygulamalar geliştirmenize yardımcı olan Material You adlı yeni bir tasarım dilini kullanıma sunuyor. En son Materyal Tasarım 3 güncellemelerinin tümünü uygulamalarınıza taşımak için Materyal Tasarım Bileşenleri'nin alfa sürümünü deneyin.

Material You

Widget iyileştirmeleri

Android 12, platform ve başlatıcılarda kullanıcı ve geliştirici deneyimini iyileştirmek için mevcut Widgets API'sini yeniler. Widget'ınızın Android 12 ile uyumlu olduğundan emin olmanıza ve yeni özelliklerle yenilemenize yardımcı olacak bir kılavuz oluşturduk.

Daha fazla bilgi için Android 12 widget geliştirmeleri bölümüne bakın.

Zengin içerik ekleme

Android 12; uygulamanızın pano, klavye veya sürükleyip bırakma gibi mevcut kaynaklardan zengin içerik alabilmesini sağlayan yeni, birleştirilmiş bir API sunar.

Daha fazla bilgi için Zengin içerik alma bölümüne bakın.

Uygulama başlangıç ekranları API'si

Android 12, tüm uygulamalar için yeni bir uygulama başlatma animasyonu sunuyor. Bu animasyonda, lansmandan itibaren uygulama içi hareket, uygulama simgesini gösteren bir başlangıç ekranı ve uygulamanın kendisine geçiş yer alıyor. Daha fazla ayrıntı için başlangıç ekranları geliştirici kılavuzuna bakın.

Yuvarlatılmış köşe API'leri

Android 12'de, yuvarlatılmış köşeler için yarıçap ve merkez noktası sağlayan RoundedCorner ve WindowInsets.getRoundedCorner(int position) kullanıma sunuluyor.

Daha fazla bilgi için Yuvarlak köşeler başlıklı makaleye bakın.

Zengin dokunma teknolojisi deneyimleri

Android 12, kullanıcı arayüzü etkinlikleri için bilgilendirici dokunsal geri bildirim, oyunlar için etkileyici ve eğlenceli efektler ve üretkenlik için dikkate dayalı dokunma teknolojisi oluşturma araçlarının kapsamını genişletir.

Aktüatör etkileri

Android 12, en yeni aktüatörlerin daha geniş frekans bant genişliğinden yararlanan düşük değer gibi etkileyici efektler ekler. Oyun geliştiricileri artık birden fazla aktüatörde aynı efekti veya farklı dokunma efektlerini eşzamanlı olarak sunmak için oyun kumandalarında birden fazla farklı etkinleştiriciye bağımsız olarak erişebilirler. Geliştiriciler, zengin dokunma efektlerinin yapı taşı olarak sabit değerleri ve temel öğeleri, kullanıcı arayüzü etkinliklerini geliştirmek için kullanılan sabit değerleri ve daha karmaşık efektler için temel öğeleri sıralamak üzere dokunsal düzenleyiciyi kullanmanızı öneririz. Bu API'leri Pixel 4 cihazlarda deneyebilirsiniz. Ekosistemdeki kullanıcılara en yeni dokunma teknolojisi desteğini sunmak için cihaz üreticisi iş ortaklarımızla çalışmalarımızı sürdürüyoruz.

Ses bağlantılı dokunma teknolojisi

Android 12 uygulamaları, telefonun titreşimini kullanarak sesli oturumdan türetilen dokunma teknolojisiyle geri bildirim üretebilir. Bu da daha sürükleyici oyun ve ses deneyimleri elde etme fırsatı sağlar. Örneğin, dokunma teknolojisiyle geliştirilmiş zil sesleri, arayanların tanınmasına yardımcı olabilir veya bir sürüş oyunu, arazinin çetin hissini taklit edebilir.

Daha fazla bilgi için HapticGenerator referans belgelerini inceleyin.

Uygulama Araması

Android 12, cihaz üzerinde yüksek performanslı arama motoru olan AppSearch'ü bir sistem hizmeti olarak kullanıma sunuyor. AppSearch, uygulamaların yapılandırılmış verileri dizine eklemesine ve yerleşik tam metin arama özellikleriyle bu verilerde arama yapmasına olanak tanır. Ayrıca AppSearch, son derece verimli dizine ekleme ve alma, birden fazla dil desteği ve alaka düzeyi sıralaması gibi yerel arama özelliklerini de destekler.

AppSearch'te dizine ekleme ve aramayı gösteren şema

AppSearch'ün iki farklı çeşidi vardır: uygulamanızın kullanması için Android'in eski sürümleriyle uyumlu yerel bir dizin veya Android 12'de tüm sistem için yönetilen merkezi bir dizin. Uygulamanız, merkezi dizini kullanarak verilerinin sistem kullanıcı arayüzü yüzeylerinde sistemin önceden yüklenmiş Intelligence bileşeni tarafından görüntülenmesine izin verebilir. Sistem kullanıcı arayüzü yüzeylerinde tam olarak hangi verilerin gösterileceği OEM'e bağlıdır. Ayrıca uygulamanız, diğer uygulamalarla güvenli bir şekilde veri paylaşarak bu verilerin içinde de arama yapmalarına olanak tanıyabilir.

Geliştirici kılavuzundan AppSearch hakkında daha fazla bilgi edinin ve geliştirici dostu bir API yüzeyi ve ek açıklama işlemci desteği sunan AppSearch Jetpack kitaplığı ile bu uygulamayı kullanmaya başlayın.

Oyun Modu

Oyun Modu API'si ve Oyun Modu müdahaleleri, kullanıcı ayarlarına veya oyuna özgü yapılandırmalara göre performans veya pil ömrü gibi özelliklere öncelik vererek oyunu optimize etmenizi sağlar.

Daha fazla bilgi için Oyun Modu başlıklı makaleyi inceleyin.

Pencere içinde pencere (PIP) önerileri ve iyileştirmeleri

Android 12'de, PiP modu için aşağıdaki iyileştirmeler kullanıma sunuluyor:

Yeni PiP hareketleri desteği

Android 12 artık PiP penceresi için saklama ve yakınlaştırmak için sıkıştırma hareketlerini desteklemektedir:

  • Kullanıcı, pencereyi saklamak için sol veya sağ kenara sürükleyebilir. Pencereyi çıkarmak için kullanıcı, saklanan pencerenin görünür bölümüne hafifçe dokunabilir veya pencereyi dışarı sürükleyebilir.

  • Kullanıcı artık yakınlaştırmak için sıkıştırma özelliğini kullanarak PiP penceresini yeniden boyutlandırabilir.

Android 12, tam ekran ile PiP pencereleri arasındaki animasyonlu geçişlere önemli görünüm iyileştirmeleri ekledi. Geçerli tüm değişiklikleri uygulamanızı önemle tavsiye ederiz. Bu değişiklikler yapıldıktan sonra, başka bir işlem yapmanıza gerek kalmadan katlanabilir cihazlar ve tabletler gibi büyük ekranlara otomatik olarak ölçeklenir.

Bu özellikler şunlardır:

Gelen aramaların önem derecesini sıralamaya olanak tanıyan yeni telefon araması bildirimleri

Android 12, telefon aramaları için yeni bildirim stilini Notification.CallStyle ekler. Bu şablonu kullandığınızda uygulamanız, durum çubuğunda çağrının saatini gösteren belirgin bir çip göstererek etkin çağrıların önemini gösterebilir. Kullanıcı, bu çipe dokunarak görüşmesine geri dönebilir.

Gelen ve devam eden aramalar kullanıcılar için en kritik öneme sahip olduğundan, bu bildirimlere gölgede en üst sırada verilir. Bu sıralama, sistemin bu öncelikli çağrıları başka cihazlara yönlendirmesine de olanak tanır.

Tüm çağrı türleri için aşağıdaki kodu uygulayın.

Kotlin

// Create a new call with the user as caller.
val incoming_caller = Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build()

Java

// Create a new call with the user as caller.
Person incoming_caller = new Person.Builder()
    .setName("Jane Doe")
    .setImportant(true)
    .build();

Gelen bir arama için arama stilinde bildirim oluşturmak istiyorsanız forIncomingCall() simgesini kullanın.

Kotlin

// Create a call style notification for an incoming call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
    .addPerson(incoming_caller)

Java

// Create a call style notification for an incoming call.
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forIncomingCall(caller, declineIntent, answerIntent))
    .addPerson(incoming_caller);

Devam eden bir arama için arama stilinde bildirim oluşturmak istiyorsanız forOngoingCall() simgesini kullanın.

Kotlin

// Create a call style notification for an ongoing call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forOnGoingCall(caller, hangupIntent))
    .addPerson(second_caller)

Java

// Create a call style notification for an ongoing call.
Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forOnGoingCall(caller, hangupIntent))
    .addPerson(second_caller);

Arama filtrelemek amacıyla arama stilinde bir bildirim oluşturmak için forScreeningCall() simgesini kullanın.

Kotlin

// Create a call style notification for screening a call.
val builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
         Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
    .addPerson(second_caller)

Java

Notification.Builder builder = Notification.Builder(context, CHANNEL_ID)
    .setContentIntent(contentIntent)
    .setSmallIcon(smallIcon)
    .setStyle(
        Notification.CallStyle.forScreeningCall(caller, hangupIntent, answerIntent))
    .addPerson(second_caller);

Bildirimler için zenginleştirilmiş resim desteği

Android 12'de artık MessagingStyle() bildirimlerinde ve BigPictureStyle() bildirimlerinde animasyonlu resimler sağlayarak uygulamanızın bildirim deneyimini zenginleştirebilirsiniz. Ayrıca, uygulamanız artık kullanıcıların mesajlara bildirim gölgesinden yanıt verirken resim mesaj göndermelerine olanak tanıyabilir.

Hareketle gezinme için yoğun içerik modu iyileştirmeleri

Android 12, kullanıcıların kapsamlı modda hareketle gezinme komutlarını gerçekleştirmesini kolaylaştırmak için mevcut davranışları birleştirir. Buna ek olarak, Android 12 yapışkan yoğun içerik modu için geriye dönük uyumluluk davranışı sağlar.

Son kullanılanlar URL paylaşımı (yalnızca Pixel)

Pixel cihazlarda kullanıcılar artık son görüntülenen web içeriklerinin bağlantılarını doğrudan Son Arananlar ekranından paylaşabilirler. Bir uygulamadaki içeriği ziyaret eden kullanıcı, sayfayı kaydırarak Son Kullanılanlar ekranına gidip içeriği görüntülediği uygulamayı bulabilir, ardından URL'yi kopyalamak veya paylaşmak için bağlantı düğmesine dokunabilir.

Daha fazla bilgi için Son kullanılanlar URL paylaşımını etkinleştirme bölümüne bakın.

Güvenlik ve gizlilik

Gizlilik Kontrol Paneli

Dikey bir zaman çizelgesi, konum bilgilerine erişen farklı uygulamaları ve erişimlerin ne zaman gerçekleştiğini gösterir
Şekil 1. Gizlilik Kontrol Paneli'nin bir parçası olan konum kullanım ekranı.

Android 12 veya sonraki bir sürümü çalıştıran desteklenen cihazlarda sistem ayarlarında Gizlilik Kontrol Paneli ekranı gösterilir. Bu ekrandan kullanıcılar, uygulamalar konum, kamera ve mikrofon bilgilerine eriştiğinde gösterilen ayrı ekranlara erişebilir. Her ekranda, farklı uygulamaların belirli bir veri türüne ne zaman eriştiğini gösteren bir zaman çizelgesi gösterilir. Şekil 1'de, konum bilgisi için veri erişimi zaman çizelgesi gösterilmektedir.

Uygulamanız, kullanıcıların konum, kamera veya mikrofon bilgilerine neden eriştiğini anlamalarına yardımcı olmak için kullanıcılara bir gerekçe sunabilir. Bu gerekçe yeni Gizlilik Kontrol Paneli ekranında, uygulamanızın izinler ekranında veya her ikisinde birden görünebilir.

Bluetooth izinleri

Android 12'de BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE ve BLUETOOTH_CONNECT izinleri kullanıma sunuluyor. Bu izinler, Android 12'yi hedefleyen uygulamaların, özellikle de cihaz konumuna erişim gerektirmeyen uygulamaların Bluetooth cihazlarla etkileşime geçmesini kolaylaştırır.

Uygulamanızın Bluetooth izin beyanlarını güncelleme

Cihazınızı Android 12 veya sonraki bir sürümü hedeflemeye hazırlamak için uygulamanızın mantığını güncelleyin. Eski bir Bluetooth izni grubu beyan etmek yerine daha modern bir grup Bluetooth izni beyan edin.

İzin grubu araması

Android 12 veya sonraki sürümlerde sistemin platform tarafından sağlanan izinleri izin grupları halinde nasıl düzenlediğini sorgulayabilirsiniz:

Uygulama yer paylaşımlı pencereleri gizle

Android 12, geliştiricilere, geliştiricinin uygulamasıyla etkileşime giren kullanıcıların gördükleri üzerinde daha fazla kontrol sağlamak için SYSTEM_ALERT_WINDOW iznine sahip uygulamaların çizdiği yer paylaşımlı pencereleri gizleme özelliği sunar.

HIDE_OVERLAY_WINDOWS iznini beyan ettikten sonra uygulama, TYPE_APPLICATION_OVERLAY türündeki tüm pencerelerin, uygulamanın kendi penceresi görünür olduğunda gizlenmesi gerektiğini belirtmek için setHideOverlayWindows() yöntemini çağırabilir. Uygulamalar, işlem onay akışları gibi hassas ekranları görüntülerken bunu yapmayı tercih edebilir.

TYPE_APPLICATION_OVERLAY türünde pencereler gösteren uygulamalar, kullanım alanlarına daha uygun olabilecek alternatifler (ör. pencere içinde pencere veya baloncuklar) değerlendirmelidir.

Bilinen imzalayanlar izni koruması işareti

Android 12'den itibaren imza düzeyindeki izinler için knownCerts özelliği, beyan sırasında bilinen imzalama sertifikalarının özetlerine başvurmanıza olanak tanır.

Uygulamanız bu özelliği beyan edip knownSigner işaretini kullanarak cihaz ve uygulamaların, cihazın üretilip üretilmesi sırasında uygulamaları imzalamak zorunda kalmadan diğer uygulamalara imza izinleri vermesine izin verebilir.

Cihaz özellikleri onayı

Android 12, bu uygulamalar yeni bir anahtar oluşturduğunda onay sertifikasındaki cihaz özelliklerini doğrulayabilecek uygulama grubunu genişletir.

Android 9 (API düzeyi 28) sürümünden itibaren, Keymaster 4.0 veya sonraki bir sürümü kullanan cihaz politikası sahipleri (DPO) bu onay sertifikalarındaki cihaz özelliklerini doğrulayabilir. Android 12'den itibaren, Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen tüm uygulamalar bu doğrulamayı setDevicePropertiesAttestationIncluded() yöntemini kullanarak gerçekleştirebilir.

Oluşturulan cihaz özellikleri aşağıdaki Build alanlarını içerir:

  • BRAND
  • DEVICE
  • MANUFACTURER
  • MODEL
  • PRODUCT

Güvenli kilit ekranı bildirim işlemleri

Notification.Action.Builder sınıfı, Android 12'den itibaren setAuthenticationRequired() yöntemini desteklemektedir. Bu yöntem, uygulamanız belirli bir bildirim işlemini çağırmadan önce cihazın kilidinin açılmasını zorunlu tutar. Bu yöntem, kilitli cihazlardaki bildirimlere ekstra bir güvenlik katmanı eklenmesine yardımcı olur.

BiometricPrompt için yerelleştirilebilir dizeler

Android 12, uygulamanızın biyometrik kimlik doğrulama kullanıcı deneyimini iyileştirmenize yardımcı olacak yeni API'ler sunar. Yeni BiometricManager.Strings iç içe yerleştirilmiş sınıf, uygulamanızın kullanıcı tarafından okunabilen ve yerelleştirilmiş bir düğme etiketi, istem mesajı veya uygulama ayarı adı almasını sağlayan getButtonLabel(), getPromptMessage() ve getSettingName() yöntemlerini içerir. "Yüz tanıma kilidi kullan" veya "Devam etmek için parmak izinizi kullanın" gibi, kullanılan biyometrik kimlik doğrulama yöntemlerine özel, kullanıcılara yönelik daha hassas talimatlar oluşturmak için bu etiketleri kullanın.

Mesajlaşma uygulamalarında kimlik avını algılama (yalnızca Pixel)

Şüpheli bir mesaj algılandığında kullanıcı buna benzer bir mesaj görür.

Desteklenen Pixel cihazlarda Android 12, popüler mesajlaşma uygulamalarından gelen mesajlarda kimlik avı algılamayı çalıştırır. Sistem, şüpheli etkinlikleri tespit etmek için cihaz üzerinde makine öğrenimini kullanır. Algılandığında sistem, mesajlaşma uygulamasının kullanıcı arayüzünün üzerinde kullanıcıları uyarmak için bir güvenlik yer paylaşımı gösterir. Örneğin, kimlik avı algılama özelliği kullanıcıları aşağıdaki potansiyel riskler konusunda uyarabilir:

  • Kod, para vb. gönderme gibi şüpheli istekler
  • Güvenilmeyen URL'ler
  • Kötü amaçlı ekler
  • Kötü amaçlı uygulamalara yönlendiren bağlantılar

Yer paylaşımı, kullanıcıyı uyarmanın yanı sıra kullanıcının şüpheli bir mesaj bildirmesine ve sistem tarafından yayınlanan uyarılar hakkında geri bildirim sağlamasına da olanak tanır.

Geliştiriciler, uygulama manifest dosyalarına com.google.android.ALLOW_PHISHING_DETECTION dizesini içeren yeni bir meta veri etiketi ekleyerek bu özelliğin kapsamı dışında kalmayı seçebilirler. Örnek:

<manifest>
    <application android:name="com.messagingapp">
        <meta-data android:name="com.google.android.ALLOW_PHISHING_DETECTION" android:value="false" />

    </application>
</manifest>

Medya

Uyumlu medya kodu dönüştürme

Sistem, Android 12'den (API düzeyi 31) başlayarak cihazda kaydedilen HEVC(H.265) ve HDR (HDR10 ve HDR10+) videolarının kodunu, standart oynatıcılarla büyük ölçüde uyumlu olan AVC'ye (H.264) otomatik olarak dönüştürebilir. Bu, eski uygulamalarla uyumluluktan ödün vermeden kullanılabilir olduklarında modern codec'lerden yararlanır.

Daha fazla ayrıntı için uyumlu medya kodu dönüştürme bölümüne bakın.

Performans sınıfı

Android 12, performans sınıfı adlı bir standart sunuyor. Performans sınıfı, Android'in temel gereksinimlerinin ötesinde donanım özelliklerini belirtir. Her Android cihaz, desteklediği performans sınıfını belirtir. Geliştiriciler çalışma zamanında cihazın performans sınıfını kontrol edebilir ve cihazın özelliklerinden tam olarak yararlanan yükseltilmiş deneyimler sunabilir.

Daha fazla bilgi için Performans sınıfını inceleyin.

Video kodlama iyileştirmeleri

Android 12, video kodlama için miktar belirleme parametresi (QP) değerini kontrol etmek üzere geliştiricilerin tedarikçiye özel koddan kaçınmasına olanak tanıyan standart bir anahtar grubu tanımlar.

Yeni anahtarlar MediaFormat API'de ve NDK Media kitaplığında kullanılabilir.

Android 12'den başlayarak video kodlayıcılar bir minimum kalite eşiğini zorunlu kılar. Böylece, sahne karmaşıklığının yüksek olduğu videoları kodlarken kullanıcıların çok düşük kaliteyle karşılaşmaması sağlanır.

Ses odağı

Android 12'den (API düzeyi 31) itibaren, bir uygulama odakta başka bir uygulama oyun oynarken ses odağı istediğinde sistem, çalan uygulamayı devre dışı bırakır.

Daha fazla ayrıntı için Android 12 ve sonraki sürümlerde ses odağı bölümüne bakın.

MediaDrm güncellemeleri

Mevcut MediaDrm API'leriyle güvenli bir kod çözücü bileşeninin gerekli olup olmadığını belirlemek için şu adımları uygulamanız gerekir:

  1. MediaDrm oluşturun.
  2. Oturum kimliğini almak için bir oturum açın.
  3. Oturum kimliğini kullanarak bir MediaCrypto oluşturun.
  4. Şu numaraya telefon et: MediaCrypto.requiresSecureDecoderComponent(mimeType).

Yeni requiresSecureDecoder(@NonNull String mime) ve requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level) yöntemleriyle, bir MediaDrm oluşturduktan hemen sonra bunu belirleyebilirsiniz.

Kamera

Camera2 tedarikçi firma uzantıları

Cihaz üreticisi iş ortaklarımızın çoğu, uygulamaların cihazlarında farklı deneyimler oluşturmak için kullanmalarını istedikleri özel kamera uzantıları (ör. Boke, HDR, Gece modu vb.) geliştirmiştir. KameraX kitaplığı bu özel satıcı uzantılarını zaten desteklemektedir. Android 12'de bu tedarikçi firma uzantıları artık doğrudan platformda kullanıma sunuluyor.

Bu özellik, karmaşık Camera2 uygulamalarına sahip uygulamaların eski kodlarda önemli değişiklikler yapmak zorunda kalmadan tedarikçi firma uzantılarından yararlanmasına yardımcı olur. Camera2 Uzantı API'leri, CameraX'teki uzantıların aynısını sunar ve bunlar, birçok farklı cihazda zaten desteklenmektedir. Böylece bunları herhangi bir ek yapılandırma olmadan kullanabilirsiniz.

Daha fazla bilgi için CameraExtensionCharacteristics sayfasını inceleyin.

Quad bayer kamera sensörü desteği

Günümüzde birçok Android cihaz, genellikle Quad veya Nona Bayer desenli ultra yüksek çözünürlüklü kamera sensörleri içerir. Bu sensörler, görüntü kalitesi ve düşük ışık performansı açısından büyük esneklik sağlar. Android 12, üçüncü taraf uygulamalarının bu çok yönlü sensörlerden tam anlamıyla yararlanmasını sağlayan yeni platform API'leri sunar. Yeni API'ler bu sensörlerin benzersiz davranışını destekler ve tam çözünürlük veya "maksimum çözünürlük" modunda çalışırken ya da "varsayılan" modda çalışırken farklı akış yapılandırmalarını ve kombinasyonlarını destekleyebileceklerini dikkate alır.

Grafikler ve resimler

Uygulamaların mezar kalıntılarına doğrudan erişmesini sağlama

Android 12'den itibaren uygulamanızın yerel kilitlenme mezar taşına ApplicationExitInfo.getTraceInputStream() yöntemi aracılığıyla protokol arabelleği olarak erişebilirsiniz. Protokol arabelleği, bu şema kullanılarak serileştirilir. Daha önce bu bilgilere erişmenin tek yolu Android Debug Bridge'i (adb) kullanmaktı.

Daha fazla bilgi için Uygulamalara mezar taşı izlerine doğrudan erişim izni verme başlıklı makaleyi inceleyin.

AVIF görsel desteği

Android 12, AV1 Resim Dosyası Biçimi'ni (AVIF) kullanan resimler için destek sunar. AVIF, AV1 kullanılarak kodlanan görüntüler ve görüntü dizileri için bir kapsayıcı biçimidir. AVIF, video sıkıştırmadaki kare içi kodlanmış içerikten faydalanır. Bu sayede, JPEG gibi eski resim biçimleriyle karşılaştırıldığında aynı dosya boyutu için resim kalitesi önemli ölçüde artar. Bu biçimin avantajlarını derinlemesine incelemek için Jake Archibald'ın blog yayınına bakın.

Daha kolay bulanıklaştırma, renk filtreleri ve diğer efektler

Android 12, View'lere ve oluşturma hiyerarşilerine bulanıklaştırma, renk filtresi, Android gölgelendirici efektleri gibi yaygın grafik efektlerini uygulayan yeni RenderEffect sürümünü ekler. Efektler zincir efektler (iç ve dış efekt oluşturur) veya karışık efektler olarak birleştirilebilir. Farklı Android cihazlar, sınırlı işlem gücü nedeniyle özelliği destekleyebilir veya desteklemeyebilir.

Efektler, View.setRenderEffect(RenderEffect) çağrısı yapılarak View için temel RenderNode öğesine de uygulanabilir.

RenderEffect uygulamak için:

view.setRenderEffect(RenderEffect.createBlurEffect(radiusX, radiusY, SHADER_TILE_MODE))

Yerel animasyonlu resim kodu çözme

Android 12'de NDK ImageDecoder API'sinin kapsamı, animasyonlu GIF ve animasyonlu WebP dosya biçimlerini kullanan resimlerden tüm kare ve zamanlama verilerinin kodunu çözecek şekilde genişletildi. Bu API, Android 11'de kullanıma sunulduğunda bu biçimlerdeki animasyonlardan yalnızca ilk resmin kodunu çözmüştür.

APK boyutunu daha da küçültmek ve gelecekte güvenlik ve performansla ilgili güncellemelerden yararlanmak için üçüncü taraf kitaplıklar yerine ImageDecoder kullanın.

API hakkında daha fazla bilgi için API referansına ve GitHub'daki örneğe bakın.

Bağlantı

Tamamlayıcı uygulamaları açık tutma

Cihazı yönetmek için tamamlayıcı uygulamaların çalışmaya devam etmesi gerekirken Android 12, aşağıdaki işlemleri yapan API'leri kullanıma sundu:

  • Kapsama alanında bir tamamlayıcı cihaz olduğunda uygulamayı uyandırmanıza olanak tanır.
  • Cihaz kapsama alanı içinde kalırken işlemin çalışmaya devam edeceğini garanti eder.

API'leri kullanmak için cihazlarınızın Companion Device Manager kullanılarak bağlanmış olması gerekir. Daha fazla bilgi için CompanionDeviceManager.startObservingDevicePresence() ve CompanionDeviceService.onDeviceAppeared() sayfalarına göz atın.

Companion Cihaz Yöneticisi profilleri

Tek bir istekte birden fazla izin istemek için tamamlayıcı cihaz profilini kullanan izinler iletişim kutusu.

Android 12 (API düzeyi 31) ve sonraki sürümlerdeki iş ortağı uygulamaları, kol saatine bağlanırken tamamlayıcı cihaz profillerini kullanabilir. Profil kullanmak, cihaz türüne özel izin grubunun verilmesini tek bir adımda toplayarak kayıt sürecini basitleştirir.

Paket halinde sunulan izinler, cihaz bağlandıktan sonra tamamlayıcı uygulamaya verilir ve yalnızca cihaz ilişkilendirildiğinde geçerli olur. Uygulamayı silmek veya ilişkilendirmeyi kaldırmak izinleri kaldırır.

Daha fazla bilgi için AssociationRequest.Builder.setDeviceProfile() sayfasını inceleyin.

Bant genişliği tahmini iyileştirmeleri

Android 12'de, getLinkDownstreamBandwidthKbps() ve getLinkUpstreamBandwidthKbps() tarafından sağlanan bant genişliği tahmin özellikleri hem kablosuz hem de hücresel bağlantı için iyileştirilmiştir. Döndürülen değerler artık cihazdaki tüm uygulamalarda kullanıcının operatör veya kablosuz ağ SSID'si, ağ türü ve sinyal düzeyi başına tüm zamanlar ağırlıklı ortalama işleme hızını temsil etmektedir. Bu yöntem, beklenen işleme hızıyla ilgili daha doğru ve gerçekçi bir tahmin döndürebilir, uygulamanızın baştan başlatılması için tahminler sunabilir ve diğer işleme hızı tahmin yöntemlerini kullanmaya kıyasla daha az döngü gerektirir.

Wi-Fi Aware (NAN) geliştirmeleri

Android 12, Wi-Fi Aware'e bazı geliştirmeler ekler:

  • Android 12 (API düzeyi 31) ve sonraki sürümleri çalıştıran cihazlarda, uygulamanız, hizmetin durması veya kapsama alanı dışına çıkması nedeniyle keşfedilen bir hizmeti kaybettiğinde uyarı almak için onServiceLost() geri çağırmasını kullanabilirsiniz.
  • Birden fazla veri yolunun (NAN Veri Yolları) oluşturulma yöntemi, daha verimli olacak şekilde değişiyor. Önceki sürümlerde, L2 mesajlaşması aracılığıyla başlatanların emsalleriyle ilgili bilgiler paylaşılıyordu. Bu da gecikmeye neden oluyordu. Android 12 ve sonraki sürümleri çalıştıran cihazlarda, yanıtlayıcı (sunucu) herhangi bir eşi kabul edecek şekilde yapılandırılabilir. Yani, başlatan bilgilerini önceden bilmesi gerekmez. Bu, veri yolu getirme işlemini hızlandırır ve yalnızca tek bir ağ isteğiyle birden çok noktadan noktaya bağlantı sağlar.
  • Android 12 ve sonraki sürümleri çalıştıran cihazlarda çerçevenin kaynakların tükenmesi nedeniyle keşif veya bağlantı isteklerini reddetmesini önlemek için WifiAwareManager.getAvailableAwareResources() çağrısını yapabilirsiniz. Bu yöntemin döndürülen değeri; mevcut veri yollarının sayısını, kullanılabilir yayınlama oturumlarının sayısını ve kullanılabilir abone oturumlarının sayısını elde etmenizi sağlar.

Eşler arası eş zamanlı + İnternet bağlantısı

Android 12 (API düzeyi 31) ve sonraki sürümleri hedefleyen cihazlar, donanım desteği olan cihazlarda çalıştığında Eşler arası bağlantıların kullanılması, eş cihazla bağlantı oluştururken mevcut kablosuz bağlantınızın kesilmesine neden olmaz. Bu özelliğin desteklenip desteklenmediğini kontrol etmek için WifiManager.isMultiStaConcurrencySupported() değerini kullanın.

NFC ödemeleri için ekran kapatmayı etkinleştir

Android 12 ve sonraki sürümleri hedefleyen uygulamalarda requireDeviceScreenOn cihazını false olarak ayarlayarak NFC ödemelerini cihazın ekranı olmadan etkinleştirebilirsiniz. Ekran kapalıyken veya kilitliyken NFC ödemeleriyle ilgili daha fazla bilgi için Ekran kapalı ve kilit ekranı davranışı bölümüne bakın.

Depolama

Android 12'de aşağıdaki depolama alanı yönetimi özellikleri sunulur:

Temel işlevler

Otomatik uygulama güncellemeleri

Android 12, PackageInstaller API'yi kullanan uygulamalar için setRequireUserAction() yöntemini kullanıma sunuyor. Bu yöntem, yükleyici uygulamalarının kullanıcının işlemi onaylamasına gerek kalmadan uygulama güncellemesi gerçekleştirmesine olanak tanır.

Cihaz yonga seti bilgileri

Android 12, android.os.Build öğesine iki sabit değer ekleyerek SoC yonga seti tedarikçi firması ve model bilgilerini SDK aracılığıyla gösterir. Bu bilgileri, sırasıyla Build.SOC_MANUFACTURER ve Build.SOC_MODEL çağırarak alabilirsiniz.

Temel Java API'lerinde yapılan güncellemeler

Geliştiricilerle yaptığımız ortak çalışmalar ve istekler doğrultusunda, Android 12'ye aşağıdaki temel kitaplıkları ekledik:

Sınıf API'ler
java.lang.Deprecated
java.lang.Byte
java.lang.Short
java.lang.Math
java.lang.StrictMath
java.util.Set copyOf()
java.util.Map copyOf()
java.util.List copyOf()
java.time.Duration
java.time.LocalTime