Android 13, geliştiricilere yeni ve harika özellikler ile API'ler sunuyor. 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ş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ı öğ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

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 senaryoların hiçbirinde ana ekranda temalı uygulama simgesi GÖRÜNTÜLENMEZ ve bunun yerine 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

Ç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. 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çindekisetApplicationLocales()
vegetApplicationLocales()
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ç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ü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 mevcuttur. 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.
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ı 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. 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 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:
- Arama teriminin fonetik telaffuzu olarak Hiragana girişi (yer veya uygulama adı gibi)
- Hiragana karakterlerini Kanji'ye dönüştürmek için klavyeyi kullanma
- Kanji karakterlerini kullanarak yeniden arama yapma
- Son olarak arama sonuçlarını alırlar.
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 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. 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.

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. TextViews ile android:lineBreakWordStyle="phrase"
kullanarak bu sarmalama özelliğinden yararlanabilirsiniz.

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.
Göze çarpan birkaç değişikliği aşağıda bulabilirsiniz:
- İngilizce (Kanada)
en‑CA
ve İngilizce (Filipinler Cumhuriyeti)en‑PH
ikisi de İngilizce (ABD)en
İngilizce (İngiltere) yerine çeviri kaynağı olmadığında İngilizce çeviri kaynaklarını kullanıren‑GB
. many
çoğul kategorisi İspanyolcaes
, İtalyancait
, Portekizcept
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.
Renk vektörü yazı tipleri

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çimine 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:
- Chrome Developers blog duyurusu
- Chrome'da COLRv1 Renkli Vektör Yazı Tiplerini Gönderme (Video)
- COLR tablo spesifikasyonu
Hızlı Ayarlar yerleşim API'sı
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. 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 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.
Pano önizlemesi
Android 13'ten itibaren sistem, içeriğin panosuna eklenmesi durumunda 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 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.

Tahmine dayalı geri 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ği desteklemek 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. 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ı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 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 öncewindowSplashScreenAnimationDuration
öğesini doğrudan ayarlamak gerekiyordu.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ı belgeleri görmek için Başlangıç Ekranları konusuna 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ı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'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, dinamik olarak kayıtlı bir alıcıya korumasız yayın gönderebiliyordu. Bunun için alıcının imza izni ile korunması gerekmiyordu.
Bu dışa aktarma yapılandırması, aşağıdakilerden en az birini gerçekleştiren uygulamalarda kullanılabilir:
- AndroidX Core kitaplığının 1.9.0 veya sonraki bir sürümündeki
ContextCompat
sınıfını kullanın. - Android 13 veya sonraki sürümleri hedefleyin.
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ü 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 bildirmeleri 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
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ş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 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'e APK İmza Şeması 3.1 sürümü için destek eklendi. Bu destek, mevcut APK İmza Şeması v3'ün üzerine iyileştirilmiştir. 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 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-versionAPI_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ı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

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 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
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 zamanını ve bunlara karşılık gelen kare teslim 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.

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ğ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 nasıl entegre edileceğine dair ayrıntılar için Üç boyutlu ses dokümanlarımıza bakın.
Beklemede 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:
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 }
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:
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) }
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 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 ve parametre olarak lambdalar için
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ındaifPresentOrElse()
,isEmpty()
,orElseThrow()
vestream()
desteği.Yuvaların yeniden kullanımı da dahil olmak üzere
SocketOptions
için genişletilmiş destek.Okunan karakterleri
Writer
'e aktaranNullReader
,NullWriter
,InputStream
,OutputStream
vetransferTo()
Reader
işlevi.Charsets
kullanılarak URL kodlama ve kodu çözme işlevi eklendi.FileReader
,FileWriter
,PrintStream
vePrintWriter
içinCharset
işlevselliğiByteArrayInput
veyaOutputStream
veInput
veyaOutputStream
için yenitransferTo()
,readNBytes()
,readAllBytes()
vewriteBytes()
işlevleri.java.lang.invoke.VarHandle
için çalışma zamanı ve derleyici desteği.Dahili olarak
VarHandle
kullanarakjava.util.concurrent
'ü OpenJDK 11 API'ye günceller.
Java ve OpenJDK, Oracle ve/veya iştiraklerinin ticari markaları ya da tescilli ticari markalarıdır.