Özelliklere ve API'lere Genel Bakış

Android 12, geliştiriciler için harika 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ılan API'lerin ayrıntılı listesi için API fark raporunu okuyun. Yeni API'lerle ilgili ayrıntılar için Android API referansını ziyaret edin. Yeni API'ler, görünürlük sağlamak için vurgulanmıştır. Ayrıca, platform değişikliklerinin uygulamalarınızı etkileyebileceği alanlar hakkında bilgi edinmek için Android 12'yi hedefleyen uygulamalar ve tüm uygulamalar için Android 12 davranış değişikliklerine göz atmayı unutmayın.

Kullanıcı deneyimi

Material You

Android 12'de, daha kişiselleştirilmiş, güzel uygulamalar oluşturmanıza yardımcı olan Material You adlı yeni bir tasarım dili kullanıma sunuldu. En yeni Materyal Tasarım 3 güncellemelerinin tümünü uygulamalarınıza getirmek 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ılardaki kullanıcı ve geliştirici deneyimini iyileştirmek için mevcut Widgets API'yi yeniliyor. Widget'ınızın Android 12 ile uyumlu olduğundan emin olmanıza ve widget'ı yeni özelliklerle yenilemenize yardımcı olacak bir rehber oluşturduk.

Daha fazla bilgi için Android 12 widget iyileştirmeleri bölümüne göz atın.

Zengin içerik ekleme

Android 12, uygulamanızın pano, klavye veya sürükleyip bırakma gibi mevcut herhangi bir kaynaktan zengin içerik almasına olanak tanıyan yeni ve birleşik bir API'yi kullanıma 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 sunar. Bu animasyonda lansman anından uygulama içi hareket, uygulama simgesini gösteren başlangıç ekranı ve uygulamaya geçiş imkanı bulunur. Daha fazla bilgi için başlangıç ekranları geliştirici kılavuzuna bakın.

Köşeleri yuvarlatılmış API'ler

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

Daha fazla bilgi için yuvarlatılmış köşeler bölümüne bakın.

Zengin dokunsal geri bildirim 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şletiyor.

Aktüatör efektleri

Android 12, en yeni aktüatörlerin daha geniş frekans bant genişliğinden yararlanan düşük tik gibi etkileyici efektler ekler. Oyun geliştiricileri artık birden fazla aktüatörde aynı etkiyi veya farklı dokunma teknolojisi efektlerini eşzamanlı olarak sunmak için oyun denetleyicilerinde bağımsız olarak birden fazla aktüatöre erişebilir. Geliştiricilere, zengin dokunsal efektlerin yapı taşları olarak sabit değerleri ve temel öğeleri (kullanıcı arayüzü etkinliklerini geliştirmek için sabit değerler, daha karmaşık efektler için temel öğeleri sıralamak için ise dokuntik oluşturucu) kullanmalarını öneririz. Bu API'leri Pixel 4 cihazlarda deneyebilirsiniz. Biz de ekosistemdeki kullanıcılara en son dokunma teknolojisi desteği sunmak için cihaz üreticisi iş ortaklarımızla çalışmaya devam ediyoruz.

Sese bağlı dokunsal geri bildirim efektleri

Android 12 uygulamaları, telefonun titreşimini kullanarak sesli oturumdan elde edilen dokunsal geri bildirim oluşturabilir. Bu da daha sürükleyici oyun ve ses deneyimleri için bir fırsat sunar. Örneğin, dokunma teknolojisiyle geliştirilmiş zil sesleri arayanları tanımlamanıza yardımcı olabilir veya bir sürüş oyunu engebeli arazi hissini simüle edebilir.

Daha fazla bilgi için HapticGenerator referans belgelerine göz atın.

Uygulama Araması

Android 12, cihazda yüksek performanslı arama motoru olan AppSearch'ü bir sistem hizmeti olarak kullanıma sundu. 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, çok dilli destek ve alaka düzeyi sıralaması gibi yerel arama özelliklerini destekler.

AppSearch içinde dizine ekleme ve arama yapmayı gösteren şema

AppSearch iki farklı şekilde sunulur: Uygulamanızın eski Android sürümleriyle uyumlu olan yerel bir dizini veya Android 12'de tüm sistem için korunan merkezi bir dizin. Uygulamanız, merkezi dizini kullanarak verilerinin, sistemin önceden yüklenmiş bilgi bileşeni tarafından sistem kullanıcı arayüzü yüzeylerinde 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, verileri diğer uygulamalarla güvenli bir şekilde paylaşarak diğer uygulamaların da bu verilerde arama yapmasını sağlayabilir.

AppSearch hakkında daha fazla bilgiyi geliştirici kılavuzundan edinebilir ve bu uygulamayı geliştirici dostu bir API yüzeyinin yanı sıra ek açıklama işlemcisi desteği sağlayan AppSearch Jetpack kitaplığıyla kullanmaya başlayabilirsiniz.

Oyun Modu

Oyun Modu API'si ve Oyun Modu müdahaleleri, kullanıcı ayarlarına veya oyuna özgü yapılandırmalara bağlı olarak performans veya pil ömrü gibi özelliklere öncelik vererek oyunu optimize etmenize olanak tanır.

Daha fazla bilgi için Oyun Modu bölümünü inceleyin.

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

Android 12'de, PiP modu için aşağıdaki iyileştirmeler yapıldı:

Yeni PiP hareketleri için destek

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 gizlemek için pencereyi sol veya sağ kenara sürükleyebilir. Pencerenin kilidini açmak için kullanıcı, saklanmış pencerenin görünür bölümüne dokunabilir veya 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 ve PiP pencereler arasındaki animasyonlu geçişlere önemli estetik iyileştirmeler ekledi. Tüm geçerli değişiklikleri uygulamanızı kesinlikle öneririz. Uygulama tamamlandıktan sonra, bu değişiklikler başka bir işlem gerektirmeden katlanabilir cihazlar ve tabletler gibi büyük ekranlara göre otomatik olarak ölçeklenir.

Bu özellikler şunlardır:

Gelen aramaların önem sıralamasını sağlayan yeni telefon araması bildirimleri

Android 12'de, telefon aramaları için yeni bir bildirim stili Notification.CallStyle eklendi. Bu şablonu kullandığınızda uygulamanız, durum çubuğunda çağrının saatini gösteren belirgin bir çip görüntüleyerek etkin çağrıların önemini belirtebilir. Kullanıcı bu çipe dokunarak görüşmeye geri dönebilir.

Gelen ve devam eden çağrılar kullanıcılar için en kritik öneme sahip olduklarından, bu bildirimlere gölgede en üst sıralarda yer verilir. Bu sıralama, sistemin bu öncelikli aramaları potansiyel olarak 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 stili bildirim oluşturmak üzere forIncomingCall() aracını 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 çağrı için arama stili bildirim oluşturmak üzere forOngoingCall() aracını 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);

Bir aramayı filtrelemek üzere arama stili bildirim oluşturmak için forScreeningCall() aracını 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 ile artık MessagingStyle() ve BigPictureStyle() bildirimlerinde animasyonlu resimler sağlayarak uygulamanızın bildirim deneyimini zenginleştirebilirsiniz. Ayrıca uygulamanız artık kullanıcıların, iletileri bildirim gölgesinden yanıtladıkları zaman resim mesajı gönderebilmelerini sağlayabilir.

Hareketle gezinme için kapsamlı mod iyileştirmeleri

Android 12, kullanıcıların kapsamlı moddayken hareketle gezinme komutlarını gerçekleştirmelerini kolaylaştırmak için mevcut davranışları birleştirir. Ayrıca Android 12, sürekli yoğun içerik modu için geriye dönük uyumluluk davranışı sunar.

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 Kullanılanlar ekranından paylaşabilirler. Kullanıcı bir uygulamadaki içeriği ziyaret ettikten sonra 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ın 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 sürümleri çalıştıran desteklenen cihazlarda sistem ayarlarında bir Gizlilik Kontrol Paneli ekranı görünür. Bu ekranda kullanıcılar, uygulamaların konum, kamera ve mikrofon bilgilerine eriştiğini gösteren ayrı ekranlara erişebilirler. Her ekranda, farklı uygulamaların belirli bir veri türüne ne zaman eriştiğine dair bir zaman çizelgesi gösterilir. Şekil 1'de konum bilgilerine ilişkin veri erişimi zaman çizelgesi gösterilmektedir.

Uygulamanız, kullanıcılara bir gerekçe sunarak uygulamanızın konum, kamera veya mikrofon bilgilerine neden eriştiğini anlamalarına yardımcı olabilir. Bu gerekçe, yeni Gizlilik Kontrol Paneli ekranında, uygulamanızın izinler ekranında veya her ikisinde birden gösterilebilir.

Bluetooth izinleri

Android 12; BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE ve BLUETOOTH_CONNECT izinlerini kullanıma sunuyor. Bu izinler, Android 12'yi hedefleyen uygulamaların, özellikle de cihaz konumuna erişim gerektirmeyen uygulamalarda Bluetooth cihazlarla etkileşimde bulunmasını kolaylaştırır.

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

Cihazınızı Android 12 veya sonraki sürümleri hedeflemeye hazırlamak için uygulamanızın mantığını güncelleyin. Eski Bluetooth izinleri grubunu belirtmek yerine daha modern bir Bluetooth izinleri grubunu 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şımı pencerelerini gizle

Android 12, SYSTEM_ALERT_WINDOW iznine sahip uygulamalar tarafından çizilen yer paylaşımlı pencereleri gizleme özelliğini kullanıma sunuyor.

HIDE_OVERLAY_WINDOWS iznini beyan ettikten sonra, bir uygulama kendi penceresi görünür olduğunda TYPE_APPLICATION_OVERLAY türündeki tüm pencerelerin 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, pencere içinde pencere veya baloncuk gibi kullanım alanları için daha uygun olabilecek alternatifler kullanmayı düşünmelidir.

Bilinen imzalayanlar izni koruma işareti

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

Uygulamanız, bu özelliği beyan edip knownSigner işaretini kullanarak cihazların ve uygulamaların, cihaz üretimi ve gönderimi 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ında bulunan cihaz özelliklerini doğrulayabilen uygulama grubunu genişletir.

Android 9'dan (API düzeyi 28) itibaren, Keymaster 4.0 veya sonraki sürümleri kullanan cihaz politikası sahipleri (DPO'lar) 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

Android 12'den itibaren Notification.Action.Builder sınıfı setAuthenticationRequired() yöntemini destekler. 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 fazladan bir güvenlik katmanı eklemeye 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'leri kullanıma sunar. Yeni BiometricManager.Strings iç içe yerleştirilmiş sınıf, uygulamanızın kullanıcı tarafından okunabilir 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. Kullanılan biyometrik kimlik doğrulama yöntemlerine özel, "Yüz tanıma kilidi kullan" veya "Devam etmek için parmak izinizi kullanın" gibi, kullanıcılara yönelik daha hassas talimatlar oluşturmak için bu etiketleri kullanın.

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

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

Android 12, desteklenen Pixel cihazlarda popüler mesajlaşma uygulamalarında alınan mesajlarda kimlik avı algılama özelliğini çalıştırır. Sistem, şüpheli işlemleri algılamak için cihaz üzerindeki makine öğrenimini kullanır. Algılandığında sistem, kullanıcıları uyarmak için mesajlaşma uygulamasının kullanıcı arayüzünün üst kısmında bir güvenlik yer paylaşımı görüntüler. Örneğin, kimlik avı algılaması kullanıcıları aşağıdaki potansiyel riskler konusunda uyarabilir:

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

Bu yer paylaşımı, kullanıcıyı uyarmanın yanı sıra kullanıcının şüpheli bir mesajı bildirmesine ve sistem tarafından gönderilen uyarılarla ilgili 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. Örneğin:

<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 cihaza kaydedilen HEVC(H.265) ve HDR (HDR10 ve HDR10+) videoların kodunu AVC'ye (H.264) otomatik olarak dönüştürebilir. Bu biçim, standart oynatıcılarla yaygın olarak uyumludur. 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'de, performans sınıfı adı verilen bir standart kullanıma sunulmuştur. Performans sınıfı, Android'in temel gereksinimlerinin ötesinde donanım özelliklerini belirtir. Her Android cihaz, desteklediği performans sınıfını bildirir. 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ı bölümüne bakın.

Video kodlama iyileştirmeleri

Android 12, video kodlama için nicelik parametresi (QP) değerini kontrol etmek için standart bir anahtar grubu tanımlayarak geliştiricilerin tedarikçi firmaya özel kodlardan kaçınmasına olanak tanır.

Yeni anahtarları MediaFormat API'de ve NDK Medya kitaplığında bulabilirsiniz.

Android 12'den itibaren video kodlayıcılar minimum kalite eşiği uygular. Bu, sahne karmaşıklığı yüksek olan videoları kodlarken kullanıcıların çok düşük kalite yaşamamasını garantiler.

Ses odağı

Android 12'den (API düzeyi 31) başlayarak, bir uygulama ses odağı isteğinde bulunurken başka bir uygulama odaklanıp çalmaya başladığında sistem, oynatılan uygulama yavaşça devre dışı bırakılır.

Daha fazla ayrıntı için Android 12 ve sonraki sürümlerde ses odağı başlıklı makaleyi inceleyin.

MediaDrm güncellemeleri

Mevcut MediaDrm API'leriyle güvenli bir kod çözücü bileşeni gerekip gerekmediğini belirlemek için şu adımları uygulamanız gerekir:

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

requiresSecureDecoder(@NonNull String mime) ve requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level) adlı yeni yöntemler sayesinde MediaDrm oluşturduktan hemen sonra bunu belirleyebilirsiniz.

Kamera

Kamera2 satıcı uzantıları

Cihaz üreticisi iş ortaklarımızın birçoğu, uygulamaların cihazlarında farklı deneyimler oluşturmak için kullanmasını istedikleri Bokeh, HDR, Gece modu gibi özel kamera uzantıları oluşturmuştur. KameraX kitaplığı bu özel tedarikçi firma uzantılarını zaten desteklemektedir. Bu satıcı uzantıları, Android 12'de artık doğrudan platformda gösterilir.

Bu ek, karmaşık Camera2 uygulamalarına sahip uygulamaların eski kodda önemli değişiklikler yapmak zorunda kalmadan tedarikçi firma uzantılarından yararlanmasına yardımcı olur. Camera2 Extension API'leri, CameraX'teki ile tam olarak aynı uzantı kümesini gösterir ve bunlar zaten birçok farklı cihazda desteklenmektedir. Bu nedenle, bunları ek yapılandırma olmadan kullanabilirsiniz.

Daha fazla bilgi için CameraExtensionCharacteristics adresini inceleyin.

Quad bayer kamera sensörü desteği

Günümüzde birçok Android cihaz, genellikle Quad veya Nona Bayer desenlerine sahip ultra yüksek çözünürlüklü kamera sensörleriyle birlikte gönderilmektedir. Bunlar, resim kalitesi ve düşük ışık performansı açısından büyük esneklik sunar. 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ükte veya "maksimum çözünürlük" modunda ve "varsayılan" modda çalışırken farklı akış yapılandırmalarını ve kombinasyonlarını destekleyebileceğini dikkate alır.

Grafikler ve resimler

Uygulamaların mezar taşı izlerine doğrudan erişim sağlaması

Android 12'den itibaren uygulamanızın yerel kilitlenme mezarı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 (adb) üzerinden yapılıyordu.

Daha fazla bilgi için Uygulamalara, mezar izlerine doğrudan erişim sağlama konusuna bakın.

AVIF görüntü desteği

Android 12'de, AV1 Görüntü Dosya Biçimi (AVIF) kullanan resimler için destek sunulmaktadır. 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ırma işleminde kare içi kodlanmış içerikten yararlanır. Bu özellik, JPEG gibi eski resim biçimleriyle karşılaştırıldığında, aynı dosya boyutu için resim kalitesini önemli ölçüde iyileştirir. Bu biçimin avantajları hakkında ayrıntılı bilgi 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'de View'lara ve oluşturma hiyerarşilerine bulanıklaştırma, renk filtreleri ve Android gölgelendirici efektleri gibi yaygın grafik efektlerinin uygulandığı yeni RenderEffect eklenir. Efektler, zincir efektleri (iç ve dış bir efekt oluşturur) veya karışık efektler olarak birleştirilebilir. İşlem gücünün sınırlı olması nedeniyle bu özelliği farklı Android cihazlar destekleyebilir veya desteklemeyebilir.

View.setRenderEffect(RenderEffect) yöntemini çağırarak View öğeleri için temel RenderNode efektlerine de uygulanabilir.

RenderEffect uygulamak için:

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

Yerel animasyonlu resim kod çözme

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

APK boyutunu daha da küçültmek, güvenlik ve performansla ilgili gelecekteki 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ı uyanık tutma

Android 12, cihazı yönetmek için çalışmaya devam eden tamamlayıcı uygulamaların ihtiyacını desteklemek amacıyla aşağıdakileri yapan API'leri kullanıma sunuyor:

  • Kapsama alanında bir tamamlayıcı cihaz olduğunda uygulamayı uyandırmanızı sağlar.
  • Cihaz kapsama alanında kalırken işlemin çalışmaya devam edeceğinden emin olun.

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 bakın.

Companion Cihaz Yöneticisi profilleri

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

Android 12 (API düzeyi 31) ve sonraki sürümlerdeki iş ortağı uygulamaları, bir saate bağlanırken tamamlayıcı cihaz profillerini kullanabilir. Profil kullanmak, cihaz türüne özel izinlerin verilmesini tek adımda gruplandırarak kayıt işlemini kolaylaştırır.

Paketlenmiş izinler, cihaz bağlandığında tamamlayıcı uygulamaya verilir ve yalnızca cihaz ilişkilendirildiği sürece geçerli olur. Uygulamayı sildiğinizde veya ilişkilendirmeyi kaldırdığınızda izinler kaldırılır.

Daha fazla bilgi için AssociationRequest.Builder.setDeviceProfile() adresini inceleyin.

Bant genişliği tahminiyle ilgili iyileştirmeler

Android 12'de getLinkDownstreamBandwidthKbps() ve getLinkUpstreamBandwidthKbps() tarafından sağlanan bant genişliği tahmini ö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 operatör veya kablosuz ağ SSID'si, ağ türü ve sinyal düzeyi başına kullanıcının tüm zamanlara ait ağırlıklı ortalama işleme hızını temsil eder. Bu sayede, beklenen işleme hızına dair daha doğru ve gerçekçi bir tahmin elde edilebilir, uygulamanızın baştan başlatılmasıyla ilgili tahminler sağlanabilir ve diğer işleme hızı tahmin yöntemleri kullanılmasına kıyasla daha az döngü gerekebilir.

Wi-Fi Aware (NAN) geliştirmeleri

Android 12, Wi-Fi Aware özelliğine 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ğırma işlevini kullanabilirsiniz.
  • Birden fazla veri yolunun (NAN Veri Yolu) oluşturulma şekli daha verimli olacak şekilde değiştiriliyor. Önceki sürümlerde, başlatıcıların eş bilgilerini paylaşmak için L2 mesajları kullanılıyor ve bu da gecikmelere yol açıyordu. Android 12 ve sonraki sürümleri çalıştıran cihazlarda yanıt veren (sunucu) herhangi bir eş düzey kullanıcı kabul edecek şekilde yapılandırılabilir. Bu durumda, başlatıcı 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ı yapılmasına olanak tanır.
  • Çerçevenin, kaynakların tükenmesi nedeniyle keşif veya bağlantı isteklerini reddetmesini önlemek için Android 12 ve sonraki sürümleri çalıştıran cihazlarda WifiAwareManager.getAvailableAwareResources() yöntemini çağırabilirsiniz. Bu yöntemin döndürdüğü değer; kullanılabilir veri yolu sayısını, kullanılabilir yayınlama oturumu sayısını ve mevcut abone oturumlarının sayısını elde etmenizi sağlar.

Eşzamanlı Eşler Arası + İ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 bağlantısını kesmez. Bu özellikle ilgili destek almak için WifiManager.isMultiStaConcurrencySupported() adresini kullanın.

NFC ödemeleri için ekranı kapatma özelliğini etkinleştirin

Android 12 ve sonraki sürümleri hedefleyen uygulamalarda, requireDeviceScreenOn seçeneğini false olarak ayarlayarak NFC ödemelerini cihazın ekranı açık olmadan etkinleştirebilirsiniz. Ekran kapalıyken veya kilitliyken NFC ödemeleri hakkında daha fazla bilgi edinmek için Ekran kapalı ve kilit ekranı davranışı konusuna bakın.

Depolama

Android 12, aşağıdaki depolama yönetimi özelliklerini sunar:

Temel işlevler

Otomatik uygulama güncellemeleri

Android 12, PackageInstaller API 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ını gerektirmeden uygulama güncellemeleri yapmasına olanak tanır.

Cihaz yonga seti bilgileri

Android 12, android.os.Build öğesine çip üzerinde sistem (SoC) yonga seti tedarikçi firması ve model bilgilerini SDK aracılığıyla gösteren iki sabit değer ekler. Bu bilgiyi sırasıyla Build.SOC_MANUFACTURER ve Build.SOC_MODEL çağrılarını yaparak öğrenebilirsiniz.

Temel Java API'leri için güncellemeler

İstekler ve geliştiricilerle yapılan ortak çalışmalar doğrultusunda, Android 12'ye aşağıdaki temel kitaplıkları ekledik:

Ders 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