Özelliklere ve API'lere Genel Bakış

Android 12, geliştiriciler için harika yeni özellikler ve API'ler sunuyor. Aşağıdaki bölümler, uygulamalarınızdaki ö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ı listesi için API farkı raporunu inceleyin. Yeni API'lerle ilgili ayrıntılar için Android API referansını ziyaret edin. Yeni API'ler görünürlük 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'deki davranış değişikliklerini inceleyin.

Kullanıcı deneyimi

Material You

Android 12, Material You adlı yeni bir tasarım dili sunarak daha kişiselleştirilmiş ve güzel uygulamalar geliştirmenize yardımcı olur. En son Material Design 3 güncellemelerinin tümünü uygulamalarınıza getirmek için Material Design Components'ın alfa sürümünü deneyin.

Material You

Widget'larla ilgili iyileştirmeler

Android 12, platform ve başlatıcılarda kullanıcı ve geliştirici deneyimini iyileştirmek için mevcut Widget API'sini yeniliyor. Widget'ınızın Android 12 ile uyumlu olmasını sağlamanıza ve yeni özelliklerle yenilemenize yardımcı olacak bir rehber hazırladık.

Daha fazla bilgi için Android 12'deki widget iyileştirmeleri başlıklı makaleyi inceleyin.

Zengin içerik ekleme

Android 12, uygulamanızın mevcut herhangi bir kaynaktan (pano, klavye veya sürükle ve bırak) zengin içerik almasına olanak tanıyan yeni bir birleştirilmiş API sunar.

Daha fazla bilgi için Zengin içerik alma başlıklı makaleyi inceleyin.

Uygulama açılış ekranları API'si

Android 12, tüm uygulamalar için yeni bir uygulama açılış animasyonu sunar. Bu animasyonda, açılış noktasından uygulamaya giriş hareketi, uygulama simgesini gösteren bir başlangıç ekranı ve uygulamanın kendisine geçiş yer alır. Daha fazla ayrıntı için açılış ekranları geliştirici kılavuzuna bakın.

Yuvarlak köşe API'leri

Android 12, yuvarlatılmış köşeler için yarıçapı ve merkez noktasını sağlayan RoundedCorner ve WindowInsets.getRoundedCorner(int position) özelliklerini sunar.

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

Zengin dokunsal deneyimler

Android 12, kullanıcı arayüzü etkinlikleri için bilgilendirici dokunsal geri bildirimler, oyun için etkileyici ve keyifli efektler ve üretkenlik için dikkat çekici dokunsal geri bildirimler oluşturmaya yönelik araçları genişletiyor.

Aktüatör efektleri

Android 12, en yeni aktüatörlerin daha geniş frekans bant genişliğinden yararlanan düşük tık gibi etkileyici efektler ekler. Oyun geliştiriciler, artık oyun kumandalarında birden fazla farklı aktüatöre bağımsız olarak erişerek aynı efekti senkronize bir şekilde veya birden fazla aktüatörde farklı dokunsal efektler sunabilir. Geliştiricilerin, zengin dokunsal efektler için yapı taşları olarak sabitleri ve temel öğeleri kullanmasını öneririz. Sabitler, kullanıcı arayüzü etkinliklerini geliştirmek için, dokunsal besteleyici ise daha karmaşık efektler için temel öğeleri sıralamak için kullanılır. Bu API'ler Pixel 4 cihazlarda denenebilir. Ayrıca, dokunsal geri bildirim desteğindeki en son yenilikleri ekosistemdeki kullanıcılara sunmak için cihaz üreticisi iş ortaklarımızla çalışmaya devam ediyoruz.

Sesle bağlantılı dokunsal efektler

Android 12 uygulamaları, telefonun titreşim motorunu kullanarak bir ses oturumundan elde edilen dokunsal geri bildirim oluşturabilir. Bu sayede daha etkileyici oyun ve ses deneyimleri sunulabilir. Örneğin, dokunsal olarak geliştirilmiş zil sesleri arayanları belirlemeye yardımcı olabilir veya bir araba yarışı oyunu engebeli arazide sürüş hissini simüle edebilir.

Daha fazla bilgi için HapticGenerator referans belgelerini inceleyin.

AppSearch

Android 12, sistem hizmeti olarak yüksek performanslı bir cihaz içi arama motoru olan AppSearch'ü 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, yüksek verimli indeksleme ve alma, çoklu dil desteği ve alaka düzeyi sıralaması gibi yerel arama özelliklerini destekler.

AppSearch'te dizine ekleme ve arama işlemlerini gösteren şema

AppSearch iki şekilde sunulur: uygulamanızın kullanabileceği, Android'in eski sürümleriyle uyumlu yerel bir dizin veya Android 12'de tüm sistem için tutulan merkezi bir dizin. Uygulamanız, merkezi dizini kullanarak sistemin önceden yüklenmiş olan zeka bileşeni tarafından verilerinin sistem kullanıcı arayüzü yüzeylerinde gösterilmesine izin verebilir. Sistem kullanıcı arayüzü yüzeylerinde hangi verilerin gösterileceği OEM'ye bağlıdır. Ayrıca uygulamanız, diğer uygulamaların da bu verilerde arama yapmasına olanak tanımak için verileri güvenli bir şekilde paylaşabilir.

AppSearch hakkında daha fazla bilgiyi geliştirici kılavuzunda bulabilir ve kullanmaya başlamak için AppSearch Jetpack kitaplığını kullanabilirsiniz. Bu kitaplık, geliştirici dostu bir API yüzeyinin yanı sıra ek açıklama işlemcisi desteği de sunar.

Oyun Modu

Game Mode API ve Game Mode müdahaleleri, kullanıcı ayarlarını veya oyuna özel yapılandırmaları temel alarak performans ya da pil ömrü gibi özellikleri önceliklendirerek oyun deneyimini optimize etmenize olanak tanır.

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

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

Android 12, PiP modu için aşağıdaki iyileştirmeleri sunar:

Yeni PiP hareketleri için destek

Android 12'de artık PiP penceresi için biriktirme ve iki parmakla yakınlaştırma hareketleri destekleniyor:

  • Kullanıcı, pencereyi saklamak için pencereyi sol veya sağ kenara sürükleyebilir. Kullanıcı, pencereyi saklamadan çıkarmak için saklanan pencerenin görünür kısmına dokunabilir veya pencereyi dışarı sürükleyebilir.

  • Kullanıcılar artık iki parmakla yakınlaştırma hareketini kullanarak PiP penceresini yeniden boyutlandırabilir.

Android 12, tam ekran ve PiP pencereleri arasındaki animasyonlu geçişlerde önemli görsel iyileştirmeler yaptı. Geçerli tüm değişiklikleri uygulamanızı önemle tavsiye ederiz. Bu değişiklikleri uyguladığınızda, katlanabilir cihazlar ve tabletler gibi büyük ekranlarda başka bir işlem yapmanıza gerek kalmadan otomatik olarak ölçeklendirilir.

Bu özellikler şunlardır:

Gelen aramaların önemini sıralamaya olanak tanıyan yeni telefon görüşmesi bildirimleri

Android 12, telefon görüşmeleri için yeni bildirim stili Notification.CallStyle ekler. Bu şablonu kullanarak uygulamanız, durum çubuğunda arama zamanını gösteren belirgin bir çip görüntüleyerek etkin aramaların önemini belirtebilir. Kullanıcı, aramasına dönmek için bu çipe dokunabilir.

Kullanıcılar için en önemli olanlar gelen ve devam eden aramalar olduğundan bu bildirimler gölgede en üst sırada yer alır. Bu sıralama, sistemin öncelikli aramaları diğer cihazlara yönlendirmesine de olanak tanır.

Tüm arama 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 arama için arama stili bildirimi oluşturmak üzere forIncomingCall() öğesini 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 stili bildirimi oluşturmak üzere 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);

Bir aramayı filtrelemek için arama stili bildirimi oluşturmak üzere 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() ve BigPictureStyle() bildirimlerinde animasyonlu resimler sağlayarak uygulamanızın bildirim deneyimini zenginleştirebilirsiniz. Ayrıca uygulamanız artık kullanıcıların bildirim gölgesinden iletilere yanıt verirken resim mesajları göndermesine olanak tanıyabilir.

Hareketle gezinme için tam ekran modunda iyileştirmeler

Android 12, mevcut davranışı birleştirerek kullanıcıların tam ekran modundayken hareketle gezinme komutlarını gerçekleştirmesini kolaylaştırır. Ayrıca Android 12, yapışkan tam ekran modu için geriye dönük uyumluluk davranışı sağlar.

Son Öğeler'de URL paylaşımı (yalnızca Pixel)

Pixel cihazlarda kullanıcılar, son görüntülenen web içeriklerinin bağlantılarını doğrudan Son Kullanılanlar ekranından paylaşabilir. Bir uygulamada içeriği ziyaret ettikten sonra kullanıcı, Son Kullanılanlar ekranına kaydırarak içeriği görüntülediği uygulamayı bulabilir ve bağlantı düğmesine dokunarak URL'yi kopyalayabilir veya paylaşabilir.

Daha fazla bilgi için Son kullanılan URL paylaşımını etkinleştirme başlıklı makaleyi inceleyin.

Güvenlik ve gizlilik

Gizlilik Kontrol Paneli

Dikey zaman çizelgesinde, konum bilgilerine erişen farklı uygulamalar ve erişimlerin gerçekleştiği zamanlar gösterilir.
1. şekil. Gizlilik kontrol panelinin bir parçası olan konum kullanımı ekranı.

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

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

Bluetooth izinleri

Android 12'de BLUETOOTH_SCAN, BLUETOOTH_ADVERTISE ve BLUETOOTH_CONNECT izinleri kullanıma sunulmuştur. Bu izinler, özellikle cihaz konumuna erişim gerektirmeyen uygulamalar için Android 12'yi hedefleyen uygulamaların Bluetooth cihazlarla etkileşimde bulunmasını kolaylaştırır.

Uygulamanızın Bluetooth izni 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 bildirmek yerine daha modern bir Bluetooth izinleri grubu bildirin.

İzin grubu arama

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 gizleme

Android 12, geliştiricilere kullanıcıların geliştirici uygulamasında etkileşimde bulunduklarında gördükleri içerikler üzerinde daha fazla kontrol imkanı sunmak için SYSTEM_ALERT_WINDOW iznine sahip uygulamalar tarafından çizilen yer paylaşımı pencerelerini gizleme özelliğini kullanıma sunuyor.

HIDE_OVERLAY_WINDOWS iznini bildirdikten sonra bir uygulama, kendi penceresi görünürken TYPE_APPLICATION_OVERLAY türündeki tüm pencerelerin gizlenmesi gerektiğini belirtmek için setHideOverlayWindows() işlevini çağırabilir. Uygulamalar, işlem onayı akışları gibi hassas ekranları gösterirken bunu yapmayı tercih edebilir.

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

Bilinen imzalayanlar için izin koruma işareti

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

Uygulamanız bu özelliği bildirebilir ve 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 olanak tanıyabilir.

Cihaz özellikleri onayı

Android 12, bu uygulamalar yeni bir anahtar oluşturduğunda onay sertifikasında bulunan cihaz özelliklerini doğrulayabilen uygulamaların sayısını artırır.

Android 9 (API seviyesi 28) itibarıyla, 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'yi (API düzeyi 31) veya sonraki sürümleri hedefleyen tüm uygulamalar, setDevicePropertiesAttestationIncluded() yöntemini kullanarak bu doğrulamayı gerçekleştirebilir.

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

  • BRAND
  • DEVICE
  • MANUFACTURER
  • MODEL
  • PRODUCT

Güvenli kilit ekranı bildirim işlemleri

Android 12'den itibaren Notification.Action.Builder sınıfı, uygulamanızın belirli bir bildirim işlemini çağırmadan önce cihazın kilidinin açılmasını zorunlu kılmasına olanak tanıyan setAuthenticationRequired() yöntemini destekler. Bu yöntem, kilitli cihazlardaki bildirimlere ekstra 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'ler sunar. Yeni BiometricManager.Strings iç içe 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ına olanak tanıyan getButtonLabel(), getPromptMessage() ve getSettingName() yöntemlerini içerir. Kullanılan biyometrik kimlik doğrulama yöntemlerine özel, kullanıcıya yönelik daha net talimatlar oluşturmak için bu etiketleri kullanın. Örneğin, "Yüz kilidini kullanın" veya "Devam etmek için parmak izinizi kullanın".

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

Kullanıcı, şüpheli bir mesaj algılandığında bu tür bir mesaj görür.

Android 12, desteklenen Pixel cihazlarda popüler mesajlaşma uygulamalarında alınan iletilerde kimlik avı tespiti yapar. Sistem, şüpheli etkinlikleri tespit etmek için cihaz üzerinde makine öğrenimini kullanır. Sistem, tespit ettiğinde kullanıcıları uyarmak için mesajlaşma uygulamasının kullanıcı arayüzünün üzerinde 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 veya benzeri şeyler 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ı uyarmasının yanı sıra şüpheli iletileri bildirmesine ve sistem tarafından verilen uyarılarla ilgili geri bildirimde bulunması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ği devre dışı bırakabilir. Ö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 kod dönüştürme

Android 12'den (API düzeyi 31) itibaren sistem, cihazda kaydedilen HEVC(H.265) ve HDR (HDR10 ve HDR10+) videoları, standart oynatıcılarla yaygın olarak uyumlu olan AVC (H.264) biçimine otomatik olarak dönüştürebilir. Bu özellik, eski uygulamalarla uyumluluktan ödün vermeden modern codec'lerden yararlanır.

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

Performans sınıfı

Android 12, performans sınıfı adı verilen bir standart sunar. Performans sınıfı, Android'in temel gereksinimlerinin ötesinde donanım özellikleri belirtir. Her Android cihaz, desteklediği performans sınıfını belirtir. Geliştiriciler, cihazın performans sınıfını çalışma zamanında kontrol edebilir ve cihazın özelliklerinden tam olarak yararlanan gelişmiş deneyimler sunabilir.

Daha fazla bilgi için Performans sınıfı başlıklı makaleyi inceleyin.

Video kodlama iyileştirmeleri

Android 12, video kodlaması için nicemleme parametresi (QP) değerini kontrol etmeye yönelik standart bir anahtar grubu tanımlar. Bu sayede geliştiriciler, tedarikçiye özel kod kullanmaktan kaçınabilir.

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

Android 12'den itibaren video kodlayıcılar minimum kalite eşiğini zorunlu kılar. Bu sayede, yüksek sahne karmaşıklığına sahip videolar kodlanırken kullanıcıların son derece düşük kalite sorunu yaşamaması sağlanır.

Ses odağı

Android 12'den (API düzeyi 31) itibaren, başka bir uygulama odaklanmış ve oynatılırken bir uygulama ses odağı istediğinde sistem, oynatılan uygulamanın sesini azaltır.

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

MediaDrm güncellemeleri

Mevcut MediaDrm API'leri ile güvenli bir kod çözücü bileşeninin gerekli olup olmadığını belirlemek için aşağıdaki 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 MediaCrypto oluşturun.
  4. Şu numaraya telefon et: MediaCrypto.requiresSecureDecoderComponent(mimeType).

Yeni yöntemler requiresSecureDecoder(@NonNull String mime) ve requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level) ile MediaDrm oluşturur oluşturmaz bunu belirleyebilirsiniz.

Kamera

Camera2 sağlayıcı uzantıları

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

Bu ekleme, karmaşık Camera2 uygulamalarına sahip uygulamaların, eski kodda önemli değişiklikler yapmasına gerek kalmadan tedarikçi uzantılarından yararlanmasına yardımcı olur. Camera2 Extension API'leri, CameraX'tekiyle tam olarak aynı uzantı grubunu kullanır ve bu uzantılar birçok farklı cihazda zaten desteklenir. Bu nedenle, ek bir yapılandırma yapmadan kullanabilirsiniz.

Daha fazla bilgi için CameraExtensionCharacteristics konusuna bakın.

Quad Bayer kamera sensörü desteği

Günümüzde birçok Android cihazda genellikle Quad veya Nona Bayer desenlerine sahip ultra yüksek çözünürlüklü kamera sensörleri bulunur. Bu sensörler, görüntü kalitesi ve düşük ışık performansı açısından büyük esneklik sunar. Android 12, üçüncü taraf uygulamaların bu çok yönlü sensörlerden tam olarak 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 "varsayılan" moda kıyasla farklı akış yapılandırmalarını ve kombinasyonlarını destekleyebileceklerini dikkate alır.

Grafikler ve resimler

Uygulamalara tombstone izlerine doğrudan erişim izni verme

Android 12'den itibaren, ApplicationExitInfo.getTraceInputStream() yöntemiyle uygulamanızın yerel kilitlenme tombstone'una protocol buffer 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 sağlanıyordu.

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

AVIF görüntü desteği

Android 12, AV1 Image File Format (AVIF) kullanan resimler için destek sunar. AVIF, AV1 kullanılarak kodlanmış resimler ve resim dizileri için bir kapsayıcı biçimidir. AVIF, video sıkıştırmadan elde edilen kare içi kodlanmış içerikten yararlanır. Bu, JPEG gibi eski görüntü biçimleriyle karşılaştırıldığında aynı dosya boyutu için görüntü kalitesini önemli ölçüde artırır. Bu biçimin avantajları hakkında ayrıntılı bilgi için Jake Archibald'ın blog yayınını inceleyin.

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

Android 12, bulanıklaştırma, renk filtreleri ve Android gölgelendirici efektleri gibi yaygın grafik efektlerini View'lere ve oluşturma hiyerarşilerine uygulayan yeni RenderEffect ekliyor. Efektler, zincir efektler (iç ve dış efektlerden oluşur) veya harmanlanmış efektler olarak birleştirilebilir. Farklı Android cihazlar, sınırlı işlem gücü nedeniyle bu özelliği destekleyebilir veya desteklemeyebilir.

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

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 çözmek için genişletildi. Android 11'de kullanıma sunulduğunda bu API, yalnızca bu biçimlerdeki animasyonlardan ilk resmi çözüyordu.

APK boyutunu daha da küçültmek ve güvenlik ile 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 yardımcı uygulamaların çalışmaya devam etmesi gerektiği ihtiyacını karşılamak üzere aşağıdaki işlemleri yapan API'ler sunar:

  • Tamamlayıcı cihaz kapsama alanındayken uygulamayı uyandırmanıza olanak tanır.
  • Cihaz kapsama alanında kaldığı sürece işlemin çalışmaya devam edeceğini garanti edin.

API'leri kullanmak için cihazlarınızın Companion Device Manager ile bağlanması gerekir. Daha fazla bilgi için CompanionDeviceManager.startObservingDevicePresence() ve CompanionDeviceService.onDeviceAppeared() sayfalarına bakın.

Companion Device Manager profilleri

Tek bir istekte birden fazla izin istemek için yardımcı cihaz profilini kullanan bir izin iletişim kutusu.

Android 12 (API düzeyi 31) ve sonraki sürümlerdeki iş ortağı uygulamaları, kol saatine bağlanırken yardımcı cihaz profillerini kullanabilir. Profil kullanmak, cihaza özel bir izin grubunun verilmesini tek bir adımda birleştirerek kaydolma sürecini basitleştirir.

Paketlenmiş izinler, cihaz bağlandıktan sonra yardımcı uygulamaya verilir ve yalnızca cihaz ilişkilendirildiği sürece geçerli olur. Uygulamanın silinmesi veya ilişkilendirmenin kaldırılması izinleri de kaldırır.

Daha fazla bilgi için AssociationRequest.Builder.setDeviceProfile() konusuna bakın.

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ştirildi. Döndürülen değerler artık kullanıcının cihazdaki tüm uygulamalarda operatör veya kablosuz ağ SSID'si, ağ türü ve sinyal seviyesi başına tüm zamanların ağırlıklı ortalama verimini temsil ediyor. 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 soğuk başlatılmasıyla ilgili tahminler sağlayabilir ve diğer işleme hızı tahmin yöntemlerinin kullanılmasına kıyasla daha az döngü gerektirir.

Wi-Fi Aware (NAN) geliştirmeleri

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

  • Android 12 (API düzeyi 31) ve sonraki sürümlerin yüklü olduğu cihazlarda, uygulamanızın hizmetin durması veya aralığın 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ı) kurulum şekli daha verimli olacak şekilde değişiyor. Daha önceki sürümlerde, başlatıcıların eş bilgilerini değiştirmek için L2 mesajlaşma kullanılıyordu. Bu da gecikmeye neden oluyordu. Android 12 ve sonraki sürümlerin yüklü olduğu cihazlarda yanıtlayıcı (sunucu), herhangi bir eşi kabul edecek şekilde yapılandırılabilir. Yani başlatıcı bilgilerini önceden bilmesi gerekmez. Bu, veri yolu başlatma işlemini hızlandırır ve yalnızca tek bir ağ isteğiyle birden fazla noktadan noktaya bağlantı sağlar.
  • Çerçevenin kaynakların tükenmesi nedeniyle keşif veya bağlantı isteklerini reddetmesini önlemek için Android 12 ve sonraki sürümlerin yüklü olduğu cihazlarda WifiAwareManager.getAvailableAwareResources() işlevini çağırabilirsiniz. Bu yöntemin dönüş değeri, kullanılabilir veri yollarının sayısını, kullanılabilir yayın oturumlarının sayısını ve kullanılabilir abone oturumlarının sayısını almanızı sağlar.

Eşler Arası + İnternet Bağlantısı

Android 12'yi (API düzeyi 31) ve sonraki sürümleri hedefleyen cihazlar, donanım desteği olan cihazlarda çalışırken eşler arası bağlantılar kullanıldığında eş cihazla bağlantı oluşturulurken mevcut kablosuz bağlantınız kesilmez. Bu özelliğin desteklenip desteklenmediğini kontrol etmek için WifiManager.isMultiStaConcurrencySupported() simgesini kullanın.

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

Android 12 ve sonraki sürümleri hedefleyen uygulamalarda, requireDeviceScreenOn değerini false olarak ayarlayarak cihazın ekranı açık olmadan NFC ödemelerini etkinleştirebilirsiniz. Ekran kapalıyken veya kilitliyken NFC ödemeleri hakkında daha fazla bilgi için Ekran kapalıyken ve kilit ekranı davranışları başlıklı makaleyi inceleyin.

Depolama

Android 12'de aşağıdaki depolama alanı yönetimi özellikleri kullanıma sunulmuştur:

Temel işlevler

Otomatik uygulama güncellemeleri

Android 12, PackageInstaller API'yi kullanan uygulamalar için setRequireUserAction() yöntemini sunar. Bu yöntem, yükleyici uygulamaların kullanıcıdan işlemi onaylamasını istemeden uygulama güncellemeleri yapmasına olanak tanır.

Cihaz yonga seti bilgileri

Android 12, android.os.Build'ya iki sabit ekleyerek SDK üzerinden SoC yonga seti satıcısı ve model bilgilerini kullanıma sunar. Bu bilgilere Build.SOC_MANUFACTURER ve Build.SOC_MODEL numaralı telefonları arayarak ulaşabilirsiniz.

Temel Java API'lerinde yapılan güncellemeler

Geliştiricilerden gelen istekler ve onlarla yaptığımız işbirliği 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