Android 12, geliştiriciler için harika yeni özellikler ve API'ler sunar. Aşağıdaki bölümler, uygulamalarınızın özelliklerini öğrenmenize ve ilgili API'leri kullanmaya başlamanıza yardımcı olur.
Yeni, değiştirilen ve kaldırılan API'lerin ayrıntılı listesi için API farklılıkları 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 uygulamalarda ve tüm uygulamalarda 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 dili sunar. En yeni Materyal Tasarım 3 güncellemelerinin tümünü uygulamalarınıza eklemek için Materyal Tasarım Bileşenleri'nin 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 Widgets API'yi yeniler. Widget'ınızın Android 12 ile uyumlu olmasını sağlamanıza ve yeni özelliklerle yenilemenize yardımcı olacak bir kılavuz hazırladık.
Daha fazla bilgi için Android 12 widget iyileştirmeleri başlıklı makaleyi inceleyin.
Zengin içerik ekleme
Android 12, uygulamanızın pano, klavye veya sürükle ve bırak gibi mevcut herhangi bir kaynaktan zengin içerik almasına olanak tanıyan yeni bir birleştirilmiş 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 sunar. Bu animasyonda, başlatma noktasından uygulamaya giriş hareketi, uygulama simgesini gösteren bir başlangıç ekranı ve uygulamanın kendisine geçiş yer alır. Daha fazla bilgi için başlangıç ekranları geliştirici kılavuzuna bakın.
Yuvarlatılmış köşe API'leri
Android 12, yuvarlatılmış köşelerin yarıçapını ve merkez noktasını sağlayan RoundedCorner ve WindowInsets.getRoundedCorner(int
position) özelliklerini kullanıma sunar.
Daha fazla bilgi için Yuvarlatılmış köşeler bölümüne bakın.
Zengin dokunma deneyimleri
Android 12; kullanıcı arayüzü etkinlikleri için bilgilendirici dokunsal geribildirim, oyunlar için sürükleyici ve keyifli efektler ve üretkenlik için dikkat çekici dokunma özellikleri oluşturmaya yönelik araçları genişletir.
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ştiriciler artık oyun kumandalarında birden fazla farklı aktüatöre bağımsız olarak erişerek aynı efekti eşzamanlı olarak veya birden fazla aktüatörde farklı dokunma efektleri sunabilir. Geliştiricilerin, zengin dokunma efektleri için yapı taşları olarak sabitleri ve temelleri kullanmalarını öneririz. Kullanıcı arayüzü etkinliklerini geliştirmek için sabitleri, daha karmaşık efektler için temelleri sıralamak üzere dokunma oluşturucuyu kullanabilirsiniz. Bu API'ler Pixel 4 cihazlarda denenebilir. Ekosistem genelindeki kullanıcılara en yeni dokunma desteğini sunmak için cihaz üreticisi iş ortaklarımızla çalışmaya devam ediyoruz.
Sesle birleştirilmiş dokunma efektleri
Android 12 uygulamaları, telefonun titreşim motorunu kullanarak bir ses oturumundan türetilen dokunsal geribildirim üretebilir. Bu sayede daha sürükleyici oyun ve ses deneyimleri yaşayabilirsiniz. Örneğin, dokunma duyusuyla geliştirilmiş zil sesleri, arayanları tanımlamaya yardımcı olabilir veya bir sürüş oyunu, engebeli arazi hissini simüle edebilir.
Daha fazla bilgi için HapticGenerator referans belgelerine bakın.
AppSearch
Android 12, cihaz üzerinde yüksek performanslı bir arama motoru olan AppSearch'ü sistem hizmeti olarak sunar. 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 dizine ekleme 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ş akıllı bileşeni tarafından sistem kullanıcı arayüzü yüzeylerinde gösterilmesine 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 bu uygulamaların da söz konusu verilerde arama yapmasına olanak tanıyabilir.
Geliştirici kılavuzunda AppSearch hakkında daha fazla bilgi edinin ve ek açıklama işleyici desteğinin yanı sıra geliştirici dostu bir API yüzeyi sağlayan AppSearch Jetpack kitaplığı ile AppSearch'ü kullanmaya başlayın.
Oyun Modu
Game Mode API ve Oyun Modu müdahaleleri, kullanıcı ayarlarına veya oyuna özel yapılandırmalara göre 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 gizleme ve yakınlaştırmak için sıkıştırma hareketlerini destekliyor:
Kullanıcı, pencereyi gizlemek için sol veya sağ kenara sürükleyebilir. Kullanıcı, gizlenen pencereyi geri getirmek için pencerenin görünen kısmına dokunabilir veya pencereyi dışarı sürükleyebilir.
Kullanıcı artık iki parmakla yakınlaştırma özelliğini kullanarak PiP penceresini yeniden boyutlandırabilir.
Pencere içinde pencere geçiş deneyimini iyileştiren önerilen yeni özellikler
Android 12, tam ekran ve PiP pencereleri arasındaki animasyonlu geçişlerde önemli kozmetik iyileştirmeler yaptı. Geçerli tüm değişiklikleri uygulamanızı önemle tavsiye ederiz. Bu değişiklikleri uyguladıktan sonra, katlanabilir cihazlar ve tabletler gibi büyük ekranlara otomatik olarak ölçeklendirilir ve başka bir işlem yapmanız gerekmez.
Bu özellikler şunlardır:
Hareketle gezinme ile PiP moduna daha sorunsuz 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şler sağlamak için
setAutoEnterEnabledişaretini kullanın. Android daha önce, PiP penceresini göstermeden önce yukarı kaydırarak ana ekrana dönme animasyonunun tamamlanmasını bekliyordu.PiP moduna girerken ve çıkarken daha akıcı animasyonlar
SourceRectHintişareti artık PiP moduna girerken ve çıkarken daha akıcı animasyonlar uygulamak için yeniden kullanılıyor.-
SeamlessResizeEnabledişareti, PiP penceresinde video olmayan içerikleri yeniden boyutlandırırken çok daha akıcı bir çapraz geçiş animasyonu sağlar. Daha önce, PiP penceresinde video olmayan içeriği yeniden boyutlandırmak rahatsız edici görsel kusurlara neden olabiliyordu.
Gelen aramaların önem sırasına göre sıralanmasına 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 arama süresini gösteren belirgin bir çip göstererek 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 bildirimler 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 aramalar için arama stili bildirimi oluşturmak üzere forIncomingCall() 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() 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 filtreleme için arama stili bildirimi oluşturmak üzere forScreeningCall() 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 mesajları yanıtlarken resimli mesaj göndermesine olanak tanıyabilir.
Hareketle gezinme için yoğun içerik modu iyileştirmeleri
Android 12, kullanıcıların yoğun içerik modundayken hareketle gezinme komutlarını gerçekleştirmesini kolaylaştırmak için mevcut davranışı birleştirir. Ayrıca 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 Kullanılanlar ekranından paylaşabilir. 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 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 konusuna bakın.
Güvenlik ve gizlilik
Gizlilik Kontrol Paneli
Android 12 veya sonraki sürümlerin yüklü olduğu desteklenen cihazlarda sistem ayarlarında Gizlilik Kontrol Paneli ekranı görünür. Kullanıcılar bu ekrandan, 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ğini gösteren bir zaman çizelgesi yer alır. Şekil 1'de konum bilgileri için veri erişimi zaman çizelgesi gösterilmektedir.
Uygulamanız, konum, kamera veya mikrofon bilgilerine neden eriştiğini anlamalarına yardımcı olmak için kullanıcılara gerekçe sunabilir. Bu açıklama 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 sunulmuştur. Bu izinler, Android 12'yi hedefleyen uygulamaların Bluetooth cihazlarla etkileşim kurmasını kolaylaştırır. Bu durum özellikle cihaz konumuna erişim gerektirmeyen uygulamalar için geçerlidir.
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 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 hangi izin grubuna yerleştirdiğini belirlemek için
getGroupOfPlatformPermission()yöntemini çağırın. - Sistemin belirli bir izin grubuna yerleştirdiği platform tarafından tanımlanan izinleri belirlemek için
getPlatformPermissionsForGroup()yöntemini çağırın.
Uygulama yer paylaşımı pencerelerini gizle
Android 12, geliştiricilere kullanıcıların uygulamalarıyla etkileşim kurarken gördükleri içerikler üzerinde daha fazla kontrol sağlamak için SYSTEM_ALERT_WINDOW iznine sahip uygulamalar tarafından çizilen yer paylaşımlı pencereleri gizleme özelliğini sunar.
HIDE_OVERLAY_WINDOWS
izni beyan edildikten sonra uygulama, setHideOverlayWindows()
öğesini çağırarak uygulamanın kendi penceresi görünür olduğunda
TYPE_APPLICATION_OVERLAY
türündeki tüm pencerelerin gizlenmesi gerektiğini belirtebilir. Uygulamalar, işlem onay akışları gibi hassas ekranları gösterirken bu yöntemi tercih edebilir.
TYPE_APPLICATION_OVERLAY türünde pencereler gösteren uygulamalar, kullanım alanlarına daha uygun olabilecek pencere içinde pencere veya baloncuklar gibi alternatifleri değerlendirmelidir.
Bilinen imzalayanlar izin koruma işareti
Android 12'den itibaren, imza düzeyindeki 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 beyan edebilir ve cihazların ve uygulamaların, cihaz üretimi ve sevkiyatı sırasında uygulamaları imzalamak zorunda kalmadan diğer uygulamalara imza izinleri vermesine olanak tanımak için knownSigner işaretini kullanabilir.
Cihaz özellikleri onayı
Android 12, yeni bir anahtar oluştururken onay sertifikasındaki cihaz özelliklerini doğrulayabilen uygulama grubunu genişletir.
Android 9 (API düzeyi 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 (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:
BRANDDEVICEMANUFACTURERMODELPRODUCT
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ın belirli bir bildirim işlemini çağırmadan önce cihazın kilidinin açılmasını zorunlu kılmasına olanak tanır. 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 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ına olanak tanıyan getButtonLabel(), getPromptMessage() ve getSettingName() yöntemlerini içerir. Kullanılan biyometrik kimlik doğrulama yöntemlerine özel, kullanıcılara yönelik daha net talimatlar (ör. "Yüz tanıma kilidini kullanın" veya "Devam etmek için parmak izinizi kullanın") oluşturmak için bu etiketleri kullanın.
Medya
Uyumlu medya kodlama dönüştürme
Android 12'den (API düzeyi 31) itibaren sistem, cihazda kaydedilen HEVC(H.265) ve HDR (HDR10 ve HDR10+) videoların kodunu otomatik olarak standart oynatıcılarla geniş ölçüde uyumlu bir biçim olan AVC'ye (H.264) dönüştürebilir. Bu sayede, eski uygulamalarla uyumluluktan ödün vermeden modern codec'lerden yararlanabilirsiniz.
Daha fazla bilgi için uyumlu medya kodlama dönüştürme bölümüne bakın.
Performans sınıfı
Android 12, performans sınıfı adlı bir standart sunar. Performans sınıfı, Android'in temel gereksinimlerinin ötesindeki 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 daha iyi 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 niceleme parametresi (QP) değerini kontrol eden standart bir anahtar grubu tanımlayarak geliştiricilerin tedarikçiye özel kod kullanmasını önler.
Yeni anahtarlar, MediaFormat API'de ve NDK Media kitaplığında kullanılabilir.
Android 12'den itibaren video kodlayıcılar minimum kalite eşiği uygular. Bu sayede, sahne karmaşıklığı yüksek videolar kodlanırken kullanıcıların son derece düşük kaliteyle karşılaşması önlenir.
Ses odağı
Android 12'den (API düzeyi 31) itibaren, başka bir uygulama ses odağına sahipken ve ses çalarken bir uygulama ses odağı istediğinde sistem, çalan uygulamanın sesini kısar.
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'leriyle güvenli bir kod çözücü bileşeninin gerekli olup olmadığını belirlemek için aşağıdaki adımları uygulamanız gerekir:
MediaDrmoluşturun.- Oturum kimliği almak için bir oturum açın.
- Oturum kimliğini kullanarak
MediaCryptooluşturun. - Şu numaraya telefon et:
MediaCrypto.requiresSecureDecoderComponent(mimeType).
Yeni requiresSecureDecoder(@NonNull String mime) ve requiresSecureDecoder(@NonNull String mime, @SecurityLevel int level) yöntemleriyle, MediaDrm oluşturur oluşturmaz bunu belirleyebilirsiniz.
Kamera
Camera2 tedarikçi uzantıları
Cihaz üreticisi iş ortaklarımızın çoğu, uygulamaların cihazlarında farklı deneyimler oluşturmak için kullanmasını istedikleri özel kamera uzantıları (ör. bokeh, HDR, gece modu vb.) geliştirmiştir. CameraX kitaplığı, bu özel tedarikçi uzantılarını zaten desteklemektedir. Android 12'de bu tedarikçi uzantıları artık doğrudan platformda gösterilir.
Bu ekleme, karmaşık Camera2 uygulamalarına sahip uygulamaların, eski kodda önemli değişiklikler yapmak zorunda kalmadan tedarikçi uzantılarından yararlanmasına yardımcı olur. Camera2 Extension API'leri, CameraX'teki aynı uzantı grubunu sunar. Bu uzantılar birçok farklı cihazda desteklendiğinden ek yapılandırma olmadan kullanılabilir.
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 desenlerine sahip ultra yüksek çözünürlüklü kamera sensörleriyle birlikte sunulur. 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 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 hesaba katar.
Grafikler ve resimler
Uygulamalara, tombstone izlerine doğrudan erişim izni verme
Android 12'den itibaren, uygulamanızın yerel kilitlenme tombstone'una ApplicationExitInfo.getTraceInputStream() yöntemiyle protokol arabelleği olarak erişebilirsiniz. Protokol arabelleği, bu şema kullanılarak serileştirilir.
Daha önce bu bilgilere yalnızca Android Debug Bridge (adb) üzerinden erişilebiliyordu.
Daha fazla bilgi için Uygulamalara tombstone izlerine doğrudan erişim izni verme başlıklı makaleyi inceleyin.
AVIF resim desteği
Android 12, AV1 Resim Dosyası Biçimi'ni (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ırmadaki kare içi kodlanmış içerikten yararlanır. Bu sayede, JPEG gibi eski resim biçimlerine kıyasla aynı dosya boyutunda çok daha yüksek resim kalitesi elde edilir. Bu biçimin avantajlarını ayrıntılı olarak incelemek için Jake Archibald'ın blog yayınına göz atın.
Bulanıklaştırma, renk filtreleri ve diğer efektleri daha kolay kullanın
Android 12, View'lere ve oluşturma hiyerarşilerine bulanıklık, renk filtreleri, Android gölgelendirici efektleri gibi yaygın grafik efektleri uygulayan yeni RenderEffect sınıfını ekler. Efektler, zincir efektler (iç ve dış efektlerden oluşur) veya karışım efektler olarak birleştirilebilir. Sınırlı işlem gücü nedeniyle farklı Android cihazlar bu özelliği destekleyebilir veya desteklemeyebilir.
Efektler, View.setRenderEffect(RenderEffect) çağrılarak View saniye boyunca temel RenderNode öğesine 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şletildi. Android 11'de kullanıma sunulduğunda bu API, yalnızca bu biçimlerdeki animasyonların ilk resminin kodunu çö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
Tamamlayıcı uygulamaların cihazı yönetmek için çalışmaya devam etmesi gerektiğinden Android 12, aşağıdakileri yapan API'ler sunar:
- Yardımcı cihaz kapsama alanındayken bir uygulamayı uyandırmanıza olanak tanır.
- Cihaz kapsama alanında kaldığı sürece işlemin devam etmesini sağlama
API'leri kullanmak için cihazlarınızın Tamamlayıcı Cihaz Yöneticisi kullanılarak bağlanması gerekir. Daha fazla bilgi için CompanionDeviceManager.startObservingDevicePresence() ve CompanionDeviceService.onDeviceAppeared() sayfalarına bakın.
Companion Device Manager profilleri
Android 12 (API düzeyi 31) ve sonraki sürümlerdeki iş ortağı uygulamaları, bir saate bağlanırken ikincil cihaz profillerini kullanabilir. Profil kullanmak, cihaza özel izinleri tek bir adımda vererek kayıt sürecini basitleştirir.
Paket izinler, cihaz bağlandıktan sonra tamamlayıcı uygulamaya verilir ve yalnızca cihaz ilişkilendirildiği sürece geçerli olur. Uygulama silindiğinde veya ilişkilendirme kaldırıldığında izinler de kaldırılı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 tahmin özellikleri hem kablosuz hem de hücresel bağlantı için iyileştirilmiştir. Döndürülen değerler artık kullanıcının cihazdaki tüm uygulamalarda operatör veya kablosuz SSID, ağ türü ve sinyal seviyesi başına tüm zamanların ağırlıklı ortalama işleme hızını temsil eder.
Bu yöntem, beklenen işleme kapasitesinin daha doğru ve gerçekçi bir tahminini döndürebilir, uygulamanızın soğuk başlatılmasıyla ilgili tahminler sağlayabilir ve diğer işleme kapasitesi tahmin yöntemlerine 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ın hizmetin durması veya kapsama alanı dışına çıkması nedeniyle keşfedilen bir hizmeti kaybettiği durumlarda uyarı almak için
onServiceLost()geri çağırma işlevini kullanabilirsiniz. - Birden fazla veri yolunun (NAN Veri Yolları) ayarlanma şekli daha verimli olacak şekilde değiştiriliyor. Önceki sürümlerde, başlatıcıların eş bilgilerini paylaşmak 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 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ümleri çalıştıran cihazlarda
WifiAwareManager.getAvailableAwareResources()yöntemini çağırabilirsiniz. Bu yöntemin döndürdüğü değer, kullanılabilir veri yollarının, yayın oturumlarının ve abone oturumlarının sayısını öğrenmenizi 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ışırken eşler arası bağlantılar kullanıldığında, eş cihaza bağlantı oluşturulurken mevcut kablosuz bağlantınız kesilmez. Bu özelliğin desteklenip desteklenmediğini kontrol etmek için WifiManager.isMultiStaConcurrencySupported() yöntemini kullanın.
NFC ile ödemeler için ekran kapalıyken ödeme yapma özelliğini etkinleştirme
Android 12 ve sonraki sürümleri hedefleyen uygulamalarda, requireDeviceScreenOn değerini false olarak ayarlayarak cihazın ekranı açık olmadan NFC ile ödemeleri etkinleştirebilirsiniz. Ekran kapalıyken veya kilitliyken NFC ile ödeme hakkında daha fazla bilgi için Ekran kapalıyken ve kilit ekranında davranış başlıklı makaleyi inceleyin.
Depolama
Android 12 ile aşağıdaki depolama alanı yönetimi özellikleri kullanıma açılmıştır:
- Uygulamanız belirli bir doküman sağlayıcı URI'sine eşdeğer bir medya URI'si aldığında
MediaDocumentsProvideriçin medya mağazası desteği. - Ses kayıtları için bir dizin.
- Uygulamaları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ıyan
MANAGE_MEDIAizni. - Hem
MANAGE_EXTERNAL_STORAGEhem deQUERY_ALL_PACKAGESiznine sahip olan uygulamalar (ör. dosya yönetimi uygulamaları), diğer uygulamanın özel etkinliği oluşturması koşuluyla başka bir uygulamanın depolama alanını yönetmek için özel bir etkinliği çağırabilir.
Temel işlevler
Otomatik uygulama güncellemeleri
Android 12, PackageInstaller API'sini kullanan uygulamalar için setRequireUserAction() yöntemini sunar.
Bu yöntem, yükleyici uygulamaların kullanıcının işlemi onaylamasına gerek kalmadan uygulama güncellemeleri yapmasına olanak tanır.
Cihaz yonga seti bilgileri
Android 12, android.os.Build sınıfına iki sabit ekler. Bu sabitler, SoC yonga seti tedarikçisi ve model bilgilerini SDK aracılığıyla gösterir. Sırasıyla Build.SOC_MANUFACTURER ve Build.SOC_MODEL işlevlerini çağırarak bu bilgileri alabilirsiniz.
Temel Java API'lerinde yapılan güncellemeler
Geliştiricilerden gelen istekler ve onlarla yaptığımız ortak çalışmalar 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
|