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 okuyun. 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.
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'lar 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 başlatma animasyonu sunar. Bu animasyon, başlatma noktasından uygulamaya giriş hareketini, uygulama simgesini gösteren bir başlangıç ekranını ve uygulamanın kendisine geçişi içerir. Daha fazla bilgi 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 şekilde veya farklı dokunsal efektleri birden fazla aktüatörde 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 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 verilerinin sistemin önceden yüklenmiş olan akıllı bileşeni tarafından 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 artık PiP penceresi için toplama ve iki parmakla yakınlaştırma hareketlerini destekliyor:
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.
Sorunsuz bir resim içinde resim geçişi deneyimini destekleyen yeni özellikler önerilir.
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:
Hareketle gezinme ile daha sorunsuz PiP moduna geçiş için yeni bir API işareti
Hareketle gezinme modunda ana sayfaya gitmek için yukarı kaydırırken PIP moduna daha sorunsuz geçiş sağlamak üzere
setAutoEnterEnabled
işaretini kullanın. Android, daha önce PiP penceresini görünür hale getirmeden önce ana ekrana gitmek için yukarı kaydırma animasyonunun tamamlanmasını bekliyordu.PIP moduna girerken ve PIP modundan çıkarken daha akıcı animasyonlar
SourceRectHint
işareti artık PiP moduna girerken ve çıkarken daha sorunsuz animasyon uygulamak için yeniden kullanılıyor.-
SeamlessResizeEnabled
işareti, PiP penceresinde video olmayan içeriklerin boyutu değiştirilirken çok daha akıcı bir geçiş efekti animasyonu sağlar. Daha önce, resim içinde resim penceresinde video olmayan içeriklerin yeniden boyutlandırılması, rahatsız edici görsel öğelere neden olabiliyordu.
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
ekliyor. 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.
Gelen ve devam eden aramalar kullanıcılar için en önemli olanlar 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ı taramak 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
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:
- Sistemin platform tarafından tanımlanan bir izni yerleştirdiği izin grubunu belirlemek için
getGroupOfPlatformPermission()
işlevini çağırın. - Sistemin belirli bir izin grubuna yerleştirdiği platform tanımlı izinleri belirlemek için
getPlatformPermissionsForGroup()
işlevini çağırın.
Uygulama yer paylaşımı pencerelerini gizleme
Android 12, geliştiricilere kullanıcıların geliştiricinin uygulamasıyla etkileşimde bulunduğunda gördükleri üzerinde daha fazla kontrol olanağı 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 balonlar) değerlendirmelidir.
Bilinen imzalayanların izin koruması işareti
Android 12'den itibaren, knownCerts
özelliği imza düzeyinde izinler için bildirim sırasında bilinen imza 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".
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 kod 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 uygulamayı yavaş yavaş kapatı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'lerinde güvenli bir kod çözücü bileşeni gerekip gerekmediğini belirlemek için aşağıdaki adımları uygulamanız gerekir:
MediaDrm
oluşturun.- Oturum kimliği almak için bir oturum açın.
- Oturum kimliğini kullanarak
MediaCrypto
oluşturun. - Ş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 cihaz, genellikle Quad veya Nona Bayer desenleriyle birlikte gelen ultra yüksek çözünürlüklü kamera sensörleriyle birlikte gönderilir. 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çimlerine kıyasla aynı dosya boyutunda 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
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
View
için 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 çö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ını inceleyin.
Companion Device Manager profilleri

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, 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, hizmetin durması veya kapsama alanı dışına çıkması nedeniyle uygulamanızın keşfedilen bir hizmeti kaybettiği konusunda uyarı almak için
onServiceLost()
geri çağırmasını kullanabilirsiniz. - Birden fazla veri yolunun (NAN Veri Yolları) ayarlanma ş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ümleri çalıştıran 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()
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:
- Uygulamanız belirli bir doküman sağlayıcı URI'sına eşdeğer bir medya URI'si aldığında
MediaDocumentsProvider
için medya mağazası desteği. - Ses kayıtları için bir dizin.
MANAGE_MEDIA
izni, bir uygulamanın her işlem için kullanıcıya onay iletişim kutusu göstermeden medya yönetimi işlemleri gerçekleştirmesine olanak tanır.- Hem
MANAGE_EXTERNAL_STORAGE
iznine hem deQUERY_ALL_PACKAGES
iznine sahip uygulamalar (ör. dosya yönetimi uygulamaları), diğer uygulama özel etkinliği oluşturduğu sürece diğer uygulamanın depolama alanını yönetmek için özel bir etkinlik çağırabilir.
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ının işlemi onaylamasını gerektirmeden 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 bilgileri sırasıyla Build.SOC_MANUFACTURER
ve Build.SOC_MODEL
numaralarını arayarak alabilirsiniz.
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
|