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.google.cn/static/about/versions/15/images/hdr-headroom.png?authuser=0000&hl=tr)
Ses düzeyi kontrolü
Android 15, CTA-2075 ses yüksekliği standardı ses yüksekliğindeki tutarsızlıklardan kaçının ve kullanıcıların sürekli olarak içerikler arasında geçiş yaparken ses düzeyini ayarlayabilirsiniz. Sistem, kullandığı bilinen çıkış cihazlarının (kulaklık ve hoparlör) özelliklerini AAC ses içeriğinde bulunan ses yüksekliği meta verileri, ses düzeyini ve ses düzeyini ses yüksekliği ve dinamik aralık sıkıştırma düzeyleri.
Bu özelliği etkinleştirmek için ses yüksekliği meta verilerinin şurada bulunduğundan emin olmanız gerekir:
AAC içeriğinizi ve uygulamanızda platform özelliğini etkinleştirin. Bunun için
LoudnessCodecController
nesnesini şu şekilde örneklendir:
cihazın sesiyle birlikte create fabrika yöntemini çağırarak
ilişkili AudioTrack
oturum kimliği; bu
otomatik olarak ses güncellemelerini uygulamaya başlar. Bir
Değiştirmek veya filtrelemek için OnLoudnessCodecUpdateListener
ses yüksekliği parametreleri,
MediaCodec
.
// 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
}
AndroidX media3 ExoPlayer da
LoudnessCodecController
Sorunsuz uygulama entegrasyonu için API'ler
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.google.cn/static/about/versions/15/images/pdf-rendering.png?authuser=0000&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ştiriyor. Artık şunları yapabilirsiniz:
belirtmeden değişken yazı tipinden bir FontFamily
örneği oluştur
buildVariableFamily
API ile ağırlık eksenlerini belirleyin. Metin oluşturucu geçersiz kılmaları
görüntülenen metinle eşleşecek şekilde wght
ekseninin değerini değiştirin.
Yeni API'yi kullanarak bu işlem, Typeface
oluşturma kodunu basitleştirir
dikkate alabilirsiniz:
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();
Aşağıda, bir Typeface
hesabının hem eski hem de yeni API'lerle nasıl oluşturulduğuna dair bir örnek verilmiştir
oluşturur:
Bu örnekte, eski API ile oluşturulan Typeface
öğesinde
350, 450, 550 ve 650 için doğru yazı tipi ağırlıkları oluşturma olanağı
Font
örneklerinden oluşur, böylece oluşturucu en yakın ağırlığa geri döner. Bu nedenle
bu durumda 350 yerine 300, 450 yerine 400 oluşturulur ve
bu şekilde devam eder. Buna karşın, yeni API'lerle oluşturulan Typeface
,
Böylece, doğru ağırlıklar 350 için oluşturulur ve bu şekilde, belirli bir ağırlık için Font
örneği oluşturulur.
450, 550 ve 650 de olabilir.
Ayrıntılı satır sonu kontrolleri
Android 15'ten itibaren bir TextView
ve temel sürüm
satır kesici, metinlerin belirli bir bölümünü aynı satırda daha iyi hale getirmek için
okunabilirlik. Aşağıdaki satır öğelerini kullanarak bu satır sonu özelleştirmesinden yararlanabilirsiniz:
dize kaynaklarındaki <nobreak>
etiketini veya
createNoBreakSpan
Benzer şekilde,
kısa çizgi eklemek için <nohyphen>
etiketini veya
createNoHyphenationSpan
Örneğin, aşağıdaki dize kaynağı bir satır sonu içermiyor ve "Pixel 8 Pro" metniyle oluşturulur. istenmeyen bir yere girme:
<resources>
<string name="pixel8pro">The power and brains behind Pixel 8 Pro.</string>
</resources>
Buna karşılık, bu dize kaynağı, <nobreak>
"Pixel 8 Pro" kelime öbeği. ve satır sonlarını engeller:
<resources>
<string name="pixel8pro">The power and brains behind <nobreak>Pixel 8 Pro.</nobreak></string>
</resources>
Bu dizelerin oluşturulma biçimleri arasındaki fark aşağıda gösterilmektedir görseller:
![](https://developer.android.google.cn/static/about/versions/15/images/line-breaks-none.png?authuser=0000&hl=tr)
<nobreak>
etiketi kullanılarak sarmalanmaz.![](https://developer.android.google.cn/static/about/versions/15/images/line-breaks-included.png?authuser=0000&hl=tr)
<nobreak>
etiketi kullanılarak sarmalanır.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.google.cn/static/about/versions/15/images/angle-vulkan-roadmap.png?authuser=0000&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, bunları algılamak için uygulamalar için destek sunmaya başladı. kaydedilmektedir. Uygulama geçişinde her zaman geri çağırma çağrılır arasında bir ekran kaydında görünür veya görünmez olma arasındaki farkları ifade eder. Uygulamalar, kayıt sürecinin UID'sine ait etkinlikler, kaydedilmektedir. Böylece, uygulamanız hassas bir işlem yapıyorsa kullanıcıya kaydedildiğini bildirebilir.
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, gelişmiş özellikler ve daha hassas Intent
çözünürlüğü
UriRelativeFilterGroup
,
Intent
kümesini oluşturan UriRelativeFilter
nesne
URL sorgu parametreleri ve URL dahil olmak üzere her birinin karşılaması gereken eşleştirme kuralları
ve engelleme ya da hariç tutma kurallarını içerir.
Bu kurallar, AndroidManifest
XML dosyasında yeni
<uri-relative-filter-group>
etiketi ile başlar ve isteğe bağlı olarak
android:allow
etiketi. Bu etiketler, mevcut verileri kullanan <data>
etiket içerebilir
etiket özellikleriyle birlikte yeni android:query
ve android:fragment
özellikleri hakkında daha fazla bilgi edinin.
Aşağıda, AndroidManifest
söz diziminin bir örneği verilmiştir:
<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
Uygulamalar artık yalnızca en son seçilen fotoğrafları vurgulayabilir
ve videolar, medya izinlerine kısmi erişim izni verildiğinde gerçekleşebilir. Bu
özellik, sık sık istek gönderen uygulamalar için kullanıcı deneyimini iyileştirebilir.
fotoğraf ve videolara erişme. Uygulamanızda bu özelliği kullanmak için
MediaStore
sorgusunda QUERY_ARG_LATEST_SELECTION_ONLY
bağımsız değişkeni
ContentResolver
aracılığıyla.
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 önizlemelerini sağlamanın tek yolu statik bir resim veya düzen kaynağı olmalıdır. Bu önizlemeler genellikle birbirinden farklı ana widget'ın üzerine yerleştirildiğinde gerçek widget'ın görünümünden çok daha farklı tıklayın. Ayrıca statik kaynaklar Jetpack Glance ile oluşturulamaz. Bu nedenle, için bir XML düzeni oluşturmaları veya bir web sitesi widget önizlemesi.
Android 15'te oluşturulan önizlemeler için destek eklendi. Bu, uygulama widget'ının
sağlayıcılar, bunun yerine seçici önizlemesi olarak kullanmak üzere RemoteViews
oluşturabilir
örneğidir.
![](https://developer.android.google.cn/static/about/versions/15/images/generated-previews.png?authuser=0000&hl=tr)
Push API'sı
Uygulamalar, oluşturulan önizlemeleri bir push API'si aracılığıyla sağlayabilir. Uygulamalar şunları sağlayabilir:
önizlemeleri sunmaz ve açık bir istek almaz.
ana makineden önizleme sağlar. Önizlemeler AppWidgetService
ürününde kalıcıdır,
ve düzenleyenler istek üzerine
bunları talep edebilir. Aşağıdaki örnek, bir XML widget'ı yükler
düzen kaynağını belirler 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 arar. Sağlanan Önizlemeler,AppWidgetService
uygulamasında diğer sağlayıcı bilgileriyle birlikte kalıcıdır. setWidgetPreview
, ana makinelere güncellenmiş bir önizlemeyi şurada bildirir:AppWidgetHost.onProvidersChanged
geri arama. Buna karşılık, widget ana makine tüm sağlayıcı bilgilerini yeniden yükler.- Bir widget önizlemesi görüntülenirken ana makine,
AppWidgetProviderInfo.generatedPreviewCategories
ve seçiliyse kategorisi kullanılabilir, şunu arar:AppWidgetManager.getWidgetPreview
bu sağlayıcı için kaydedilen önizlemeyi döndür.
setWidgetPreview
ne zaman aranır?
Önizlemeler için geri arama olmadığından uygulamalar çalışırken herhangi bir noktada önizleme yapabilir. Ö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 gerçek veriler gösteren sağlayıcılar (ör. kişiselleştirilmiş reklamlar) en son bilgilere ulaşabilirsiniz. Bu sağlayıcılar, kullanıcı aşağıdaki işlemleri yaptıktan sonra önizlemeyi ayarlayabilir: oturum açmış veya uygulamasında ilk yapılandırmayı gerçekleştirmiş olduğundan emin olun. Bundan sonra, önizlemeleri seçtikleri sıklıkta güncellemek için periyodik bir görev oluşturabilir. Bu tür widget'lara örnek olarak fotoğraf, takvim, hava durumu veya haberler gösterilebilir. widget'ını tıklayın.
- Önizlemelerde veya hızlı işlem widget'larında statik bilgiler gösteren sağlayıcılar reklam grupları oluşturabilirsiniz. Bu sağlayıcılar, uygulamanın ilk lansmanı. Bu widget'a örnek olarak Drive hızlı işlemler widget'ı veya Chrome kısayolları widget'ı.
Bazı sağlayıcılar, hub modu seçicisinde statik önizlemeler gösterebilir ancak gerçek bilgileri kontrol edin. Bu sağlayıcılar, her iki kullanım alanında da önizlemeleri ayarlamak için kullanılır.
Pencere İçinde Pencere
Android 15, Pencere İçinde Pencere (PiP) özelliğinde yapılan yeni değişikliklerle birlikte daha akıcı geçişler sağlıyor. Bu işlem, ana kullanıcı arayüzünün üzerine yerleştirilmiş kullanıcı arayüzü öğeleri içeren uygulamalar.
Geliştiriciler mantığı tanımlamak için onPictureInPictureModeChanged
geri çağırma yöntemini kullanır
bölümünü açar/kapatır. Bu geri arama
PiP giriş veya çıkış animasyonu tamamlandığında tetiklenir. Şu tarihte başlıyor:
Android 15, PictureInPictureUiState
sınıfı yeni bir durum içeriyor.
Bu yeni kullanıcı arayüzü durumuyla, Android 15'i hedefleyen uygulamalar
Activity#onPictureInPictureUiStateChanged
geri çağırma özelliği şununla çağrılıyor:
PiP animasyonu başlar başlamaz isTransitioningToPip()
. Her biri 100'den az gösterim alan
PiP modundayken uygulamayla alakalı olmayan birçok kullanıcı arayüzü öğesi
öneriler, yaklaşan görüntüleme sayısı gibi bilgiler içeren örnek görünümler veya
videolar, derecelendirmeler ve başlıklar. Uygulama PiP moduna geçtiğinde
Bu kullanıcı arayüzü öğelerini gizlemek için onPictureInPictureUiStateChanged
geri çağırma işlemini gerçekleştirin.
PiP penceresinden tam ekran moduna geçerse
Bu öğeleri göstermek için onPictureInPictureModeChanged
geri çağırması (aşağıda gösterildiği gibi)
aşağıdaki örnekler:
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 açma/kapatma düğmesi (PIP penceresi için) daha akıcı ve titreyen bir PiP giriş animasyonu olduğundan emin olun.
İ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.google.cn/static/about/versions/15/images/satellite-notification.png?authuser=0000&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.google.cn/static/about/versions/15/images/cjk-variable-font.png?authuser=0000&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.google.cn/static/about/versions/15/images/none-japanese.png?authuser=0000&hl=tr)
JUSTIFICATION_MODE_NONE
kullanılan Japonca metin düzeni.![](https://developer.android.google.cn/static/about/versions/15/images/none-english.png?authuser=0000&hl=tr)
JUSTIFICATION_MODE_NONE
kullanılan İngilizce metin düzeni.![](https://developer.android.google.cn/static/about/versions/15/images/inter-word-japanese.png?authuser=0000&hl=tr)
JUSTIFICATION_MODE_INTER_WORD
kullanılan Japonca metin düzeni.![](https://developer.android.google.cn/static/about/versions/15/images/inter-word-english.png?authuser=0000&hl=tr)
JUSTIFICATION_MODE_INTER_WORD
kullanılan İngilizce metin düzeni.![](https://developer.android.google.cn/static/about/versions/15/images/inter-character-japanese.png?authuser=0000&hl=tr)
JUSTIFICATION_MODE_INTER_CHARACTER
kullanılan Japonca metin düzeni.![](https://developer.android.google.cn/static/about/versions/15/images/inter-character-english.png?authuser=0000&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.google.cn/static/about/versions/15/images/line-break-auto-short.png?authuser=0000&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.google.cn/static/about/versions/15/images/line-break-auto-long.png?authuser=0000&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.google.cn/static/about/versions/15/images/hentaigana-font.png?authuser=0000&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.