Özelliklere ve API'lere Genel Bakış

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

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

Geliştirici verimliliği ve araçları

Temalı uygulama simgeleri

Temalı uygulama simgelerini seçen kullanıcılar
Android 13'te temalı uygulama simgelerini etkinleştirme

Android 13'ten itibaren temalı uygulama simgelerini etkinleştirebilirsiniz. Bu özellik sayesinde, desteklenen Android başlatıcılardaki uygulama simgeleri, kullanıcının seçtiği duvar kağıdının ve diğer temaların renklerini devralacak şekilde tonlanır.

Bu özelliğin desteklenmesi için uygulamanızın hem uyarlanabilir bir simge hem de bir tek renkli uygulama simgesi sağlaması ve manifest dosyasındaki <adaptive-icon> öğesinden tek renkli uygulama simgesine işaret etmesi gerekir. Kullanıcı temalı uygulama simgelerini etkinleştirdiyse (diğer bir deyişle, sistem ayarlarında Temalı simgeler açma/kapatma düğmesini açtıysanız) ve başlatıcı bu özelliği destekliyorsa sistem, ton rengini belirlemek için kullanıcının seçtiği duvar kağıdının ve temanın renginden yararlanır. Renk tonu tek renkli uygulama simgesine uygulanır.

Aşağıdaki senaryolardan hiçbirinde ana ekranda temalı uygulama simgesi GÖRÜNTÜLENMEZ. Bunun yerine, uyarlanabilir veya standart uygulama simgesi gösterilir:

  • Kullanıcı, temalı uygulama simgelerini etkinleştirmediyse
  • Uygulamanız tek renkli uygulama simgesi sağlamıyorsa
  • Başlatıcı, temalı uygulama simgelerini desteklemiyorsa

Diğer ayrıntılar ve talimatlar için Uyarlanabilir simgeler başlıklı makaleye bakın.

Uygulamaya özgü dil tercihleri

Sistem ayarlarında uygulamaya özgü diller

Çok dilli kullanıcılar çoğu durumda sistem dillerini İngilizce gibi tek bir dile ayarlarlar, ancak belirli uygulamalar için Felemenkçe, Çince veya Hintçe gibi başka diller de seçmek isterler. Uygulamaların bu kullanıcılara daha iyi bir deneyim sunmasına yardımcı olmak için Android 13, birden fazla dili destekleyen uygulamalarda aşağıdaki özellikleri sunar:

  • Sistem ayarları: Kullanıcıların her uygulama için tercih ettikleri dili seçebileceği merkezi bir konum.

    Uygulamanızın sisteme birden fazla dili desteklediğini belirtmek için manifest dosyasında android:localeConfig özelliğini beyan etmesi gerekir. Daha fazla bilgi edinmek için kaynak dosyası oluşturma ve bunu uygulamanızın manifest dosyasında tanımlama talimatlarına bakın.

  • Ek API'ler: LocaleManager içindeki setApplicationLocales() ve getApplicationLocales() yöntemleri gibi herkese açık bu API'ler, uygulamaların çalışma zamanında sistem dilinden farklı bir dil ayarlamasına olanak tanır.

    Bu API'ler sistem ayarlarıyla otomatik olarak senkronize edilir. Bu nedenle, özel uygulama içi dil seçiciler oluşturmak için bu API'leri kullanan uygulamalar, kullanıcıların dil tercihlerini nereden seçtiklerine bakılmaksızın tutarlı bir kullanıcı deneyimi yaşamalarını sağlar. Herkese açık API'ler ortak kod miktarını azaltmanıza da yardımcı olur, bölünmüş APK'ları destekler ve uygulama düzeyindeki kullanıcı dil ayarlarını depolamak için Uygulamalar için Otomatik Yedekleme'yi destekler.

    Önceki Android sürümleriyle geriye dönük uyumluluk için AndroidX'te de eşdeğer API'ler bulunmaktadır. Appcompat 1.6.0-beta01 veya sonraki sürümlerde eklenen API'leri kullanmanızı öneririz.

Birden fazla dili desteklemeyen uygulamalar bu değişikliklerden etkilenmeyecektir.

Geliştirilmiş metin ve dil desteği

Android 13 daha iyi bir deneyim sunmanıza yardımcı olan çeşitli metin ve dil iyileştirmeleri içerir. Bu iyileştirmeler aşağıdaki bölümlerde açıklanmıştır:

Daha hızlı tireleme

Kısa çizgi, kaydırılmış metnin okunmasını kolaylaştırır ve kullanıcı arayüzünüzü daha uyarlanabilir hale getirir. Kısaltma performansı, Android 13'ten itibaren% 200'e kadar optimize edildiğinden oluşturma performansını neredeyse hiçbir şekilde etkilemeden TextView cihazınızda etkinleştirebilirsiniz. Kısaltmayı daha hızlı etkinleştirmek için setHyphenationFrequency() içinde fullFast veya normalFast sıklıklarını kullanın.

Metin Dönüştürme API'leri

Japonca ve Çince gibi diller konuşan kullanıcılar, fonetik harf giriş yöntemleri kullanır. Bu yöntemler, genellikle aramayı ve otomatik tamamlama gibi özellikleri yavaşlatır. Android 13'te uygulamalar, kullanıcıların aradıklarını daha hızlı ve kolay bulabilmeleri için yeni metin dönüştürme API'sini çağırabilir. Önceden, örneğin arama yaparken Japon bir kullanıcının şu adımları uygulaması gerekiyordu:

  1. Arama teriminin fonetik telaffuzu olarak Hiragana girişi (yer veya uygulama adı gibi)
  2. Klavyeyi kullanarak Hiragana karakterlerini Kanji'ye dönüştürün
  3. Kanji karakterlerini kullanarak yeniden arama yapma
  4. Son olarak arama sonuçlarını alın

Japon kullanıcılar, yeni metin dönüştürme API'si sayesinde 2. ve 3. adımları atlayarak Hiragana yazarak Kanji arama sonuçlarını anında görebilirler.

Latin alfabesinde olmayan komut dosyaları için satır yükseklikleri iyileştirildi

Android 13, her dile uyarlanan bir satır yüksekliği kullanarak Latin olmayan alfabelerin (Tamil, Burmaca, Teluguca ve Tibetçe gibi) gösterilmesini iyileştirir. Yeni satır yükseklikleri, kırpmayı önler ve karakterlerin konumlandırmasını iyileştirir. Yalnızca Android 13'ü hedefleyerek uygulamanızda bu iyileştirmelerden yararlanabilirsiniz. Değişiklikler Latin olmayan dillerde kullanıcı arayüzünüzü etkileyebileceğinden, yeni satır aralığını kullanırken uygulamalarınızı test ettiğinizden emin olun.

Android 12'de (yukarıda) kırpılan, artık daha iyi konumlandırılmış ve Android 13'te (aşağıda) kırpılmayan satır yükseklikleri.

İyileştirilmiş Japonca metin kaydırma

Android 13'ten itibaren TextViews, daha gösterişli ve okunabilir Japonca uygulamalar için metni karakter yerine Bunsetsu (doğal görünen en küçük kelime birimi) veya kelime öbekleriyle kaydırabiliyor. TextViews ile android:lineBreakWordStyle="phrase" kullanarak bu sarmalamadan yararlanabilirsiniz.

Sıralı stili etkinleştirilmiş (aşağıda) ve içermeyen (yukarıda) Japonca metin sarmalama.

Unicode kitaplığı güncellemeleri

Android 13; Unicode ICU 70, Unicode CLDR 40 ve Unicode 14.0 sürümlerindeki en son iyileştirmeleri, düzeltmeleri ve değişiklikleri ekler.

Göze çarpan birkaç değişikliği aşağıda bulabilirsiniz:

  • İngilizce (Kanada) en‑CA ve İngilizce (Filipinler Cumhuriyeti) en‑PH, İngilizce (Birleşik Krallık) en‑GB yerine İngilizce (ABD) en çeviri kaynağı olmadığında İngilizce (Birleşik Krallık) çeviri kaynaklarını kullanır.
  • manyçoğul kategori; İspanyolca es, İtalyanca it, Portekizce pt ve Portekizce (Portekiz) pt‑PT için kullanıma sunulmuştur. CLDR v38'de sunulan Fransızcaya benzer şekilde, büyük sayılar için kullanılır.

Renk vektörü yazı tipleri

COLRv1 vektör emojisi (solda) ve bit eşlem emojisi (sağ)

Sistem, Android 13'ten itibaren COLR sürüm 1 (COLRv1) yazı tipleri için oluşturma desteğini içerir ve sistem emojilerini COLRv1 biçiminde günceller. COLRv1, her boyutta hızlı ve net bir şekilde oluşturulan, son derece küçük bir yazı tipi biçimidir.

Çoğu uygulama için her şeyi sistem halleder ve COLRv1 sorunsuz şekilde çalışır. Bununla birlikte, uygulamanız kendi metin oluşturma özelliğini uyguluyor ve sistemin yazı tiplerini kullanıyorsa emoji oluşturmayı test etmenizi öneririz.

COLRv1 hakkında daha fazla bilgi edinmek için aşağıdaki kaynakları inceleyin:

Hızlı Ayarlar yerleşim API'sı

Bildirim gölgesindeki Hızlı Ayarlar, kullanıcıların bir uygulamanın bağlamından ayrılmadan ayarları değiştirmeleri veya hızlı işlemler gerçekleştirmeleri için kullanışlı bir yoldur. Özel kutular sağlayan uygulamalarda, kullanıcıların kartlarınızı keşfetmesini ve Hızlı Ayarlar'a eklemesini kolaylaştırıyoruz. Uygulamanız yeni kart yerleştirme API'si kullanarak kullanıcıdan özel karonuzu doğrudan etkin Hızlı Ayar bloklarına eklemesini isteyebilir. Yeni sistem iletişim kutusu sayesinde kullanıcılar, kartı eklemek için Hızlı Ayarlar'a gitmek zorunda kalmadan, uygulamanızdan ayrılmadan kartı tek adımda ekleyebilirler.

Kullanıcıya Hızlı Ayarlar&#39;a kart eklemek isteyip istemediğini soran bir iletişim kutusu.

Pano önizlemesi

Android 13'ten itibaren sistem, panoya içerik eklendiğinde standart bir görsel onay gösterir. Yeni onay şunları yapar:

  • İçeriğin başarıyla kopyalandığını onaylar.
  • Kopyalanan içeriğin önizlemesini sunar.

Bu özellik, kopyalama işleminden sonra uygulamaların gösterdiği çeşitli bildirimleri standart hâle getirir ve kullanıcılara panoları üzerinde daha fazla kontrol sunar. Daha fazla bilgi için Kopyala ve Yapıştır özelliği sayfasını ziyaret edin.

Widget&#39;ı kopyala/Yapıştır
İçerik panoya girdiğinde gösterilen yeni kullanıcı arayüzü.

Tahmini geri gitme hareketi

Android 13'te telefon, büyük ekran ve katlanabilir cihazlar gibi Android cihazlar için tahmine dayalı geri hareket özelliği bulunur. Bu özelliğin desteklenebilmesi için uygulamanızı güncellemeniz gerekir.

Ayrıntılı dokümanları görmek için Uygulamanızı tahmine dayalı geri hareketini destekleyecek şekilde güncelleme bölümüne bakın. Ayrıca codelab'imizi de deneyebilirsiniz.

Bluetooth LE Audio

Düşük Enerji (LE) Audio, Bluetooth klasik'in yerini almak ve belirli kullanım alanları ile bağlantı topolojilerini etkinleştirmek için oluşturulmuş kablosuz sestir. Kullanıcıların seslerini arkadaşlarıyla ve aileleriyle paylaşıp yayınlamalarına veya bilgi, eğlence ya da erişilebilirlik için herkese açık yayınlara abone olmalarına olanak tanır. Kullanıcıların pil ömründen ödün vermeden yüksek kaliteli ses alabilmelerini ve Bluetooth Classic ile mümkün olmayan farklı kullanım alanları arasında sorunsuz bir şekilde geçiş yapmalarını sağlamak için tasarlanmıştır. Android 13'ten itibaren sistem, LE Audio için yerleşik destek içerir. Böylece geliştiriciler, uyumlu cihazlarda bu özelliklerden ücretsiz olarak yararlanabilir.

MIDI 2.0

Sistem, Android 13'ten itibaren MIDI 2.0 standardını destekler. Buna, MIDI 2.0 donanımını USB üzerinden bağlama imkanı da dahildir. Bu standart; kumandalarda daha yüksek çözünürlük, Batı harici tonlama için daha iyi destek ve not başına denetleyicilerle daha etkileyici performans gibi özellikler sunar.

Başlangıç ekranı verimliliği iyileştirmeleri

Android 13, Başlangıç Ekranı API'sinde animasyonlu başlangıç ekranlarının verimliliğini artırır:

  • Sistem, animasyon süresini doğrudan AnimatedVectorDrawable'den tahmin eder. Android 13'ten önce windowSplashScreenAnimationDuration öğesini doğrudan ayarlamak gerekiyordu.

  • Android 13 ve sonraki sürümlerde uygulamanızın simgeyi her zaman başlangıç ekranında gösterip göstermeyeceğini kontrol etmek için yeni windowSplashScreenBehavior özelliğini kullanın.

Ayrıntılı belgeleri görmek için Başlangıç Ekranları konusuna bakın.

ART optimizasyonları

ART, Android 13 (API düzeyi 33) ve sonraki sürümlerde yerel kod arasında geçiş yapmayı çok daha hızlı hale getirirken JNI çağrılarını artık 2, 5 kata kadar hızlandırıyor. Çalışma zamanı referans işlemesi de yeniden düzenlendi. Bu sayede neredeyse engellenebilir ve olumsuzlukları daha da azaltmış oldu. Ayrıca, erişilemeyen nesneleri daha erken geri almak için Reference.refersTo() herkese açık API'sini kullanabilirsiniz. Ayrıca, optimize edilmiş sınıf ve yöntem aramaları sayesinde yorumcunun artık daha hızlı olduğunu göreceksiniz. Ayrıca ART, yükleme sırasında daha fazla bayt kodu doğrulaması yaparak çalışma zamanında doğrulama masrafını ortadan kaldırır ve uygulama başlatma sürelerini hızlandırır.

Gizlilik ve güvenlik

Bağlama kayıtlı alıcıları daha güvenli şekilde dışa aktarma

Android 13, çalışma zamanı alıcılarını daha güvenli hale getirmek için uygulamanızın, kayıtlı yayın alıcının dışa aktarılması ve cihazdaki diğer uygulamalara görünür olması gerekip gerekmediğini belirleme olanağı sunuyor. Android'in önceki sürümlerinde cihazdaki herhangi bir uygulama, alıcı bir imza izni ile korunmadığı sürece dinamik olarak kaydedilmiş bir alıcıya korumasız yayın gönderebiliyordu.

Bu dışa aktarma yapılandırması, aşağıdakilerden en az birini yapan uygulamalarda kullanılabilir:

Fotoğraf seçici

Android 13 (API düzeyi 33) ve sonraki sürümler fotoğraf seçici deneyimi içerir. Uygulamanız fotoğraf seçiciyi başlattığında kullanıcılar, uygulamanıza tüm medya kitaplığını görüntüleme erişimi vermek yerine, uygulamanızla paylaşılacak belirli resimleri ve videoları (ör. profil resimleri) seçer. Kullanıcının fotoğraf ve videolarına erişmek için önerilen yol budur.

Fotoğraf seçici, uygulamanızın çalışma zamanında istenen izin beyan etmesine gerek olmadığından kullanıcılar için gelişmiş gizlilik sağlar. Ayrıca fotoğraf seçici, uygulamalar için yerleşik ve standartlaştırılmış bir kullanıcı arayüzü sağlayarak daha tutarlı bir kullanıcı deneyimi sunar.

Yakındaki kablosuz cihazlar için yeni çalışma zamanında istenen izin

Android 13 (API düzeyi 33), bir cihazın yakındaki kablosuz ağ erişim noktalarıyla olan bağlantılarını yöneten uygulamalar için NEARBY_DEVICES izin grubunda yeni bir çalışma zamanı izni kullanıma sunuyor. Bu uygulamalar birkaç farklı kablosuz API'yi çağırdığında yeni NEARBY_WIFI_DEVICES iznini beyan etmelidir. Ayrıca uygulamalar, kablosuz API'lerden fiziksel konum elde etmedikleri sürece Android 13 veya sonraki sürümleri hedeflerken ACCESS_FINE_LOCATION iznini beyan etmeleri gerekmez.

Yakındaki kablosuz cihazlar izni hakkında daha fazla bilgi edinin.

Tam alarm kullanmak için yeni izin

Uygulamanız Android 13 veya sonraki sürümleri hedefliyorsa uygulamanıza otomatik olarak verilen USE_EXACT_ALARM iznini kullanabilirsiniz. Ancak uygulamanızın bu izni kullanabilmesi için aşağıdaki kriterlerden en az birini karşılaması gerekir:

  • Uygulamanız bir çalar saat uygulaması veya zamanlayıcı uygulamasıdır.
  • Uygulamanız, yaklaşan etkinliklerle ilgili bildirimler gösteren bir takvim uygulamasıdır.

Uygulamanız tam alarm ayarlıyor ancak önceki listede gösterilen iki durumu da karşılamıyorsa bunun yerine SCHEDULE_EXACT_ALARM iznini beyan etmeye devam edin ve kullanıcının uygulamanıza erişimi reddettiği durumlara karşı hazırlıklı olun.

Geliştiricinin düşürülebilir izinleri

Uygulamanız, Android 13'ten itibaren kullanılmayan çalışma zamanı izinlerine erişimi iptal edebilir. Bu API, uygulamanızın aşağıdakiler gibi gizliliği artıracak görevleri gerçekleştirmesini sağlar:

  • Kullanılmayan izinleri kaldırın.
  • Kullanıcıların güvenini artıran izinlerle ilgili en iyi uygulamalara uyma Kullanıcılara, proaktif olarak iptal ettiğiniz izinleri görüntüleyen bir iletişim kutusu göstermeyi düşünebilirsiniz.

APK İmza Şeması 3.1 sürümü

Android 13'e APK İmza Şeması 3.1 sürümü için destek eklendi. Bu destek, mevcut APK İmza Şeması v3'e göre iyileştirilmiştir. Bu şemada, APK İmza Şeması v3'ün rotasyonla ilgili bilinen bazı sorunları ele alınmaktadır. Özellikle v3.1 imza şeması, rotasyonun platformun sonraki bir sürümünü hedeflemesine olanak tanıyan SDK sürümü hedeflemesini destekler.

v3.1 imza şeması, 12L veya daha düşük sürümlerde tanınmayan bir blok kimliği kullanır. Bu nedenle, platform aşağıdaki imzalayan davranışını uygular:

  • Android 13 veya sonraki sürümleri çalıştıran cihazlar, v3.1 bloğundaki döndürülmüş imzalayıcıyı kullanır.
  • Android'in daha eski sürümlerini çalıştıran cihazlar, dönüşümlü imzalayanı yoksayar ve v3.0 bloğunda orijinal imzalayanı kullanır.

İmzalama anahtarını henüz döndürmemiş uygulamalar herhangi bir ek işlem gerektirmez. Bu uygulamalar dönüşümlü yayınlamayı seçtiğinde, sistem varsayılan olarak v3.1 imza şemasını uygular.

Dönüşümlü olarak çalışan ve v3.0 imzalama bloğunda döndürülmüş imzalama anahtarlarını kullanmaya devam etmek isteyen uygulamaların apksigner çağrılarını güncellemesi gerekir:

apksigner sign --ks keystore.jks |
  --key key.pk8 --cert cert.x509.pem
  --rotation-min-sdk-version API_LEVEL
  [signer_options] app-name.apk

...burada API_LEVEL 32 veya daha küçüktür.

Keystore ve KeyMint'te daha iyi hata raporlama

Keystore ve KeyMint, anahtar oluşturan uygulamalar için artık daha ayrıntılı ve doğru hata göstergeleri sağlıyor. java.security.ProviderException altına istisna sınıfı hiyerarşisi ekledik. Bu hiyerarşi, Keystore/KeyMint hata kodlarını ve hatanın yeniden denenebilir olup olmadığını içeren Android'e özgü istisnalar içerir. Ayrıca yeni istisnaları geçersiz kılmak için anahtar oluşturma yöntemlerini değiştirebilir ve (imzalama, şifreleme) kullanabilirsiniz. İyileştirilmiş hata raporlama özelliği anahtar oluşturma ile sınırlı değildir ve artık anahtar oluşturmayı yeniden denemek için ihtiyacınız olan bilgileri sağlayacaktır.

Tablet ve büyük ekran desteği

Android 13, Android 12 ve 12L özellik lansmanında sunulan tablet optimizasyonlarını temel alır. Bu optimizasyonlar sistem kullanıcı arayüzü optimizasyonları, daha iyi çoklu görev ve iyileştirilmiş uyumluluk modları gibi özellikler içerir. Testiniz kapsamında, uygulamalarınızın tabletlerde ve diğer büyük ekranlı cihazlarda en iyi şekilde göründüğünden emin olun.

Yenilikler ve test edilecek öğeler hakkında daha fazla bilgi için Tablet ve büyük ekran desteği sayfasına bakın.

Grafik

Programlanabilir gölgelendiriciler

Bu GLSL Gölgelendirici'den uyarlanan bir AGSL animasyonlu gölgelendirici.

Sistem, Android 13 sürümünden itibaren Android Graphics Shading Language (AGSL) kullanılarak tanımlanan davranışla programlanabilir RuntimeShader nesneleri desteklemektedir. AGSL, söz diziminin büyük bir kısmını GLSL ile paylaşır ancak Android'in tuvalindeki boyayı özelleştirmek ve View içeriğini filtrelemek için Android oluşturma motorunda çalışır. Android, dalga efektleri, bulanıklaştırma ve fazla kaydırmayı uygulamak için dahili olarak bu gölgelendiricileri kullanır. Android 13 ve sonraki sürümler, uygulamanız için benzer gelişmiş efektler oluşturmanıza olanak tanır.

Koreograf iyileştirmeleri

Android 13, Choreographer ve ASurfaceControl uygulamalarına olası kare zaman çizelgeleri hakkında daha fazla bilgi sağlayan ve kare yaşam döngüsü hakkında SurfaceFlinger hakkında daha fazla bilgi sağlayan herkese açık API yöntemleri sunar. Öncekine benzer şekilde uygulamalar Choreographer için geri arama yapabilir ve kare zaman çizelgesi bilgilerini alabilir. Android 13'te (API düzeyi 33) Choreographer, birden fazla olası sunum zamanını ve bunlara karşılık gelen kare teslim tarihlerini döndürür. Uygulamalar sunum zamanını seçebilir ve ardından seçim SurfaceFlinger adlı kullanıcıyı bilgilendirebilir. Böylece SurfaceFlinger, istenen sunum zamanından önce işlemleri uygulamaya veya tamponları engellemeye çalışmaz.

Uygulamanız yeni Koreograf ve SurfaceControl yöntemlerini kullanıyorsa uygulamanın kare yaşam döngüsünü Perfetto izlerinde görüntüleyebilirsiniz.

Kamera

HDR video çekimi

Kamera2 API'leri, Android 13'ten itibaren kameranızı kullanarak HDR video içeriğini önizlemenizi ve kaydetmenizi sağlayan Yüksek Dinamik Aralıklı (HDR) video yakalamayı destekler. Standart Dinamik Aralık'a (SDR) kıyasla HDR, daha geniş bir renk yelpazesi sunar ve parlaklık bileşeninin dinamik aralığını artırır (mevcut 100 cd/m2'den 1.000 sn. cd/m2'ye kadar). Bu sayede video kalitesi daha zengin renkler, daha parlak vurgular ve daha koyu gölgelerle gerçek yaşamla daha yakından eşleşir.

HDR video çekimi hakkında daha fazla bilgi edinmek için HDR video çekimi belgelerine göz atın.

Medya

Üç boyutlu ses

Üç boyutlu ses, medya içeriğini kullanıcılarınız için daha gerçekçi hale getiren etkileyici bir ses deneyimidir. Bu özellikle nasıl entegre edileceğine dair ayrıntılar için Üç boyutlu ses dokümanlarımıza bakın.

Beklenen ses yönlendirme

Android 13, medya uygulamalarının seslerinin nasıl yönlendirileceğini tanımlamasına yardımcı olmak için AudioManager sınıfında ses yönlendirme API'lerini kullanıma sunar. getAudioDevicesForAttributes() API, belirtilen sesi çalmak için kullanılabilecek cihazların listesini almanızı sağlar. getDirectProfilesForAttributes() API ise ses akışınızın doğrudan çalınıp oynatılamayacağını anlamanıza yardımcı olur. Ses parçanız için kullanılacak en iyi AudioFormat simgesini belirlemek amacıyla bu API'leri kullanın.

Erişilebilirlik

Sesli açıklama

Android 13 (API düzeyi 33), kullanıcıların tüm uygulamalarda sesli açıklamaları etkinleştirmesine olanak tanıyan, sistem genelinde yeni bir erişilebilirlik tercihi sunuyor. Sesli açıklama, anlatıcının sunum boyunca konuştuğu ve sesteki doğal duraklamalar sırasında ekranda neler olduğunu açıklayan ek bir anlatım parçasıdır. Uygulamalar, aşağıdaki kod snippet'inde gösterildiği gibi kullanıcının sesli açıklama parçaları için tercihini isAudioDescriptionRequested() ile sorgulayarak belirleyebilir:

Kotlin


private lateinit var accessibilityManager: AccessibilityManager

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager::class.java)

// Where your media player is initialized
if (accessibilityManager.isAudioDescriptionRequested) {
    // User has requested to enable audio descriptions
}

Java


private AccessibilityManager accessibilityManager;

// In onCreate():
accessibilityManager = getSystemService(AccessibilityManager.class);

// Where your media player is initialized
if(accessibilityManager.isAudioDescriptionRequested()) {
    // User has requested to enable audio descriptions
}

Uygulamalar, AccessbilityManager için bir işleyici ekleyerek kullanıcının tercih değişikliğini izleyebilir:

Kotlin

private val listener =
    AccessibilityManager.AudioDescriptionRequestedChangeListener { enabled ->
        // Preference changed; reflect its state in your media player
    }

override fun onStart() {
    super.onStart()

    accessibilityManager.addAudioDescriptionRequestedChangeListener(mainExecutor, listener)
}

override fun onStop() {
    super.onStop()

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener)
}

Java

private AccessibilityManager.AudioDescriptionRequestedChangeListener listener = enabled -> {
    // Preference changed; reflect its state in your media player
};

@Override
protected void onStart() {
    super.onStart();

    accessibilityManager.addAudioDescriptionRequestedChangeListener(getMainExecutor(), listener);
}

@Override
protected void onStop() {
    super.onStop();

    accessibilityManager.removeAudioDescriptionRequestedChangeListener(listener);
}

Temel işlevler

OpenJDK 11 güncellemeleri

Android 13, Android'in temel kitaplıklarını OpenJDK 11 LTS sürümüyle uyumlu hale getirmek için yenileme çalışmalarına başlar. Bu sayede uygulama ve platform geliştiricileri için hem kitaplık güncellemeleri hem de Java 11 dil desteği sunulur. Android 13'te sunulan temel kitaplık değişiklikleri, Android 12 cihazlarda da ART Mainline Modülü'nde yapılan bir Google Play sistem güncellemesiyle kullanılabilecektir.

Android 13, temel kitaplıklarda aşağıdaki değişiklikleri içerir:

  • Yerel değişkenler için ve parametre lambdas olarak var anahtar kelimesi desteği.
  • Dize sınıfındaki yeni yöntemler:

    • isBlank()
    • lines()
    • repeat()
    • strip()
    • stripLeading()
    • stripTrailing()
  • Bir koleksiyonun diziye uyarlanmasını kolaylaştırmak için Collection.toArray(IntFunction) desteği.

  • Optional, OptionalDouble, OptionalInt veOptionalLong java.util sınıfında ifPresentOrElse(), isEmpty(), orElseThrow() ve stream() desteği.

  • Yuvaların yeniden kullanımı da dahil olmak üzere SocketOptions için genişletilmiş destek.

  • Okuma karakterlerinin bir Writer öğesine aktarıldığı NullReader, NullWriter, InputStream, OutputStream ve transferTo() Reader işlevleri.

  • Charsets ile URL kodlama ve kod çözme işlevi eklendi.

  • FileReader, FileWriter, PrintStream ve PrintWriter için Charset işlevi.

  • ByteArrayInput veya OutputStream ve Input veya OutputStream için yeni transferTo(), readNBytes(), readAllBytes() ve writeBytes() işlevleri.

  • java.lang.invoke.VarHandle için çalışma zamanı ve derleyici desteği.

  • java.util.concurrent öğesini dahili olarak VarHandle kullanarak OpenJDK 11 API'ye günceller.

Java ve OpenJDK, Oracle ve/veya iştiraklerinin ticari markaları ya da tescilli ticari markalarıdır.