Android 15, geliştiriciler için muhteşem yeni özellikler ve API'ler sunar. Aşağıdaki bölümlerde, ilgili API'leri kullanmaya başlamanıza yardımcı olmak için bu özellikler özetlenmiştir.
Yeni, değiştirilmiş ve kaldırılmış API'lerin ayrıntılı bir listesi için API fark raporunu okuyun. 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 vurgulanmaktadır. Ayrıca, platform değişikliklerinin uygulamalarınızı etkileyebileceği alanlar hakkında bilgi edinmek için Android 15'i hedefleyen uygulamaları etkileyen Android 15 davranış değişikliklerini vetargetSdkVersion
'dan bağımsız olarak tüm uygulamaları etkileyen davranış değişikliklerini inceleyin.
Kamera ve medya
Android 15, kamera ve medya deneyimini iyileştiren, içerik üreticileri Android'de vizyonlarını hayata geçirmelerini destekleyen araçlara ve donanıma erişmenizi sağlayan çeşitli özellikler içerir.
Android medyası ve kameraya yönelik en yeni özellikler ve geliştirici çözümleri hakkında daha fazla bilgi edinmek için Google I/O'nun Modern Android medya ve kamera deneyimleri oluşturma konulu konuşmasını inceleyin.
Düşük Işık Artışı
Android 15'te, hem Kamera 2 hem de gece modu kamera uzantısı için kullanılabilen yeni bir otomatik pozlama modu olan Düşük Işık Artırma kullanıma sunuldu. Düşük Işık Artırma, düşük ışık koşullarında Önizleme akışının pozlamasını ayarlar. Bu, gece modu kamera uzantısının hareketsiz resimler oluşturmasından farklıdır, çünkü gece modu bir seri çekim fotoğrafı birleştirerek tek, geliştirilmiş bir resim oluşturur. Gece modu, hareketsiz resim oluşturmak için çok iyi çalışsa da kesintisiz bir kare akışı oluşturamaz ancak Düşük Işık Artırması bunu yapabilir. Bu sayede Düşük Işık Artışı, aşağıdakiler gibi yeni kamera özellikleri sağlar:
- Kullanıcıların düşük ışıkta çekilmiş resimlerini daha iyi çerçevelemeleri için gelişmiş bir resim önizlemesi sağlama
- QR kodları zayıf ışıkta taranıyor
Düşük Işık Artırma'yı etkinleştirirseniz düşük ışık seviyesi olduğunda otomatik olarak açılır ve daha fazla ışık olduğunda kapanır.
Uygulamalar, düşük ışık koşullarında Önizleme akışı dışında video kaydederek aydınlatılmış bir video kaydedebilir.
Daha fazla bilgi için Düşük Işık Artışı bölümüne bakın.
Uygulama içi kamera kontrolleri
Android 15, desteklenen cihazlardaki kamera donanımı ve algoritmaları üzerinde daha fazla kontrol sahibi olabilmeniz için yeni bir uzantı ekliyor:
- Gelişmiş flaş gücü ayarlamaları, resim çekerken hem
SINGLE
hem deTORCH
modlarında flaş yoğunluğunu hassas bir şekilde kontrol etmenizi sağlar.
HDR kafa odası kontrolü
Android 15, cihazın özelliklerine ve panelin bit derinliğine uygun olan HDR boşluk payını seçer. Bu davranış, tek bir HDR küçük resmi görüntüleyen bir mesajlaşma uygulaması gibi çok fazla SDR içeriğine sahip sayfalarda, SDR içeriğinin algılanan parlaklığını olumsuz yönde etkileyebilir. Android 15, SDR ile HDR içerik arasında denge kurmak için HDR boşluğunu setDesiredHdrHeadroom
ile kontrol etmenize olanak tanır.
![](https://developer.android.com/static/about/versions/15/images/hdr-headroom.png?authuser=5&hl=tr)
Ses düzeyi kontrolü
Android 15, ses yüksekliğindeki tutarsızlıklardan kaçınmanıza ve kullanıcıların içerikler arasında geçiş yaparken ses seviyesini sürekli ayarlamak zorunda kalmamalarına yardımcı olmak için CTA-2075 ses yüksekliği standardı için destek sunar. Sistem, ses yüksekliği ve dinamik aralık sıkıştırma seviyelerini akıllı şekilde ayarlamak için çıkış cihazlarının (kulaklık ve hoparlör) bilinen özelliklerinden ve AAC ses içeriğinde bulunan ses yüksekliği meta verilerinden faydalanır.
Bu özelliği etkinleştirmek için ses yüksekliği meta verilerinin AAC içeriğinizde bulunduğundan emin olmanız ve uygulamanızda platform özelliğini etkinleştirmeniz gerekir. Bunun için, ilişkilendirilen AudioTrack
öğesindeki ses oturum kimliğiyle create fabrika yöntemini çağırarak bir LoudnessCodecController
nesnesini başlatın. Bu işlem otomatik olarak ses güncellemelerini uygulamaya başlar. Ses düzeyi parametrelerini MediaCodec
üzerinde uygulanmadan önce değiştirmek veya filtrelemek için bir OnLoudnessCodecUpdateListener
iletebilirsiniz.
// Media contains metadata of type MPEG_4 OR MPEG_D
val mediaCodec = …
val audioTrack = AudioTrack.Builder()
.setSessionId(sessionId)
.build()
...
// Create new loudness controller that applies the parameters to the MediaCodec
try {
val lcController = LoudnessCodecController.create(mSessionId)
// Starts applying audio updates for each added MediaCodec
}
Ayrıca AndroidX media3 ExoPlayer, sorunsuz bir uygulama entegrasyonu için LoudnessCodecController
API'lerini kullanacak şekilde güncellenecektir.
Sanal MIDI 2.0 cihazları
Android 13, Evrensel MIDI Paketlerini (UMP) kullanarak iletişim kuran USB kullanan MIDI 2.0 cihazlarına bağlanma desteğini ekledi. Android 15, UMP desteğini sanal MIDI uygulamalarını da içerecek şekilde genişleterek beste uygulamalarının sentezleyici uygulamalarını bir USB MIDI 2.0 cihazında olduğu gibi sanal bir MIDI 2.0 cihazı olarak kontrol etmesini sağlar.
Daha etkili AV1 yazılım kod çözme
VideoLAN'ın popüler AV1 yazılım kod çözücüsü dav1d, artık donanımda AV1 kod çözmeyi desteklemeyen Android cihazlarda kullanılabiliyor. dav1d, eski AV1 yazılım kod çözücüye göre 3 kata kadar daha iyi performans gösteriyor. Bu sayede, düşük ve orta katmanlı cihazlar da dahil olmak üzere daha fazla kullanıcı HD AV1 oynatabiliyor.
Şimdilik uygulamanızın, "c2.android.av1-dav1d.decoder"
adıyla çağırarak dav1d kullanımını etkinleştirmesi gerekmektedir. dav1d, sonraki bir güncellemede varsayılan AV1 yazılım kod
çözücüsü olacaktır. Bu destek standartlaştırılmıştır ve Google Play sistem güncellemelerini alan Android 11 cihazlara geri aktarılır.
Geliştirici verimliliği ve araçları
Üretkenliğinizi geliştirmeye yönelik çalışmalarımızın çoğu Android Studio, Jetpack Compose ve Android Jetpack kitaplıkları gibi araçlara odaklanıyor. Bununla birlikte, vizyonunuzu daha kolay şekilde gerçekleştirmenize yardımcı olacak yöntemleri her zaman platformda arıyoruz.
OpenJDK 17 güncellemeleri
Android 15, Android'in çekirdek kitaplıklarını en son OpenJDK LTS sürümlerindeki özelliklerle uyumlu olacak şekilde yenileme çalışmalarına devam ediyor.
Aşağıda belirtilen temel özellikler ve iyileştirmeler sunulmuştur:
- NIO tamponları ile ilgili yaşam kalitesi iyileştirmeleri
- Akışlar
- Ek
math
vestrictmath
yöntemleri - Sıralı
collection
,map
veset
dahil olmak üzereutil
paket güncellemeleri Deflater
bölgesindeByteBuffer
desteğiX500PrivateCredential
gibi güvenlik güncellemeleri ve güvenlik anahtarı güncellemeleri
Bu API'ler, Google Play sistem güncellemeleri aracılığıyla Android 12 (API düzeyi 31) ve sonraki sürümleri çalıştıran bir milyardan fazla cihazda güncellenir. Böylece en yeni programlama özelliklerini hedefleyebilirsiniz.
PDF iyileştirmeleri
Android 15, PdfRenderer
API'lerinde önemli iyileştirmeler içerir. Uygulamalar; şifre korumalı dosya oluşturma, ek açıklama oluşturma, form düzenleme, arama ve metinle seçim gibi gelişmiş özellikler içerebilir. Doğrusal PDF optimizasyonları, yerel PDF'lerin daha hızlı görüntülenmesini sağlamak ve kaynak kullanımını azaltmak için desteklenir.
![](https://developer.android.com/static/about/versions/15/images/pdf-rendering.png?authuser=5&hl=tr)
PdfRenderer
, platform sürümünden bağımsız olarak Google Play sistem güncellemeleri kullanılarak güncellenebilen bir modüle taşındı. Android 11'e (API düzeyi 30) geri dönmek için bu değişiklikleri, API yüzeyinin PdfRendererPreV
adı verilen uyumlu bir Android 15 öncesi sürümünü oluşturarak destekliyoruz.
PdfRenderer
API yüzeyinde yaptığımız iyileştirmelerle ilgili geri bildirimleriniz bizim için önemlidir. Yakında çıkacak olan Android Jetpack kitaplığıyla bu API'leri uygulamanıza da dahil etmeyi daha da kolaylaştırmayı planlıyoruz.
Otomatik dil geçişinde yapılan ayrıntılandırmalar
Android 14'te, diller arasında otomatik geçiş yapılarak seste cihaz üzerinde çok dilli tanıma özelliği eklendi ancak bu durum, özellikle diller arasında iki ifade arasında daha az duraklamayla geçiş yapıldığında kelimelerin kaybolmasına neden olabilir. Android 15'te, uygulamaların bu geçişi kendi kullanım alanına göre ayarlamasına yardımcı olacak ek kontroller vardır.
EXTRA_LANGUAGE_SWITCH_INITIAL_ACTIVE_DURATION_TIME_MILLIS
, otomatik geçişi ses oturumunun başlangıcıyla sınırlarken EXTRA_LANGUAGE_SWITCH_MATCH_SWITCHES
belirli sayıda anahtardan sonra dil geçişini devre dışı bırakır. Bu seçenekler özellikle oturum sırasında otomatik olarak algılanması gereken tek bir dil konuşulacağını düşünüyorsanız kullanışlıdır.
Geliştirilmiş OpenType Değişken Yazı Tipi API'si
Android 15, OpenType değişken yazı tipinin kullanılabilirliğini iyileştirir. Artık buildVariableFamily
API ile ağırlık eksenleri belirtmeden değişken yazı tipinden FontFamily
örneği oluşturabilirsiniz. Metin oluşturucu, görüntülenen metinle eşleşmek için wght
ekseninin değerini geçersiz kılar.
Bu işlem, yeni API'nin kullanılmasıyla Typeface
oluşturmak için gereken kodu önemli ölçüde basitleştirir:
Kotlin
val newTypeface = Typeface.CustomFallbackBuilder( FontFamily.Builder( Font.Builder(assets, "RobotoFlex.ttf").build()) .buildVariableFamily()) .build()
Java
Typeface newTypeface = Typeface.CustomFallbackBuilder( new FontFamily.Builder( new Font.Builder(assets, "RobotoFlex.ttf").build()) .buildVariableFamily()) .build();
Önceden, aynı Typeface
öğesini oluşturmak için çok daha fazla koda ihtiyacınız vardı:
Kotlin
val oldTypeface = Typeface.CustomFallbackBuilder( FontFamily.Builder( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 400") .setWeight(400) .build()) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 100") .setWeight(100) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 200") .setWeight(200) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 300") .setWeight(300) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 500") .setWeight(500) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 600") .setWeight(600) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 700") .setWeight(700) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 800") .setWeight(800) .build() ) .addFont( Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 900") .setWeight(900) .build() ).build() ).build()
Java
Typeface oldTypeface = new Typeface.CustomFallbackBuilder( new FontFamily.Builder( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 400") .setWeight(400) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 100") .setWeight(100) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 200") .setWeight(200) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 300") .setWeight(300) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 500") .setWeight(500) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 600") .setWeight(600) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 700") .setWeight(700) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 800") .setWeight(800) .build() ) .addFont( new Font.Builder(assets, "RobotoFlex.ttf") .setFontVariationSettings("'wght' 900") .setWeight(900) .build() ) .build() ).build();
Hem eski hem de yeni API'lerle oluşturulan bir Typeface
örneğini aşağıda bulabilirsiniz:
Bu örnekte, eski API ile oluşturulan Typeface
350, 450, 550 ve 650 Font
örnekleri için doğru yazı tipi ağırlıkları oluşturamadığından oluşturucu en yakın ağırlığa geri döner. Dolayısıyla bu örnekte, 350 yerine 300, 450 yerine 400 oluşturulur ve bu şekilde devam eder. Buna karşılık, yeni API'lerle oluşturulan Typeface
belirli bir ağırlık için dinamik olarak bir Font
örneği oluşturur. Böylece 350, 450, 550 ve 650 için de doğru ağırlıklar oluşturulur.
Ayrıntılı satır sonu kontrolleri
Android 15'ten itibaren TextView
ve temel satır kesici, okunabilirliği artırmak için metnin belirli bir bölümünü aynı satırda koruyabilir. Dize kaynaklarında <nobreak>
etiketini veya createNoBreakSpan
etiketini kullanarak bu satır sonu özelleştirmesinden yararlanabilirsiniz. Benzer şekilde, <nohyphen>
etiketini veya createNoHyphenationSpan
etiketini kullanarak kelimeleri tirelemeden koruyabilirsiniz.
Örneğin, aşağıdaki dize kaynağı satır sonu içermez ve istenmeyen bir yerde kırılarak "Pixel 8 Pro" metniyle oluşturulur:
<resources>
<string name="pixel8pro">The power and brains behind Pixel 8 Pro.</string>
</resources>
Buna karşılık bu dize kaynağı, "Pixel 8 Pro" ifadesini saran ve satır sonlarını engelleyen <nobreak>
etiketini içerir:
<resources>
<string name="pixel8pro">The power and brains behind <nobreak>Pixel 8 Pro.</nobreak></string>
</resources>
Bu dizelerin oluşturulma biçimlerindeki fark aşağıdaki resimlerde gösterilmektedir:
![](https://developer.android.com/static/about/versions/15/images/line-breaks-none.png?authuser=5&hl=tr)
<nobreak>
etiketi kullanılarak sarmalanmadığı bir metin satırının düzeni.![](https://developer.android.com/static/about/versions/15/images/line-breaks-included.png?authuser=5&hl=tr)
<nobreak>
etiketi kullanılarak sarmalandığı aynı metin satırının düzeni.Uygulama arşivleme
Android ve Google Play geçen yıl uygulama arşivleme desteğini duyurdu. Google Play'de Android App Bundle kullanılarak yayınlanmış, sık kullanılmayan uygulamaları cihazdan kısmen kaldırarak kullanıcıların yer açmalarına olanak tanıyoruz. Android 15 artık uygulama arşivleme ve arşivden çıkarma için işletim sistemi düzeyinde destek sunarak tüm uygulama mağazalarının uygulamayı kolayca kullanabilmesini sağlar.
REQUEST_DELETE_PACKAGES
iznine sahip uygulamalar, yüklü bir uygulama paketinin arşivlenmesini istemek için PackageInstaller
requestArchive
yöntemini çağırabilir. Bu işlem, APK'yı ve önbelleğe alınan tüm dosyaları kaldırır ancak kullanıcı verilerini muhafaza eder. Arşivlenen uygulamalar, LauncherApps
API'leri aracılığıyla görüntülenebilir uygulamalar olarak döndürülür. Kullanıcılar ise bu uygulamaların arşivlendiğini belirten bir kullanıcı arayüzü işlemi görür. Kullanıcı, arşivlenmiş bir uygulamaya dokunursa sorumlu yükleyici, uygulamanın arşivden kaldırılması için bir istek alır ve geri yükleme işlemi, ACTION_PACKAGE_ADDED
yayını tarafından izlenebilir.
Grafik
Android 15, ANGLE ve Canvas grafik sistemine yapılan eklemeler de dahil en son grafik iyileştirmelerini sunar.
Android'in GPU erişimini modernleştirme
Android donanımı, çekirdek işletim sisteminin tek bir CPU'da çalıştığı ilk günlerden beri epey gelişti. Sabit işlev ardışık düzenlerine dayalı API'ler kullanılarak GPU'lara erişiliyordu. Vulkan® grafik API'si, Android 7.0'dan (API seviyesi 24) itibaren NDK'da kullanımdadır. Modern GPU donanımını daha iyi yansıtan, birden fazla CPU çekirdeğini destekleyecek şekilde daha iyi ölçeklenen ve CPU sürücüsü ek yükünü azaltan daha düşük seviyeli bir soyutlamayla uygulama performansını iyileştirir. Vulkan, tüm modern oyun motorları tarafından desteklenir.
Vulkan, Android'in GPU için tercih edilen arayüzüdür. Bu nedenle Android 15, Vulkan'ın üzerinde OpenGL® ES'yi çalıştırmak için isteğe bağlı bir katman olarak ANGLE'ı içerir. ANGLE'a geçiş yapmak, daha iyi uyumluluk ve bazı durumlarda daha iyi performans için Android OpenGL uygulamasını standart hale getirir. Android 15'te Ayarlar -> Sistem -> Geliştirici Seçenekleri -> Deneysel: ANGLE'ı Etkinleştir seçeneğinden geliştirici seçeneğini etkinleştirerek OpenGL ES uygulamanızın kararlılığını ve performansını ANGLE ile test edebilirsiniz.
Vulkan'da Android ANGLE yol haritası
![Android GPU API'lerinde yapılacak değişikliklerin yol haritası.](https://developer.android.com/static/about/versions/15/images/angle-vulkan-roadmap.png?authuser=5&hl=tr)
GPU yığınımızı kolaylaştırmanın bir parçası olarak bundan sonra ANGLE'ı daha fazla yeni cihazda GL sistem sürücüsü olarak sunacağız. OpenGL/ES'nin yalnızca ANGLE üzerinden kullanılabilmesi beklenmektedir. Bununla birlikte, tüm cihazlarda OpenGL ES desteğine devam etmeyi planlıyoruz.
Sıradaki önerilen adımlar
OpenGL ES için ANGLE sürücüsünü seçmek ve uygulamanızı test etmek üzere geliştirici seçeneklerini kullanın. Yeni projelerde, C/C++ için Vulkan'ı kullanmanızı önemle tavsiye ederiz.
Canvas ile ilgili iyileştirmeler
Android 15, Android'in Canvas grafik sistemini yeni özelliklerle modernleştirmemize devam ediyor:
Matrix44
, tuvali 3D olarak işlemek istediğinizde kullanılması gereken koordinatların dönüştürülmesi için bir 4x4 matrisi sağlar.clipShader
, geçerli klibi, belirtilen gölgelendiriciyle kesiştirir.clipOutShader
ise klibi, geçerli klibin ve gölgelendiricinin farkına ayarlar. Her biri, gölgelendiriciyi bir alfa maskesi olarak değerlendirir. Bu, karmaşık şekillerin etkili bir şekilde çizilmesini destekler.
Performans ve pil
Android, uygulamalarınızın performansını ve kalitesini artırmanıza yardımcı olma odağını sürdürür. Android 15, uygulamanızdaki görevlerin daha verimli şekilde yürütülmesine, uygulama performansını optimize etmesine ve uygulamalarınız hakkında bilgi toplanmasına yardımcı olan yeni API'ler sunar.
Pil tasarrufu sağlayan en iyi uygulamalar, ağ ve güç kullanımında hata ayıklama, Android 15 ve Android'in son sürümlerinde arka plan çalışmasının pil verimliliğini nasıl iyileştirdiğimizle ilgili ayrıntılar için Google I/O'da Android'de arka plan çalışmasının pil verimliliğini artırma konulu konuşmayı inceleyin.
ApplicationStartInfo API'sı
Android'in önceki sürümlerinde uygulama başlatma işlemi biraz gizemli olmuştur. Uygulamanızın içinde bu durumun soğuk mu, sıcak mı yoksa sıcak durumda mı başladığını belirlemek zordu. Ayrıca, uygulamanızın çeşitli lansman aşamalarında ne kadar süre harcadığını bilmek de zordu. Süreci bölme, onCreate
çağırma, ilk kareyi çizme ve daha pek çok işlem. Application
sınıfınız örneklendiğinde, uygulamanın bir yayından mı, içerik sağlayıcıdan mı, bir işten mi, bir yedeklemeden mi, bir başlatmadan mı, bir alarmdan mı yoksa bir Activity
'dan mı başlatıldığını bilmeniz mümkün değildi.
Android 15'teki ApplicationStartInfo
API, bunların tümünü ve daha fazlasını sağlar. Zamanlama verilerini tek bir yerden toplamaya yardımcı olması için akışa kendi zaman damgalarınızı bile ekleyebilirsiniz. Metrik toplamaya ek olarak, uygulama başlangıcını doğrudan optimize etmeye yardımcı olması için ApplicationStartInfo
kullanabilirsiniz. Örneğin, uygulamanız yayın nedeniyle başlatılırken Application
sınıfınızda kullanıcı arayüzü ile ilgili kitaplıkların maliyetli şekilde örneklenmesini önleyebilirsiniz.
Uygulama boyutuyla ilgili ayrıntılı bilgiler
Android 8.0'dan (API düzeyi 26) bu yana Android, bir uygulamanın yüklü boyutunu tek bir bayt sayısı olarak özetleyen StorageStats.getAppBytes
API'sini içerir. Bu API; APK boyutunun, APK'dan çıkarılan dosyaların boyutu ve cihazda oluşturulan dosyaların (ör. önceden derlenen kod) toplamıdır. Bu sayı, uygulamanızın depolama alanını nasıl kullandığı açısından yeterince anlamlı değildir.
Android 15'te APK dosyası bölümleri, AOT ve hızlandırmayla ilgili kodlar, dex meta verileri, kitaplıklar ve açıklamalı profiller de dahil olmak üzere uygulamanızın tüm bu alanı nasıl kullandığına dair bilgi edinmenizi sağlayan StorageStats.getAppBytesByDataType([type])
API'si bulunur.
Uygulama tarafından yönetilen profil oluşturma
Android 15, uygulamanızın içinden profil oluşturma bilgilerini toplamanızı sağlayan yepyeni ProfilingManager
sınıfını içerir. Bunu, profil oluşturma isteklerinin oluşturulmasını kolaylaştıracak bir Android Jetpack API ile sarmayı planlıyoruz. Ancak temel API; yığın dökümlerinin, yığın profillerinin, yığın örneklemenin ve daha fazlasının toplanmasına olanak tanıyacak. Uygulamanızın dosyalar dizinine yayınlanan çıkış dosyasını tanımlamak için sağlanan bir etiketle uygulamanıza bir geri çağırma sağlar. API, performans üzerindeki etkiyi en aza indirmek için hız sınırlaması uygular.
SQLite veritabanı iyileştirmeleri
Android 15, temel SQLite motorunun, uygulamalarda bildirilebilecek belirli performans sorunlarını hedefleyen gelişmiş özelliklerini sunan yeni SQLite API'lerini kullanıma sunuyor.
Geliştiriciler, özellikle büyük veritabanlarıyla çalışırken veya gecikmeye duyarlı sorgular çalıştırırken SQLite veritabanlarından en iyi şekilde yararlanmak için SQLite performansı ile ilgili en iyi uygulamalara başvurmalıdır.
- Salt okunur ertelenmiş işlemler: Salt okunur (yazma ifadeleri eklemeyin) işlemleri yayınlarken salt okunur
DEFERRED
işlemleri yayınlamak içinbeginTransactionReadOnly()
vebeginTransactionWithListenerReadOnly(SQLiteTransactionListener)
özelliklerini kullanın. Bu tür işlemler birbirleriyle eşzamanlı olarak çalışabilir ve veritabanı WAL modundaysaIMMEDIATE
veyaEXCLUSIVE
işlemleriyle eş zamanlı olarak çalıştırılabilir. - Satır sayıları ve kimlikleri: Değiştirilen satır sayısını veya ek sorgu yayınlamadan son eklenen satır kimliğini almak için yeni API'ler eklenmiştir.
getLastChangedRowCount()
geçerli işlemdeki en son SQL ifadesi tarafından eklenen, güncellenen veya silinen satır sayısını,getTotalChangedRowCount()
ise geçerli bağlantıdaki sayıyı döndürür.getLastInsertRowId()
, mevcut bağlantıda eklenecek son satırınrowid
değerini döndürür. - Ham ifadeler: Kolay sarmalayıcıları ve karşılaşabilecekleri ek işlem ek yükünü atlayarak bir ham SQlite ifadesi yayınlayın.
Android Dinamik Performans Çerçevesi güncellemeleri
Android 15, oyunların ve performans odaklı uygulamaların Android cihazların güç ve termal sistemleriyle daha doğrudan etkileşim kurmasını sağlayan bir API kümesi olan Android Dinamik Performans Çerçevesi'ne (ADPF) yatırımımıza devam ediyor. Android 15, desteklenen cihazlarda yeni ADPF özellikleri ekleyecektir:
- İpucu oturumlarının ilişkili iş parçacıklarının performans yerine güç tasarrufunu tercih etmesi gerektiğini belirten bir güç verimliliği modu. Bu mod, uzun süre çalışan arka plan iş yükleri için idealdir.
- GPU ve CPU çalışma süreleri, ipucu oturumlarında raporlanabilir. Böylece, sistemin CPU ve GPU frekanslarını, iş yükü taleplerini en iyi şekilde karşılayacak şekilde birlikte ayarlayabilir.
- Olası termal kısıtlama durumunu iyileştirme olasılığı tahminine göre yorumlamak için termal artış payı eşikleri.
Uygulama ve oyunlarınızda ADPF'yi nasıl kullanacağınız hakkında daha fazla bilgi edinmek için belgeleri inceleyin.
Gizlilik
Android 15, uygulama geliştiricilerin kullanıcı gizliliğini korumasına yardımcı olan çeşitli özellikler içerir.
Ekran kaydı algılama
Android 15'te, uygulamaların kaydedildiğini algılamak için uygulama desteği sağlanır. Uygulama, bir ekran kaydı içinde görünür ve görünmez olmak arasında geçiş yaptığında bir geri çağırma çağrılır. Kayıt sürecinin UID'sine ait etkinlikler kaydediliyorsa uygulama görünür olarak kabul edilir. Bu şekilde, uygulamanız hassas bir işlem yapıyorsa kullanıcıyı bu işlemin kaydedildiği konusunda bilgilendirebilirsiniz.
val mCallback = Consumer<Int> { state ->
if (state == SCREEN_RECORDING_STATE_VISIBLE) {
// We're being recorded
} else {
// We're not being recorded
}
}
override fun onStart() {
super.onStart()
val initialState =
windowManager.addScreenRecordingCallback(mainExecutor, mCallback)
mCallback.accept(initialState)
}
override fun onStop() {
super.onStop()
windowManager.removeScreenRecordingCallback(mCallback)
}
Genişletilmiş IntentFilter özellikleri
Android 15; URL sorgu parametreleri, URL parçaları, engelleme veya hariç tutma kuralları dahil olmak üzere her birinin karşılanması gereken Intent
eşleştirme kuralı grubunu oluşturan bir dizi UriRelativeFilter
nesneden oluşan UriRelativeFilterGroup
aracılığıyla daha hassas Intent
çözünürlüğünü destekler.
Bu kurallar, AndroidManifest
XML dosyasında yeni <uri-relative-filter-group>
etiketiyle tanımlanabilir. Bu etiket isteğe bağlı olarak android:allow
etiketi içerebilir. Bu etiketler, mevcut veri etiketi özelliklerinin yanı sıra yeni android:query
ve android:fragment
özelliklerini kullanan <data>
etiketleri içerebilir.
AndroidManifest
söz diziminin bir örneğini burada bulabilirsiniz:
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" />
<data android:scheme="https" />
<data android:domain="astore.com" />
<uri-relative-filter-group>
<data android:pathPrefix="/auth" />
<data android:query="region=na" />
</uri-relative-filter-group>
<uri-relative-filter-group android:allow="false">
<data android:pathPrefix="/auth" />
<data android:query="mobileoptout=true" />
</uri-relative-filter-group>
<uri-relative-filter-group android:allow="false">
<data android:pathPrefix="/auth" />
<data android:fragmentPrefix="faq" />
</uri-relative-filter-group>
</intent-filter>
Özel alan
Özel alan, kullanıcıların cihazlarında ayrı bir alan oluşturmasına olanak tanır. aşağıdaki ekstra bir katmanın altında hassas uygulamaları meraklı gözlerden uzak tutun: kimlik doğrulama. Özel alanda ayrı bir kullanıcı profili kullanılır. Kullanıcı özel alan için cihaz kilidini veya ayrı bir kilit faktörü kullanmayı seçin.
Özel alandaki uygulamalar, başlatıcıda ayrı bir kapsayıcıda görünür ve son kullanılanlar görünümünden, bildirimlerden, ayarlardan ve diğer uygulamalardan gizlenir özel alan kilitliyken de kullanabilirsiniz. Kullanıcı tarafından oluşturulan ve indirilen içerikler (ör. medya dosyaları veya dosyalar) ve hesaplar, özel alan ile ana alan. Sistem paylaşım sayfası ve fotoğraf seçici, uygulamaların içeriğe erişmesine izin vermek için kullanılabilir özel alanın kilidi açıkken alanlar arasında geçiş yapabiliyor.
Kullanıcılar mevcut uygulamaları ve verilerini özel alana taşıyamaz. Bunun yerine Kullanıcılar özel alanda bir uygulamayı yüklemek için uygulama mağazasına geçiş yapabilirsiniz. Özel alandaki uygulamalar şu şekilde yüklenir: ana alandaki uygulamalardan ayrı kopyalar (aynı uygulamanın yeni kopyaları).
Kullanıcı özel alanı kilitlediğinde profil durdurulur. Profil durdurulursa, özel alandaki uygulamalar artık etkin değildir ve performans yapamaz. Bildirimlerin gösterilmesi de dahil olmak üzere ön plan veya arka plan etkinlikleri.
Uygulamanızın her zaman güvenli olduğundan emin olmak için uygulamanızı özel alanla beklendiği gibi çalışıyorsa, özellikle uygulamanız aşağıdakilerden birine uygunsa kategoriler:
- İş profilleri için mantığı olan uygulamalar. Bu uygulamalarda herhangi bir ana profilde bulunmayan yüklenmiş kopyaları iş profiline gidin.
- Tıbbi uygulamalar
- Başlatıcı uygulamaları
- Uygulama mağazası uygulamaları
Seçili Fotoğraflar Erişimi için en son kullanıcı seçimini sorgula
Medya izinleri için kısmi erişim verildiğinde uygulamalar artık yalnızca en son seçilen fotoğrafları ve videoları vurgulayabilir. Bu özellik, fotoğraf ve videolara sıklıkla erişim isteğinde bulunan uygulamalar için kullanıcı deneyimini iyileştirebilir. Uygulamanızda bu özelliği kullanmak için ContentResolver
üzerinden MediaStore
sorgusu yapılırken QUERY_ARG_LATEST_SELECTION_ONLY
bağımsız değişkenini etkinleştirin.
Kotlin
val externalContentUri = MediaStore.Files.getContentUri("external") val mediaColumns = arrayOf( FileColumns._ID, FileColumns.DISPLAY_NAME, FileColumns.MIME_TYPE, ) val queryArgs = bundleOf( // Return only items from the last selection (selected photos access) QUERY_ARG_LATEST_SELECTION_ONLY to true, // Sort returned items chronologically based on when they were added to the device's storage QUERY_ARG_SQL_SORT_ORDER to "${FileColumns.DATE_ADDED} DESC", QUERY_ARG_SQL_SELECTION to "${FileColumns.MEDIA_TYPE} = ? OR ${FileColumns.MEDIA_TYPE} = ?", QUERY_ARG_SQL_SELECTION_ARGS to arrayOf( FileColumns.MEDIA_TYPE_IMAGE.toString(), FileColumns.MEDIA_TYPE_VIDEO.toString() ) )
Java
Uri externalContentUri = MediaStore.Files.getContentUri("external"); String[] mediaColumns = { FileColumns._ID, FileColumns.DISPLAY_NAME, FileColumns.MIME_TYPE }; Bundle queryArgs = new Bundle(); queryArgs.putBoolean(MediaStore.QUERY_ARG_LATEST_SELECTION_ONLY, true); queryArgs.putString(MediaStore.QUERY_ARG_SQL_SORT_ORDER, FileColumns.DATE_ADDED + " DESC"); queryArgs.putString(MediaStore.QUERY_ARG_SQL_SELECTION, FileColumns.MEDIA_TYPE + " = ? OR " + FileColumns.MEDIA_TYPE + " = ?"); queryArgs.putStringArray(MediaStore.QUERY_ARG_SQL_SELECTION_ARGS, new String[] { String.valueOf(FileColumns.MEDIA_TYPE_IMAGE), String.valueOf(FileColumns.MEDIA_TYPE_VIDEO) });
Android üzerinde Özel Korumalı Alan
Android 15, Android'deki Özel Korumalı Alan'ın en son sürümünü içeren en yeni Android Reklam Hizmetleri uzantılarını içerir. Bu ekleme, kullanıcı gizliliğini iyileştiren ve mobil uygulamalar için etkili, kişiselleştirilmiş reklam deneyimleri sağlayan yeni teknolojiler geliştirme çalışmalarımızın bir parçasıdır. Başlamanıza yardımcı olacak Android geliştirici önizlemesi ve beta programları hakkında daha fazla bilgiyi özel korumalı alan sayfamızda bulabilirsiniz.
Health Connect
Android 15, uygulamalarla toplanan sağlık ve fitness verilerini yönetip paylaşmak için güvenli ve merkezi bir platform olan Android'den Health Connect ile ilgili en yeni uzantıları entegre eder. Bu güncellemeyle birlikte fitness, beslenme, cilt sıcaklığı, antrenman planları ve daha birçok konuda yeni veri türleri için destek eklendi.
Deri sıcaklığı takibi, kullanıcıların giyilebilir veya başka bir takip cihazından daha doğru sıcaklık verilerini kaydedip paylaşmasına olanak tanır.
Eğitim planları, kullanıcının fitness hedeflerine ulaşmasına yardımcı olmak için yapılandırılmış antrenman planlarıdır. Eğitim planları desteği çeşitli tamamlama ve performans hedeflerini içerir:
- Yakılan kalori, mesafe, süre, tekrar ve adımlar çevresinde tamamlanma hedefleri.
- Mümkün olduğunca çok tekrarla (AMRAP), kadans, nabız, güç, algılanan egzersiz hızı ve hız ile ilgili performans hedefleri.
Google I/O'daki Android Health ile uyarlanabilir deneyimler oluşturma konuşmasını inceleyerek Android'deki Health Connect ile ilgili en son güncellemeler hakkında daha fazla bilgi edinin.
Kısmi ekran paylaşımı
Android 15 kısmi ekran paylaşımını destekler. Bu sayede kullanıcılar, cihazın ekranının tamamı yerine yalnızca bir uygulama penceresini paylaşabilir veya kaydedebilir. İlk olarak Android 14 QPR2'de etkinleştirilen bu özellik, uygulamanızın kısmi ekran paylaşımı deneyimini özelleştirmesine olanak tanıyan MediaProjection
geri çağırma içerir. Android 14 (API düzeyi 34) veya sonraki sürümleri hedefleyen uygulamalarda her MediaProjection
yakalama oturumu için kullanıcı izni gerektiğini unutmayın.
Kullanıcı deneyimi ve sistem arayüzü
Android 15, uygulama geliştiricilere ve kullanıcılara cihazlarını ihtiyaçlarına göre yapılandırmaları için daha fazla kontrol ve esneklik sunar.
Uygulamanızın kullanıcı deneyimini iyileştirmek üzere Android 15'teki son iyileştirmeleri nasıl kullanacağınız hakkında daha fazla bilgi edinmek için Google I/O'daki Android uygulamanızın kullanıcı deneyimini iyileştirme konulu makaleye göz atın.
Generated Previews API ile daha zengin widget önizlemeleri
Android 15'ten önce widget seçici önizlemeleri sağlamanın tek yolu statik bir resim veya düzen kaynağı belirtmekti. Bu önizlemeler, genellikle ana ekrana yerleştirildiklerinde gerçek widget'ın görünümünden önemli ölçüde farklıdır. Ayrıca, Jetpack Glance ile statik kaynaklar oluşturulamaz. Bu nedenle, bir Glance geliştiricisinin widget önizlemesi için widget'ının ekran görüntüsünü alması veya bir XML düzeni oluşturması gerekiyordu.
Android 15'te, oluşturulan önizlemeler için destek eklenir. Yani uygulama widget'ı sağlayıcıları, statik bir kaynak yerine seçici önizlemesi olarak kullanmak üzere RemoteViews
oluşturabilir.
![](https://developer.android.com/static/about/versions/15/images/generated-previews.png?authuser=5&hl=tr)
Push API'sı
Uygulamalar, oluşturulan önizlemeleri bir push API'sı aracılığıyla sağlayabilir. Uygulamalar yaşam döngülerinin herhangi bir noktasında önizleme sağlayabilir ve önizleme sağlaması için ana makineden açık bir istek almaz. Önizlemeler AppWidgetService
ürününde kalıcıdır ve ana makineler isteğe bağlı olarak bunları isteyebilir. Aşağıdaki örnek, bir XML widget düzeni kaynağı yükler ve bunu önizleme olarak ayarlar:
AppWidgetManager.getInstance(appContext).setWidgetPreview(
ComponentName(
appContext,
SociaLiteAppWidgetReceiver::class.java
),
AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN,
RemoteViews("com.example", R.layout.widget_preview)
)
Beklenen akış:
- Widget sağlayıcı herhangi bir zamanda
setWidgetPreview
numaralı telefonu çağırır. Sağlanan önizlemeler, diğer sağlayıcı bilgileriyle birlikteAppWidgetService
üzerinde kalıcı olarak saklanır. setWidgetPreview
,AppWidgetHost.onProvidersChanged
geri çağırması yoluyla ana makineleri güncellenmiş önizleme hakkında bilgilendirir. Buna karşılık, widget ana makinesi tüm sağlayıcı bilgilerini yeniden yükler.- Bir widget önizlemesi görüntülerken toplantı sahibi
AppWidgetProviderInfo.generatedPreviewCategories
seçeneğini kontrol eder ve seçilen kategori mevcutsa bu sağlayıcının kaydedilmiş önizlemesini döndürmek içinAppWidgetManager.getWidgetPreview
aracını çağırır.
setWidgetPreview
ne zaman aranacak?
Önizleme sağlamak için geri çağırma olmadığından uygulamalar çalışırken herhangi bir noktada önizleme göndermeyi seçebilir. Önizlemenin güncellenme sıklığı, widget'ın kullanım alanına bağlıdır.
Aşağıdaki listede, önizleme kullanım alanlarının iki ana kategorisi açıklanmaktadır:
- Widget önizlemelerinde kişiselleştirilmiş veya son bilgiler gibi gerçek veriler gösteren sağlayıcılar. Bu sağlayıcılar, kullanıcı oturum açtığında veya uygulamasında ilk yapılandırmayı tamamladıktan sonra önizlemeyi ayarlayabilir. Bunun ardından, önizlemeleri istedikleri sıklıkta güncellemek için periyodik bir görev oluşturabilirler. Bu tür widget'lara örnek olarak fotoğraf, takvim, hava durumu veya haber widget'ı verilebilir.
- Önizlemelerde veya hızlı işlem widget'larında statik bilgiler gösteren ve veri göstermeyen sağlayıcılardır. Bu sağlayıcılar önizlemeleri bir kez, uygulama ilk kez başlatıldığında ayarlayabilirler. Bu tür widget'lara örnek olarak, harekete geçirme widget'ı veya Chrome kısayolları widget'ı verilebilir.
Bazı sağlayıcılar, hub modu seçicide statik önizlemeler, ana ekran seçicide ise gerçek bilgiler gösterebilir. Bu sağlayıcılar, önizlemeleri ayarlamak için bu kullanım alanlarının her ikisiyle ilgili yönergeleri izlemelidir.
Pencere İçinde Pencere
Android 15, Pencere İçinde Pencere (PiP) özelliğinde yapılan yeni değişikliklerle birlikte PiP moduna girerken daha akıcı bir geçiş sağlıyor. Bu, PiP'ye giden ana kullanıcı arayüzünün üzerine kullanıcı arayüzü öğeleri yerleştirilen uygulamalar için faydalı olacaktır.
Geliştiriciler, yer paylaşımlı kullanıcı arayüzü öğelerinin görünürlüğünü değiştiren mantığı tanımlamak için onPictureInPictureModeChanged
geri çağırmasını kullanır. Bu geri çağırma, PiP giriş veya çıkış animasyonu tamamlandığında tetiklenir. Android 15'ten itibaren PictureInPictureUiState
sınıfı yeni bir duruma sahiptir.
Bu yeni kullanıcı arayüzü durumuyla Android 15'i hedefleyen uygulamalar, PiP animasyonu başlar başlamaz isTransitioningToPip()
ile çağrılan Activity#onPictureInPictureUiStateChanged
geri çağırma işlemini gözlemler. PiP modundayken uygulama ile alakalı olmayan birçok kullanıcı arayüzü öğesi vardır. Örneğin; öneriler, yakında sunulacak video, puanlar ve başlıklar gibi bilgileri içeren görünümler veya düzen. Uygulama, PiP moduna geçtiğinde bu kullanıcı arayüzü öğelerini gizlemek için onPictureInPictureUiStateChanged
geri çağırma işlevini kullanın. Uygulama, PiP penceresinden tam ekran moduna geçtiğinde bu öğeleri göstermek için aşağıdaki örneklerde gösterildiği gibi onPictureInPictureModeChanged
geri çağırmasını kullanın:
override fun onPictureInPictureUiStateChanged(pipState: PictureInPictureUiState) {
if (pipState.isTransitioningToPip()) {
// Hide UI elements
}
}
override fun onPictureInPictureModeChanged(isInPictureInPictureMode: Boolean) {
if (isInPictureInPictureMode) {
// Unhide UI elements
}
}
Alakasız kullanıcı arayüzü öğelerinin bu hızlı görünürlük ayarı (PIP penceresi için) sayesinde PiP'nin animasyona daha sorunsuz ve titremesiz bir şekilde girer.
İyileştirilmiş Rahatsız Etmeyin kuralları
AutomaticZenRule
, uygulamaların Dikkat Yönetimi (Rahatsız Etmeyin) kurallarını özelleştirmesine ve bu kuralları ne zaman etkinleştireceğine veya devre dışı bırakacağına karar vermesine olanak tanır. Android 15, kullanıcı deneyimini iyileştirmek amacıyla bu kuralları büyük ölçüde geliştirir. Aşağıdaki geliştirmeler dahildir:
AutomaticZenRule
öğesine türler ekleniyor. Böylece sistemin bazı kurallara özel işlem uygulayabilmesi sağlandı.AutomaticZenRule
öğesine bir simge ekleyerek modların daha tanınabilir hale gelmesini sağlayın.AutomaticZenRule
öğesine kuralın kullanıcı için etkin hale gelmesi gereken koşulları açıklayan birtriggerDescription
dizesi ekleme.ZenDeviceEffects
,AutomaticZenRule
sürümüne eklendi. Böylece kuralların gri tonlamalı görüntüleme, gece modu veya duvar kağıdının soluk renkte görünmesini tetiklemesi sağlandı.
Bildirim kanalları için TitreşimEfekti'ni ayarlama
Android 15, NotificationChannel.setVibrationEffect
aracılığıyla gelen bildirimler için kanala göre zengin titreşimlerin ayarlanmasını destekler. Böylece kullanıcılarınız, cihazlarına bakmadan farklı bildirim türlerini birbirinden ayırt edebilir.
Büyük ekranlar ve form faktörleri
Android 15, uygulamalarınıza Android'in büyük ekranlar, çevrilebilir ve katlanabilirler gibi form faktörlerinden en iyi şekilde yararlanma desteği sunar.
Büyük ekranda gelişmiş çoklu görev
Android 15, kullanıcılara büyük ekranlı cihazlarda çoklu görev yapabilmeleri için daha iyi yollar sunar. Örneğin kullanıcılar, hızlı erişim için en sevdikleri bölünmüş ekran uygulama kombinasyonlarını kaydedebilir ve uygulamalar arasında hızlıca geçiş yapmak için görev çubuğunu sabitleyebilir. Yani, uygulamanızın uyarlanabilir olması her zamankinden daha önemli.
Google I/O'da Uyarlanabilir Android uygulamaları oluşturma ve Material 3 uyarlanabilir kitaplığıyla kullanıcı arayüzü oluşturma konulu oturumları vardır. Ayrıca dokümanlarımızda da Büyük ekranlar için tasarlama konusunda size yardımcı olacak daha fazla bilgi bulabilirsiniz.
Kapak ekranı desteği
Uygulamanız, Android 15'in Application
veya Activity
cihazınızın desteklenen çevrilebilir cihazların küçük kapak ekranlarında gösterilmesine izin vermek için kullandığı bir özelliği beyan edebilir. Bu ekranlar, Android uygulamalarının çalışması için uyumlu hedefler olarak kabul edilemeyecek kadar küçük olsa da uygulamanız bu ekranları desteklemeyi tercih edebilir. Böylece uygulamanız daha fazla yerde kullanılabilir.
Bağlantı
Android 15, uygulamanızın iletişim ve kablosuz teknolojilerdeki en son gelişmelere erişebilmesi için platformu günceller.
Uydu desteği
Android 15, uydu bağlantısı için platform desteğini genişletmeye devam ediyor ve uydu bağlantı ortamı genelinde tutarlı bir kullanıcı deneyimi sağlamak için bazı kullanıcı arayüzü öğeleri içeriyor.
Uygulamalar bir cihazın uyduya bağlı olduğu zamanı algılamak için ServiceState.isUsingNonTerrestrialNetwork()
özelliğini kullanabilir. Bu özellik, kullanıcılara tam ağ hizmetlerinin neden kullanılamayabileceği konusunda daha fazla bilgi verir. Ayrıca Android 15, mesaj gönderip almak için uydu bağlantısını kullanan, önceden yüklenmiş RCS uygulamalarının yanı sıra SMS ve MMS uygulamaları için de destek sunar.
![](https://developer.android.com/static/about/versions/15/images/satellite-notification.png?authuser=5&hl=tr)
Daha akıcı NFC deneyimleri
Android 15, Android'in sağlam NFC uygulama ekosistemini desteklemeye devam ederken temassız ödeme deneyimini daha sorunsuz ve güvenilir hale getirmek için çalışıyor. Desteklenen cihazlarda uygulamalar gözlem moduna girmek için NfcAdapter
iznini isteyebilir. Bu modda cihaz, NFC okuyucuları dinler ancak NFC okuyuculara yanıt vermez ve uygulamanın NFC hizmetini PollingFrame
nesneleri işlemesi için gönderir. PollingFrame
nesneleri, NFC okuyucuyla ilk iletişimden önce kimlik doğrulaması yapmak için kullanılabilir. Böylece çoğu durumda tek dokunuşla işlem yapılabilir.
Ayrıca uygulamalar artık desteklenen cihazlarda filtre kaydedebilir. Böylece, NFC duyarlı birden çok uygulamayla sorunsuz bir şekilde çalışmaya olanak tanıyan yoklama döngüsü etkinliği hakkında bildirim alabilirler.
Cüzdan rolü
Android 15'te, kullanıcının tercih ettiği cüzdan uygulamasıyla daha sıkı entegrasyon olanağı sağlayan yeni bir Cüzdan rolü kullanıma sunuluyor. Bu rol, NFC varsayılan temassız ödeme ayarının yerini alır. Kullanıcılar, Ayarlar > Uygulamalar > Varsayılan Uygulamalar'a giderek Cüzdan rol sahibini yönetebilir.
Cüzdan rolü, ödeme kategorisinde kayıtlı AID'ler için NFC dokunmaları yönlendirilirken kullanılır. Ön planda aynı AID için kayıtlı başka bir uygulama çalışmıyorsa dokunma işlemleri her zaman Cüzdan rol sahibine gider.
Bu rol, etkinleştirildiğinde Cüzdan Hızlı Erişim kutusunun nereye gideceğini belirlemek için de kullanılır. Rol "Yok" olarak ayarlandığında QuickAccess kutusu kullanılamaz ve ödeme kategorisindeki NFC dokunmaları yalnızca ön plandaki uygulamaya iletilir.
Güvenlik
Android 15, uygulamanızın güvenliğini artırmanıza ve uygulamanızın verilerini korumanıza yardımcı olur. Ayrıca, kullanıcılara verileri üzerinde daha fazla şeffaflık ve kontrol sunar. Kullanıcı teminatlarını iyileştirmek ve uygulamanızı yeni tehditlere karşı korumak için yaptıklarımızla ilgili daha fazla bilgiyi Google I/O'da Android'de kullanıcı güvenliğini koruma konulu konuşmada bulabilirsiniz.
Kimlik Bilgisi Yöneticisi'ni otomatik doldurma özelliğiyle entegre etme
Starting with Android 15, developers can link specific views like username or password fields with Credential Manager requests, making it easier to provide a tailored user experience during the sign-in process. When the user focuses on one of these views, a corresponding request is sent to Credential Manager. The resulting credentials are aggregated across providers and displayed in autofill fallback UIs, such as inline suggestions or drop-down suggestions. The Jetpack androidx.credentials library is the preferred endpoint for developers to use and will soon be available to further enhance this feature in Android 15 and higher.
Tek dokunuşla kaydolma ve oturum açma işlemlerini biyometrik istemlerle entegre etme
Credential Manager integrates biometric prompts into the credential creation and sign-in processes, eliminating the need for providers to manage biometric prompts. As a result, credential providers only need to focus on the results of the create and get flows, augmented with the biometric flow result. This simplified process creates a more efficient and streamlined credential creation and retrieval process.
Uçtan uca şifreleme için anahtar yönetimi
Şifreleme ortak anahtarlarının depolanması için işletim sistemi düzeyinde bir API sağlayarak Android uygulamalarınızda uçtan uca şifrelemeyi (E2EE) kolaylaştıran E2eeContactKeysManager
'i Android 15'te kullanıma sunuyoruz.
E2eeContactKeysManager
, kullanıcılara kişilerinin ortak anahtarlarını yönetmeleri ve doğrulamaları için merkezi bir yol sunmak amacıyla, platform kişileri uygulamasıyla entegre olacak şekilde tasarlanmıştır.
İçerik URI'lerindeki izin kontrolleri
Android 15, içerik URI'lerinde izin kontrolleri gerçekleştiren yeni bir dizi API'yi kullanıma sunar:
Context.checkContentUriPermissionFull
: İçerik URI'lerinde tam izin kontrolü gerçekleştirir.Activity
manifest özelliğirequireContentUriPermissionFromCaller
: Bu, etkinlik başlangıcında sağlanan içerik URI'lerinde belirtilen izinleri uygular.Activity
arayanlar içinComponentCaller
sınıfı: Bu, etkinliği başlatan uygulamayı gösterir.
Erişilebilirlik
Android 15, kullanıcılar için erişilebilirliği iyileştiren özellikler ekler.
Daha iyi Braille
Android 15'te, TalkBack'in hem USB hem de güvenli Bluetooth üzerinden HID standardını kullanan Braille ekranları desteklemesini mümkün hale getirdik.
Fareler ve klavyeler tarafından kullanılana çok benzeyen bu standart, Android'in zaman içinde daha geniş bir Braille ekran aralığını desteklemesine yardımcı olacaktır.
Uluslararası hale getirme
Android 15, cihazlar farklı dillerde kullanıldığında kullanıcı deneyimini tamamlayan özellikler ve işlevler ekler.
CJK değişken yazı tipi
Android 15'ten başlayarak Çince, Japonca ve Korece (CJK) dilleri için yazı tipi dosyası, NotoSansCJK artık değişken bir yazı tipi oldu. Değişken yazı tipleri, CJK dillerinde reklam öğesi tipografisi için yeni olanaklar yaratır. Tasarımcılar, daha geniş bir stil yelpazesini keşfedip önceden zor ya da imkansız olan görsel olarak çarpıcı düzenler oluşturabilir.
![](https://developer.android.com/static/about/versions/15/images/cjk-variable-font.png?authuser=5&hl=tr)
Karakterler arası iki yana yaslama
Android 15'ten itibaren metinler, JUSTIFICATION_MODE_INTER_CHARACTER
aracılığıyla harfler arasında boşluk bırakılarak hizalanabilir. Kelimeler arası gerekçelendirme ilk olarak Android 8.0'da (API düzeyi 26) kullanıma sunulmuştur ve karakterler arası iki yana yaslama, segmentasyon için boşluk karakterini kullanan diller için de (ör. Çince, Japonca ve diğer diller) benzer özellikler sağlar.
![](https://developer.android.com/static/about/versions/15/images/none-japanese.png?authuser=5&hl=tr)
JUSTIFICATION_MODE_NONE
kullanılan Japonca metin düzeni.![](https://developer.android.com/static/about/versions/15/images/none-english.png?authuser=5&hl=tr)
JUSTIFICATION_MODE_NONE
kullanılan İngilizce metin düzeni.![](https://developer.android.com/static/about/versions/15/images/inter-word-japanese.png?authuser=5&hl=tr)
JUSTIFICATION_MODE_INTER_WORD
kullanılan Japonca metin düzeni.![](https://developer.android.com/static/about/versions/15/images/inter-word-english.png?authuser=5&hl=tr)
JUSTIFICATION_MODE_INTER_WORD
kullanılan İngilizce metin düzeni.![](https://developer.android.com/static/about/versions/15/images/inter-character-japanese.png?authuser=5&hl=tr)
JUSTIFICATION_MODE_INTER_CHARACTER
kullanılan Japonca metin düzeni.![](https://developer.android.com/static/about/versions/15/images/inter-character-english.png?authuser=5&hl=tr)
JUSTIFICATION_MODE_INTER_CHARACTER
kullanılan İngilizce metin düzeni.Otomatik satır sonu yapılandırması
Android, Android 13'te (API düzeyi 33) Japonca ve Korece için ifade tabanlı satır sonlarını desteklemeye başladı. Ancak, kelime öbeğine dayalı satır sonları kısa metin satırlarının okunabilirliğini artırsa da uzun metin satırlarında iyi sonuç vermez.
Android 15'te uygulamalar artık LINE_BREAK_WORD_STYLE_AUTO
seçeneğini kullanarak yalnızca kısa metin satırlarında ifadeye dayalı satır sonları uygulayabilir. Bu seçenek metin için en uygun kelime stili seçeneğini belirler.
Kısa metin satırları için aşağıdaki resimde gösterildiği gibi LINE_BREAK_WORD_STYLE_PHRASE
ile aynı şekilde çalışan kelime öbeği tabanlı satır sonları kullanılır:
![](https://developer.android.com/static/about/versions/15/images/line-break-auto-short.png?authuser=5&hl=tr)
LINE_BREAK_WORD_STYLE_AUTO
, kısa metin satırlarında metnin okunabilirliğini iyileştirmek için ifadeye dayalı satır sonları uygular.
Bu, LINE_BREAK_WORD_STYLE_PHRASE
uygulamakla aynıdır.Daha uzun metin satırları için LINE_BREAK_WORD_STYLE_AUTO
, aşağıdaki resimde gösterildiği gibi LINE_BREAK_WORD_STYLE_NONE
ile aynı şekilde çalışan satır sonu olmayan bir kelime stili kullanır:
![](https://developer.android.com/static/about/versions/15/images/line-break-auto-long.png?authuser=5&hl=tr)
LINE_BREAK_WORD_STYLE_AUTO
metnin okunabilirliğini iyileştirmek için satır sonu kelime stili uygulamaz.
Bu, LINE_BREAK_WORD_STYLE_NONE
uygulamakla aynıdır.Yeni Japon Hentaigana Yazı Tipi
Android 15'te, eski Japon Hiragana'sı (Hentaigana olarak bilinir) için yeni bir yazı tipi dosyası varsayılan olarak paket hâline getirilir. Hentaigana karakterlerinin benzersiz şekilleri, sanat eseri veya tasarıma ayırt edici bir görünüm katarken, antik Japon belgelerinin doğru iletilmeye ve anlaşılmasına da yardımcı olmaktadır.
![](https://developer.android.com/static/about/versions/15/images/hentaigana-font.png?authuser=5&hl=tr)
VideoLAN koni Telif Hakkı (c) 1996-2010 VideoLAN. Bu logo veya değiştirilmiş sürümü, herhangi bir kişi tarafından VideoLAN projesine veya VideoLAN ekibi tarafından geliştirilen herhangi bir ürüne atıfta bulunmak için kullanılabilir ya da değiştirilebilir ancak projenin desteklediği anlamına gelmez.
Vulkan ve Vulkan logosu, Khronos Group Inc.in tescilli ticari markalarıdır.
OpenGL tescilli bir ticari markadır ve OpenGL ES logosu, Hewlett Packard Enterprise'ın ticari markasıdır ve Khronos'un izniyle kullanılmıştır.