Özelliklere ve API'lere Genel Bakış

Android 13, geliştiriciler için harika yeni özellikler ve API'ler sunuyor. 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 13'ü hedefleyen uygulamalarda ve tüm uygulamalarda Android 13 davranış değişikliklerini inceleyin.

Geliştirici üretkenliği ve araçları

Temalı uygulama simgeleri

Kullanıcı temalı uygulama simgelerini etkinleştiriyor
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 rengini alacak şekilde renklendirilir.

Bu özelliği desteklemek için uygulamanızın hem uyarlanabilir simge hem de tek renkli uygulama simgesi sağlaması ve manifest dosyasındaki <adaptive-icon> öğesinden tek renkli uygulama simgesini işaret etmesi gerekir. Kullanıcı, temalı uygulama simgelerini etkinleştirmişse (başka bir deyişle, sistem ayarlarında Temalı simgeler açma/kapatma düğmesini açmışsa) ve başlatıcı bu özelliği destekliyorsa sistem, kullanıcının seçtiği duvar kağıdı ve temanın rengine göre renk tonunu belirler ve bunu tek renkli uygulama simgesine uygular.

Aşağıdaki senaryolardan herhangi birinde ana ekranda temalı uygulama simgesi GÖSTERİLMEZ. 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

Daha fazla bilgi ve talimat için Uyarlanabilir simgeler başlıklı makaleyi inceleyin.

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 ayarlar, ancak belirli uygulamalarda Felemenkçe, Çince veya Hintçe gibi başka diller de seçmek isterler. Android 13, uygulamaların bu kullanıcılara daha iyi bir deneyim sunmasına yardımcı olmak için birden fazla dili destekleyen uygulamalara aşağıdaki özellikleri ekler:

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

    Uygulamanızın manifest dosyasında android:localeConfig özelliğini beyan ederek sisteme birden fazla dili desteklediğini bildirmesi gerekir. Daha fazla bilgi edinmek için kaynak dosyası oluşturma ve bunu uygulamanızın manifest dosyasında beyan etme talimatlarını inceleyin.

  • Ek API'ler: LocaleManager içindeki setApplicationLocales() ve getApplicationLocales() yöntemleri gibi bu herkese açık 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, uygulama içi özel dil seçiciler oluşturmak için bu API'leri kullanan uygulamalar, kullanıcılarına dil tercihlerini nerede seçtiklerinden bağımsız olarak tutarlı bir kullanıcı deneyimi sunar. Herkese açık API'ler, ortak metin kodu miktarını azaltmanıza da yardımcı olur. Bölünmüş APK'ları ve uygulama düzeyinde kullanıcı dili 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 eşdeğer API'ler de mevcuttur. Appcompat 1.6.0-beta01 veya sonraki sürümlere eklenen API'leri kullanmanızı öneririz.

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

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

Heceleme, kaydırılan metnin daha kolay okunmasını sağlar ve kullanıcı arayüzünüzün daha uyumlu olmasına yardımcı olur. Android 13'ten itibaren, tireleme performansı% 200'e kadar optimize edilmiştir. Böylece, oluşturma performansını neredeyse hiç etkilemeden TextView içinde tirelemeyi etkinleştirebilirsiniz. Daha hızlı tireleme için setHyphenationFrequency() içinde fullFast veya normalFast frekanslarını kullanın.

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

Japonca ve Çince gibi dilleri konuşan kişiler, fonetik harf giriş yöntemlerini 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. Örneğin, daha önce Japonca arama yapmak için kullanıcının şu adımları uygulaması gerekiyordu:

  1. Arama teriminin (ör. yer veya uygulama adı) fonetik telaffuzu olarak Hiragana girme
  2. Hiragana karakterlerini Kanji'ye dönüştürmek için klavyeyi kullanın
  3. Kanji karakterlerini kullanarak yeniden arama yapın.
  4. Son olarak arama sonuçlarını alırlar.

Yeni metin dönüştürme API'si sayesinde Japonca konuşan kullanıcılar Hiragana dilinde yazabilir ve 2. ile 3. adımları atlayarak Kanji arama sonuçlarını anında canlı olarak görebilir.

Latin alfabesi dışındaki alfabeler için iyileştirilmiş satır yükseklikleri

Android 13, her dile uyarlanmış bir satır yüksekliği kullanarak Latin alfabesi dışındaki alfabelerin (ör. Tamilce, Birmanca, Teluguca ve Tibetçe) görüntülenmesini iyileştirir. Yeni satır yükseklikleri, kırpmayı önler ve karakterlerin konumunu iyileştirir. Uygulamanız, yalnızca Android 13'ü hedefleyerek bu iyileştirmelerden yararlanabilir. Değişiklikler Latin alfabesi kullanmayan dillerde kullanıcı arayüzünüzü etkileyebileceğinden, yeni satır aralığını kullanırken uygulamalarınızı test etmeyi unutmayın.

Android 12'de kırpılan satır yükseklikleri (üstte) Android 13'te daha iyi konumlandırılmış ve kırpılmamış (altta).

Japonca metin kaydırma iyileştirildi

Android 13'ten itibaren TextView'lar, daha şık ve okunabilir Japonca uygulamalar için metni karakter yerine Bunsetsu (doğal görünen en küçük kelime birimi) veya kelime öbeklerine göre sarmalayabilir. TextView'larla android:lineBreakWordStyle="phrase" kullanarak bu sarmalama özelliğinden yararlanabilirsiniz.

İfade stili etkinleştirilmiş (altta) ve etkinleştirilmemiş (üstte) Japonca metin kaydırma.

Unicode kitaplığı güncellemeleri

Android 13; Unicode ICU 70, Unicode CLDR 40 ve Unicode 14.0'da yer alan en son iyileştirmeleri, düzeltmeleri ve değişiklikleri ekler.

Önemli değişikliklerden bazıları şunlardır:

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

Renkli vektör yazı tipleri

COLRv1 vektör emoji (sol) ve bitmap emoji (sağ)

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

Çoğu uygulamada sistem her şeyi halleder ve COLRv1 sorunsuz çalışır. Ancak 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 kaynaklara göz atın:

Hızlı Ayarlar yerleşimi API'si

Bildirim gölgesindeki Hızlı Ayarlar, kullanıcıların bir uygulamanın bağlamından ayrılmadan ayarları değiştirmesi veya hızlı işlemler yapması için kullanışlı bir yöntemdir. Özel kutular sağlayan uygulamalar için kullanıcıların kutularınızı keşfetmesini ve Hızlı Ayarlar'a eklemesini kolaylaştırıyoruz. Yeni bir kart yerleştirme API'si kullanan uygulamanız artık kullanıcıdan özel kartınızı doğrudan etkin Hızlı Ayarlar kartları grubuna eklemesini isteyebilir. Yeni bir sistem iletişim kutusu, kullanıcının kartı eklemek için Hızlı Ayarlar'a gitmesine gerek kalmadan, uygulamanızdan ayrılmadan tek adımda kartı eklemesine olanak tanır.

Kullanıcıya, Hızlı Ayarlar'a kutu 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 işlemi şunları yapar:

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

Bu özellik, kopyalama işleminden sonra uygulamalar tarafından gösterilen çeşitli bildirimleri standartlaştırır ve kullanıcılara panoları üzerinde daha fazla kontrol olanağı sunar. Daha fazla bilgi için Kopyala ve Yapıştır özelliği sayfasını ziyaret edin.

Kopyala/Yapıştır widget'ı
İçerik panoya girdiğinde gösterilen yeni kullanıcı arayüzü.

Tahmin edilen geri gitme hareketi

Android 13; telefonlar, büyük ekranlar ve katlanabilir cihazlar gibi Android cihazlar için tahmin edilen geri gitme hareketini kullanıma sunuyor. Bu özelliği desteklemek için uygulamanızı güncellemeniz gerekir.

Ayrıntılı dokümanları görmek için Uygulamanızı tahmin edilen geri gitme hareketini destekleyecek şekilde güncelleme başlıklı makaleyi inceleyin. 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 tasarlanmış kablosuz ses teknolojisidir. Kullanıcıların seslerini arkadaşları ve aileleriyle paylaşmasına ve yayınlamasına ya da bilgi, eğlence veya erişilebilirlik için herkese açık yayınlara abone olmasına olanak tanır. Kullanıcıların pil ömründen ödün vermeden yüksek kaliteli ses alabilmesi ve Bluetooth Klasik ile mümkün olmayan farklı kullanım alanları arasında otomatik geçiş yapabilmesi 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 özellikleri ücretsiz olarak kullanabilir.

MIDI 2.0

Android 13'ten itibaren sistem, MIDI 2.0 donanımını USB üzerinden bağlama özelliği de dahil olmak üzere MIDI 2.0 standardı için destek sunar. Bu standart, denetleyiciler için daha yüksek çözünürlük, Batı dışı tonlama için daha iyi destek ve nota başına denetleyiciler kullanarak daha etkileyici performans gibi özellikler sunar.

Başlangıç ekranı verimlilik iyileştirmeleri

Android 13, SplashScreen API'deki animasyonlu başlangıç ekranlarının verimliliğini artırır:

  • Sistem, animasyon süresini doğrudan AnimatedVectorDrawable öğesinden alır. Android 13'ten önce windowSplashScreenAnimationDuration doğrudan ayarlanıyordu.

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

Ayrıntılı dokümanları görmek için Başlangıç Ekranları bölümüne bakın.

ART optimizasyonları

Android 13 (API düzeyi 33) ve sonraki sürümlerde ART, yerel koda geçişi ve yerel koddan geçişi çok daha hızlı hale getirir.JNI çağrıları artık 2, 5 kata kadar daha hızlıdır. Çalışma zamanı referans işleme de büyük ölçüde engellenmeyecek şekilde yeniden düzenlendi. Bu da takılmaları daha da azaltır. Ayrıca, erişilemeyen nesneleri daha erken geri almak için Reference.refersTo() genel API'sini kullanabilirsiniz. Optimize edilmiş sınıf ve yöntem aramaları sayesinde yorumlayıcının artık daha hızlı olduğunu fark edeceksiniz. ART ayrıca yükleme sırasında daha fazla bayt kodu doğrulaması gerçekleştirerek çalışma zamanında doğrulama maliyetini önler ve uygulama başlatma sürelerini hızlı tutar.

Gizlilik ve güvenlik

Bağlama kayıtlı alıcıların daha güvenli bir şekilde dışa aktarılması

Android 13, çalışma zamanı alıcılarını daha güvenli hale getirmek için uygulamanızın, kayıtlı bir yayın alıcının dışa aktarılıp aktarılmayacağını ve cihazdaki diğer uygulamalar tarafından görülüp görülmeyeceğini belirtebilmesini sağlar. Android'in önceki sürümlerinde, cihazdaki herhangi bir uygulama, dinamik olarak kayıtlı bir alıcıya korumasız bir yayın gönderebiliyordu. Bu durum, alıcının bir imza izni ile korunmadığı durumlarda geçerliydi.

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ümlerde fotoğraf seçici deneyimi sunulur. 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 yöntem budur.

Fotoğraf seçici, uygulamanızın çalışma zamanında istenen izinleri bildirmesi gerekmediği için kullanıcılara 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ü sunarak daha tutarlı bir kullanıcı deneyimi sağlar.

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

Android 13 (API düzeyi 33), bir cihazın kablosuz ağ üzerinden yakındaki erişim noktalarına bağlantılarını yöneten uygulamalar için NEARBY_DEVICES izin grubunda yeni bir çalışma zamanında istenen izin sunar. Bu uygulamalar, çeşitli kablosuz API'lerini çağırırken yeni izni (NEARBY_WIFI_DEVICES) beyan etmelidir. Ayrıca, uygulamalar Wi-Fi API'lerinden fiziksel konum bilgisi almadığı sürece Android 13 veya sonraki sürümleri hedeflediklerinde ACCESS_FINE_LOCATION iznini beyan etmeleri gerekmez.

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

Tam alarmları kullanmayla ilgili 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 ölçütlerden en az birini karşılaması gerekir:

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

Uygulamanız kesin zamanlı alarmlar ayarlıyor ancak önceki listede gösterilen durumlardan hiçbirini karşılamıyorsa bunun yerine SCHEDULE_EXACT_ALARM iznini beyan etmeye devam edin ve kullanıcının uygulamanıza erişimi reddettiği duruma hazırlıklı olun.

Geliştirici tarafından azaltılabilir izinler

Android 13'ten itibaren uygulamanız, kullanılmayan çalışma zamanında istenen izinlere erişimi iptal edebilir. Bu API, uygulamanızın aşağıdaki gibi gizliliği artıran görevleri gerçekleştirmesine olanak tanır:

  • Kullanılmayan izinleri kaldırın.
  • İzinlerle ilgili en iyi uygulamalara uymak, kullanıcıların güvenini artırır. Kullanıcılara, proaktif olarak iptal ettiğiniz izinleri gösteren bir iletişim kutusu göstermeyi düşünebilirsiniz.

APK İmza Şeması v3.1

Android 13, mevcut APK İmza Şeması v3'ü iyileştiren APK İmza Şeması v3.1 için destek ekler. Bu şema, rotasyonla ilgili APK İmza Şeması v3'teki bilinen bazı sorunları giderir. Özellikle v3.1 imza şeması, SDK sürümü hedeflemeyi destekler. Bu sayede rotasyon, platformun daha sonraki bir sürümünü hedefleyebilir.

v3.1 imza şeması, 12L veya daha eski 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 eski sürümlerini çalıştıran cihazlar, rotasyonlu imzalayanı yoksayar ve bunun yerine v3.0 bloğundaki orijinal imzalayanı kullanır.

İmzalama anahtarını henüz rotasyona tabi tutmamış uygulamalar için ek işlem yapılması gerekmez. Bu uygulamalar rotasyon yapmayı seçtiğinde sistem varsayılan olarak v3.1 imza şemasını uygular.

Rotasyon işlemini tamamlamış ve rotasyonlu imzalama anahtarını v3.0 imzalama bloğunda kullanmaya devam etmek isteyen uygulamaların apksigner çağrısı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üçük bir değerdir.

Keystore ve KeyMint'te daha iyi hata raporlama

Anahtar oluşturan uygulamalar için Keystore ve KeyMint artık daha ayrıntılı ve doğru hata göstergeleri sunuyor. java.security.ProviderException altında, Keystore/KeyMint hata kodlarını ve hatanın yeniden denenebilir olup olmadığını içeren Android'e özel istisnalarla birlikte bir istisna sınıfı hiyerarşisi ekledik. Yeni istisnaları oluşturmak için anahtar oluşturma ve kullanma (imzalama, şifreleme) yöntemlerini de değiştirebilirsiniz. İyileştirilmiş hata raporlama, 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ğlar.

Tablet ve büyük ekran desteği

Android 13, Android 12 ve 12L özellik paketinde sunulan tablet optimizasyonlarını temel alır. Bunlar arasında sistem kullanıcı arayüzü optimizasyonları, daha iyi çoklu görev ve iyileştirilmiş uyumluluk modları yer alır. Testleriniz 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 özellikler hakkında daha fazla bilgi için Tablet ve büyük ekran desteği sayfasını inceleyin.

Grafik

Programlanabilir gölgelendiriciler

Bu GLSL gölgelendiriciden uyarlanmış bir AGSL animasyonlu gölgelendirici.

Android 13'ten itibaren sistem, davranışı Android Graphics Shading Language (AGSL) kullanılarak tanımlanan programlanabilir RuntimeShader nesneleri destekler. AGSL, söz diziminin büyük bir kısmını GLSL ile paylaşır ancak Android'in tuvalinde boyamayı ve View içeriğinin filtrelenmesini özelleştirmek için Android oluşturma motorunda çalışır. Android, dalga efektleri, bulanıklaştırma ve esnek kaydırma uygulamak için bu gölgelendiricileri dahili olarak 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, uygulamalara olası kare zaman çizelgeleri hakkında daha fazla bilgi sağlayan ve kare yaşam döngüsü hakkında SurfaceFlinger için daha fazla bağlam ekleyen Choreographer ve ASurfaceControl için herkese açık API yöntemleri sunar. Uygulamalar, daha önce olduğu gibi Choreographer sınıfına geri çağırma gönderebilir ve kare zaman çizelgesi bilgilerini alabilir. Android 13'te (API düzeyi 33), Choreographer birden fazla olası sunum süresi ve bunlara karşılık gelen kare son tarihlerini döndürür. Uygulamalar, sunum zamanını seçebilir ve ardından seçimi SurfaceFlinger'e bildirebilir. SurfaceFlinger, istenen sunum zamanından önce işlemleri uygulamaya veya arabellekleri kilitlemeye çalışmaz.

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

Kamera

HDR video kaydı

Android 13'ten itibaren Camera2 API'leri, Yüksek Dinamik Aralıklı (HDR) video çekimini destekler. Bu sayede, kameranızı kullanarak HDR video içeriğini önizleyebilir ve kaydedebilirsiniz. HDR, Standart Dinamik Aralık'a (SDR) kıyasla daha geniş bir renk aralığı sunar ve parlaklık bileşeninin dinamik aralığını artırır (mevcut 100 cd/m2'den 1.000'lerce cd/m2'ye). Bu sayede daha zengin renkler, daha parlak vurgular ve daha koyu gölgelerle gerçek hayata daha yakın bir video kalitesi elde edilir.

HDR video yakalama hakkında daha fazla bilgi edinmek için HDR video yakalama belgelerine bakın.

Medya

Üç boyutlu ses

Üç boyutlu ses, medya içeriğinin sesini kullanıcılarınız için daha gerçekçi hale getiren etkileyici bir ses deneyimidir. Bu özellikle nasıl entegrasyon yapacağınızla ilgili ayrıntılı bilgi için Üç boyutlu ses dokümanlarımızı inceleyin.

Öngörüye dayalı ses yönlendirme

Android 13, medya uygulamalarının seslerinin nasıl yönlendirileceğini belirlemesine yardımcı olmak için AudioManager sınıfında ses yönlendirme API'leri sunar. getAudioDevicesForAttributes() API'si, belirtilen sesi çalmak için kullanılabilecek cihazların listesini almanıza olanak tanır. getDirectProfilesForAttributes() API'si ise ses akışınızın doğrudan çalınıp çalınamayacağını anlamanıza yardımcı olur. Ses parçanız için en uygun AudioFormat değerini belirlemek üzere 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 sunar. Sesli açıklama, sunum boyunca konuşan ve sesli anlatımdaki doğal duraklamalar sırasında ekranda neler olduğunu açıklayan bir anlatıcının yer aldığı ek bir anlatım parçasıdır. Uygulamalar, aşağıdaki kod snippet'inde gösterildiği gibi isAudioDescriptionRequested() ile sorgulayarak kullanıcının sesli açıklama parçalarıyla ilgili tercihini takip edebilir:

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 sınıfına bir dinleyici 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şlıyor. Bu kapsamda hem kitaplık güncellemeleri hem de uygulama ve platform geliştiricileri için Java 11 dil desteği sunuluyor. Android 13'te kullanıma sunulan temel kitaplık değişiklikleri, ART Mainline modülüne yönelik bir Google Play sistem güncellemesi aracılığıyla Android 12 cihazlarda da kullanılabilir.

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

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

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

  • java.util sınıflarında Optional, OptionalDouble, OptionalInt ve OptionalLong için ifPresentOrElse(), isEmpty(), orElseThrow() ve stream() desteği.

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

  • NullReader, NullWriter, InputStream, OutputStream ve transferTo() Okunan karakterleri Writer'ya aktaran Reader işlevi.

  • Charsets kullanılarak URL kodlama ve kod çözme işlevi eklendi.

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

  • ByteArrayInput veya OutputStream ve Input ya da 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, dahili olarak VarHandle kullanarak OpenJDK 11 API'ye güncellenir.

Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.