Özelliklere ve API'lere Genel Bakış

Android 13, geliştiricilere yeni ve harika özellikler ile API'ler sunuyor. Aşağıdaki bölümler, uygulamalarınızın özellikleri hakkında bilgi edinmenize 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 karşılaştırma raporunu okuyun. Yeni API'ler hakkında ayrıntılı bilgi için Android API referansı sayfasını ziyaret edin. Yeni API'ler, görünür olmaları 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 uygulamalar ve tüm uygulamalar için Android 13 davranış değişikliklerine göz atın.

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

Temalı uygulama simgeleri

Kullanıcının temalı uygulama simgelerini etkinleştirmesi
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 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'teki <adaptive-icon> öğesinden tek renkli uygulama simgesini işaret etmesi gerekir. Bir kullanıcı, temalı uygulama simgelerini etkinleştirmişse (yani sistem ayarlarından Temalandırılmış simgeler açma/kapatma düğmesini açmışsa) ve başlatıcı da 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 DEĞİL, uyarlanabilir veya standart uygulama simgesi gösterilir:

  • Kullanıcı temalı uygulama simgelerini etkinleştirmediyse
  • Uygulamanız tek renkli bir 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ı 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 edilen dili seçebileceği merkezi bir konumdur.

    Uygulamanız, sisteme birden fazla dili desteklediğini bildirmek için manifest dosyasında android:localeConfig özelliğini belirtmelidir. Daha fazla bilgi edinmek için kaynak dosyası oluşturma ve uygulamanızın manifest dosyasında beyan etme talimatlarına bakın.

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

    Bu API'ler sistem ayarlarıyla otomatik olarak senkronize edilir. Bu nedenle, özel uygulama içi dil seçicileri oluşturmak için bu API'leri kullanan uygulamalar, kullanıcılarının dil tercihlerini nereden seçtiklerinden bağımsız olarak tutarlı bir kullanıcı deneyimi yaşamasını sağlar. Herkese açık API'ler, standart kod miktarını azaltmanıza da yardımcı olur. Ayrıca, bölünmüş APK'ları destekler ve uygulama düzeyinde 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 eşdeğer API'ler AndroidX'te de kullanılabilir. 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 etkilenmez.

Metin ve dil desteği iyileştirildi

Android 13, daha iyi bir deneyim sunmanıza yardımcı olacak çeşitli özellik metni ve dil iyileştirmeleri içerir. Aşağıdaki bölümlerde bu iyileştirmeler açıklanmaktadır:

Daha hızlı satır bölme

Tire kullanımı, satır sonuna sığdırılan metinlerin daha kolay okunmasını sağlar ve kullanıcı arayüzünüzün daha uyumlu olmasını sağlar. Android 13'ten itibaren, satır ayırma performansı% 200'e varan oranda optimize edildiğinden, oluşturma performansını neredeyse hiç etkilemeden TextView'ünüzde etkinleştirebilirsiniz. Daha hızlı satır ayırmayı etkinleştirmek için setHyphenationFrequency() bölümündeki fullFast veya normalFast frekanslarını kullanın.

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

Japonca ve Çince gibi dilleri konuşan kullanıcılar, genellikle aramayı ve otomatik tamamlama gibi özellikleri yavaşlatan fonetik harf giriş yöntemleri kullanır. Android 13'te uygulamalar, kullanıcıların aradıklarını daha hızlı ve kolay bulabilmesi için yeni metin dönüştürme API'sini çağırabilir. Örneğin, daha önce Japonya'daki bir kullanıcının arama yapmak için aşağıdaki adımları uygulaması gerekiyordu:

  1. Arama terimlerinin (ör. bir yer veya uygulama adı) fonetik telaffuzunu Hiragana ile girin.
  2. Hiragana karakterlerini Kanji'ye dönüştürmek için klavyeyi kullanma
  3. Kanji karakterlerini kullanarak yeniden arama yapma
  4. Son olarak arama sonuçlarını alırlar.

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

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

Android 13, her dile uyarlanmış bir satır yüksekliği kullanarak Latin alfabesi dışındaki yazıların (Tamil, Burmaca, Telugu ve Tibetçe gibi) görüntülenmesini iyileştirir. Yeni satır yükseklikleri kırpmayı önler ve karakterlerin konumunu iyileştirir. Uygulamanız, Android 13'ü hedefleyerek bu iyileştirmelerden yararlanabilir. Değişiklikler, Latin alfabesi dışındaki dillerdeki 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 kırpılan (yukarıda) satır yükseklikleri artık daha iyi konumlandırılmış ve Android 13'te (aşağıda) kırpılmamış.

Japonca metin kaydırma özelliği iyileştirildi

Android 13'ten itibaren TextView'ler, daha şık ve okunaklı Japon uygulamaları için metni karakter yerine bunsetsu (doğal gelen en küçük kelime birimi) veya kelime öbeklerine göre sarabilir. TextView'lerle android:lineBreakWordStyle="phrase" kullanarak bu sarmalama özelliğinden yararlanabilirsiniz.

Japonca metin kaydırma, ifade stili etkin (aşağıda) ve devre dışı (yukarıda).

Unicode kitaplığı güncellemeleri

Android 13, Unicode ICU 70, Unicode CLDR 40 ve Unicode 14.0'a dahil edilen en son iyileştirmeleri, düzeltmeleri ve değişiklikleri içerir.

Dikkat çeken bazı değişiklikleri aşağıda bulabilirsiniz:

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

Renkli vektör yazı tipleri

COLRv1 vektör emoji (solda) ve bitmap emoji (sağda)

Android 13'ten itibaren sistem, COLR 1 sürümü (COLRv1) yazı tipleri için oluşturma desteği içerir ve sistem emojilerini 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 kullanıyorsa ve sistemin yazı tiplerini kullanıyorsa emoji oluşturma özelliğini test etmenizi öneririz.

COLRv1 hakkında daha fazla bilgi edinmek için aşağıdaki kaynaklara bakın:

Hızlı Ayarlar yerleşimi API'si

Bildirim gölgesindeki Hızlı Ayarlar, kullanıcıların bir uygulamanın bağlamından çıkmadan ayarları değiştirmesinin veya hızlı işlemler yapmasının kolay bir yoludur. Özel kartlar sunan uygulamalarda, kullanıcıların kartlarınızı keşfetmesini ve Hızlı Ayarlar'a eklemesini kolaylaştırıyoruz. Yeni bir kart yerleşimi API'si sayesinde uygulamanız artık kullanıcıdan özel kartınızı etkin Hızlı Ayarlar kartlarına doğrudan eklemesini isteyebilir. Yeni bir sistem iletişim kutusu, kullanıcının kart eklemek için Hızlı Ayarlar'a gitmek yerine uygulamanızdan çıkmadan tek adımda kart eklemesine olanak tanır.

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

Pano önizlemesi

Android 13'ten itibaren sistem, içeriğin panosuna eklenmesi durumunda standart bir görsel onay gösterir. Yeni onay şu işlemleri yapar:

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

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

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

Tahmine dayalı geri hareketi

Android 13, telefonlar, büyük ekranlar ve katlanabilir cihazlar gibi Android cihazlar için tahmini geri hareketi 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ı tahmini geri hareketi destekleyecek şekilde güncelleme başlıklı makaleyi inceleyin. Codelab'imizi de deneyebilirsiniz.

Bluetooth LE Audio

Düşük Enerji (LE) Audio, klasik Bluetooth'un yerini almak ve belirli kullanım alanlarını ve bağlantı topolojilerini etkinleştirmek için tasarlanmış kablosuz bir 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 Classic ile mümkün olmayan farklı kullanım alanları arasında sorunsuz bir şekilde geçiş yapabilmesi için tasarlanmıştır. Android 13'ten itibaren sistemde LE Audio için yerleşik destek bulunur. Bu sayede 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ını destekler. Bu standart, kontrolörler için daha yüksek çözünürlük, Batı dışı tonlamalar için daha iyi destek ve nota başına kontrolörler kullanarak daha etkileyici performans gibi özellikler sunar.

Başlangıç ekranı verimliliğiyle ilgili iyileştirmeler

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

  • Sistem, animasyon süresini doğrudan AnimatedVectorDrawable'ten çıkarır. Android 13'ten önce windowSplashScreenAnimationDuration doğrudan ayarlanmalıydı.

  • Uygulamanızın Android 13 ve sonraki sürümlerde başlangıç ekranında simgeyi her zaman göstereceği veya 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ı başlıklı makaleyi inceleyin.

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ında referans işleme de çoğunlukla engellenmeyecek şekilde yeniden çalışıldı. Bu da takılmaları daha da azaltır. Ayrıca, erişilemeyen nesneleri daha erken geri almak için Reference.refersTo() herkese açık API'yi kullanabilirsiniz. Ayrıca, optimize edilmiş sınıf ve yöntem aramaları sayesinde yorumlayıcının artık daha hızlı olduğunu fark edeceksiniz. ART, yükleme sırasında daha fazla bayt kodu doğrulaması da gerçekleştirerek çalışma zamanında doğrulama maliyetini önler ve uygulamanın başlatma süresini kısaltır.

Gizlilik ve güvenlik

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

Android 13, çalışma zamanındaki alıcıların daha güvenli hale getirilmesine yardımcı olmak için uygulamanızın kayıtlı yayın alıcılarının dışa aktarılıp cihazdaki diğer uygulamalar tarafından görünür olup olmayacağını belirtmesine olanak tanır. Android'in önceki sürümlerinde, alıcı imza izni ile korunmadığı sürece cihazdaki herhangi bir uygulama, dinamik olarak kayıtlı 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ümlerde fotoğraf seçici deneyimi bulunur. Uygulamanız fotoğraf seçiciyi başlattığında kullanıcılar, uygulamanıza medya kitaplığının tamamını görüntüleme erişimi vermek yerine uygulamanızla paylaşmak üzere 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.

Uygulamanızın çalışma zamanında izin belirtmesi gerekmediğinden fotoğraf seçici, kullanıcılara daha fazla 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 oluşturur.

Yakındaki kablosuz cihazlar için yeni çalışma zamanı izni

Android 13 (API düzeyi 33), bir cihazın kablosuz ağ üzerinden yakındaki erişim noktalarına olan bağlantılarını yöneten uygulamalar için NEARBY_DEVICES izin grubunda yeni bir çalışma anı izni sunar. Bu uygulamalar, çeşitli farklı kablosuz ağ API'lerini çağırırken yeni izni (NEARBY_WIFI_DEVICES) bildirmelidir. Ayrıca, uygulamalar kablosuz ağ API'lerinden fiziksel konum elde etmediği sürece Android 13 veya sonraki sürümleri hedeflerken ACCESS_FINE_LOCATION iznini bildirmelerine gerek yoktur.

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 iznine başvurabilirsiniz. Ancak uygulamanızın bu izni kullanabilmesi için aşağıdaki ölçütlerden en az birini karşılaması gerekir:

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

Uygulamanız tam alarmlar belirliyor ancak önceki listede gösterilen iki durumdan hiçbirini karşılamıyorsa bunun yerine SCHEDULE_EXACT_ALARM iznini beyan etmeye devam edin ve kullanıcının uygulamanıza erişimi reddetmesine hazırlıklı olun.

Geliştirici tarafından azaltılabilir izinler

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

  • Kullanılmayan izinleri kaldırın.
  • Kullanıcı güvenini artıran izinlerle ilgili en iyi uygulamalara uyun. 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'ten daha gelişmiş olan APK İmza Şeması v3.1 desteğini ekler. Bu şema, APK İmza Şeması v3 ile ilgili döndürmeyle ilgili bilinen sorunların bazılarını ele alır. Özellikle v3.1 imza şeması, SDK sürümü hedeflemeyi destekler. Bu sayede, rotasyonla platformun daha yeni bir sürümünü hedefleyebilirsiniz.

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ğunda döndürülmüş imzalayanı kullanır.
  • Android'in eski sürümlerini çalıştıran cihazlar, döndürülen imzalamayı yoksayar ve bunun yerine v3.0 bloğundaki orijinal imzalamayı kullanır.

İmzalama anahtarlarını henüz döndürmemiş uygulamalar için ek işlem gerekmez. Bu uygulamalar döndürmeyi seçtiğinde sistem varsayılan olarak v3.1 imza şemasını uygular.

Daha önce döndürülmüş olan ve döndürülmüş imzalama anahtarlarını v3.0 imzalama bloğunda 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 raporlaması

Anahtar oluşturan uygulamalar için Keystore ve KeyMint artık daha ayrıntılı ve doğru hata göstergeleri sağlıyor. java.security.ProviderException altında, Keystore/KeyMint hata kodlarını ve hatanın yeniden denenip denemeyeceğini içeren Android'e özel istisnalar içeren bir istisna sınıfı hiyerarşisi ekledik. Yeni istisnaları atamak için anahtar oluşturma ve kullanma yöntemlerini (imza, şifreleme) de değiştirebilirsiniz. İyileştirilmiş hata raporlama, anahtar oluşturmayla sınırlı değildir ve artık anahtar oluşturmayı yeniden denemek için ihtiyacınız olan bilgileri size verecektir.

Tablet ve büyük ekran desteği

Android 13, Android 12 ve 12L özellik güncellemesinde kullanıma sunulan tablet optimizasyonlarını temel alır. Bu optimizasyonlar arasında sistem kullanıcı arayüzü için optimizasyonlar, daha iyi çoklu görev desteği ve iyileştirilmiş uyumluluk modları yer alır. 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 edilecekler 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ölgelendiriciden uyarlanmış bir AGSL animasyonlu gölgelendirici.

Android 13'ten itibaren sistem, Android Grafik Gölgelendirme Dili (AGSL) kullanılarak tanımlanan davranışa sahip programlanabilir RuntimeShader nesneleri için destek içerir. AGSL, söz dizesinin büyük bir kısmını GLSL ile paylaşır ancak Android'in tuvalindeki boyamayı özelleştirmek ve View içeriğini filtrelemek için Android oluşturma motorunda çalışır. Android, dalga efekti, bulanıklaştırma ve fazla kaydırma sırasında uzatma 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.

Koreograflarla ilgili iyileştirmeler

Android 13, Choreographer ve ASurfaceControl için herkese açık API yöntemleri sunar. Bu yöntemler, uygulamalara olası kare zaman çizelgeleri hakkında daha fazla bilgi sağlar ve kare yaşam döngüsü hakkında SurfaceFlinger daha fazla bağlam bilgisi ekler. Önceki gibi, uygulamalar Choreographer'ye geri çağırma gönderebilir ve kare zaman çizelgesi bilgilerini alabilir. Android 13'te (API düzeyi 33) Choreographer, birden fazla olası sunum süresini ve bunlara karşılık gelen kare son tarihlerini döndürür. Uygulamalar, sunma zamanını seçebilir ve ardından bu seçimi SurfaceFlinger'a bildirebilir. SurfaceFlinger, istenen sunum zamanından önce işlem uygulamaya veya arabellekleri kilitlemeye çalışmaz.

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

Kamera

HDR video yakalama

Android 13'ten itibaren Camera2 API'leri, Yüksek Dinamik Aralık (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 yelpazesi sunar ve parlaklık bileşeninin dinamik aralığını artırır (mevcut 100 cd/m2 değerinden 1.000'lerce cd/m2 değerine). Bu sayede daha zengin renkler, daha parlak vurgular ve daha koyu gölgeler içeren, gerçek hayata daha yakın bir video kalitesi elde edilir.

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

Medya

Üç boyutlu ses

Üç boyutlu ses, medya içeriğinin kullanıcılarınız için daha gerçekçi ses çıkarmasını sağlayan sürükleyici bir ses deneyimidir. Bu özellikle entegrasyon hakkında ayrıntılı bilgi için Üç boyutlu ses dokümanlarımıza bakın.

Beklenen ses yönlendirmesi

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'lerini kullanıma sunar. getAudioDevicesForAttributes() API, belirtilen sesi çalmak için kullanılabilecek cihazların listesini almanıza olanak tanır. getDirectProfilesForAttributes() API ise ses akışınızın doğrudan oynatılıp oynatılamayacağını anlamanıza yardımcı olur. Ses parçanız için kullanılacak en iyi AudioFormat'yi 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, sunuda konuşan bir anlatıcıdan oluşan ek bir seslendirme parçasıdır. Bu anlatıcı, sesteki doğal duraklamalar sırasında ekranda neler olduğunu açıklar. Uygulamalar, aşağıdaki kod snippet'inde gösterildiği gibi isAudioDescriptionRequested() ile sorgulayarak kullanıcının sesli açıklama parçaları 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 kaynağı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şlar. Bu çalışmalarda hem kitaplık güncellemeleri hem de uygulama ve platform geliştiricileri için Java 11 dil desteği sunulur. Android 13'te kullanıma sunulan temel kitaplık değişiklikleri, ART ana hat modülüne yapılan 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 olarak lambdalar için var anahtar kelimesi desteği.
  • String sınıfındaki yeni yöntemler:

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

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

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

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

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

  • FileReader, FileWriter, PrintStream ve PrintWriter için Charset işlevselliği

  • 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.

  • Dahili olarak VarHandle kullanarak java.util.concurrent'ü OpenJDK 11 API'ye günceller.

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