Android 14, geliştiriciler için muhteşem yeni özellikler ve API'ler sunar. Aşağıdaki bölümler, uygulamalarınızın özellikleri hakkında bilgi edinmenize ve ilgili API'leri kullanmaya başlamanıza yardımcı olur.
Yeni, değiştirilmiş ve kaldırılan API'lerin ayrıntılı listesi için API farkı raporunu okuyun. Yeni API'lerle ilgili ayrıntılar için Android API referansı sayfasını ziyaret edin. Yeni API'ler, görünürlük sağlamak için vurgulanır. Ayrıca, platform değişikliklerinin uygulamalarınızı etkileyebileceği alanlar hakkında bilgi edinmek için Android 14'ü hedefleyen uygulamalar ve tüm uygulamalar için Android 14 davranış değişikliklerine göz atmayı unutmayın.
Uluslararası hale getirme
Uygulamaya özgü dil tercihleri
Android 14, Android 13'te (API düzeyi 33) kullanıma sunulan uygulamaya özgü dil özelliklerini aşağıdaki ek özelliklerle zenginleştirir:
Uygulamaların
localeConfig
öğelerini otomatik olarak oluştur: Android Studio Giraffe Canary 7 ve AGP 8.1.0-alpha07 sürümlerinden başlayarak, uygulamanızı uygulamaya özgü dil tercihlerini otomatik olarak destekleyecek şekilde yapılandırabilirsiniz. Android Gradle eklentisi, proje kaynaklarınıza bağlı olarakLocaleConfig
dosyasını oluşturur ve nihai manifest dosyasına bir referans ekler. Böylece artık dosyayı manuel olarak oluşturmanız veya güncellemeniz gerekmez. AGP,LocaleConfig
dosyasına dahil edilecek yerel ayarları belirlemek için uygulama modüllerinizinres
klasörlerindeki kaynakları ve tüm kitaplık modülü bağımlılıklarını kullanır.Uygulamaların
localeConfig
sürümleri için dinamik güncellemeler:LocaleManager
sayfasındasetOverrideLocaleConfig()
vegetOverrideLocaleConfig()
yöntemlerini kullanarak cihazın sistem ayarlarında uygulamanızın desteklenen diller listesini dinamik olarak güncelleyin. Desteklenen dillerin listesini bölgeye göre özelleştirmek, A/B denemeleri çalıştırmak veya uygulamanız yerelleştirme için sunucu tarafı aktarmaları kullanıyorsa güncellenmiş bir yerel ayar listesi sağlamak için bu esnekliği kullanabilirsiniz.Giriş yöntemi düzenleyicileri (IME'ler) için uygulama dili görünürlüğü: IME'ler, geçerli uygulamanın dilini kontrol etmek ve IME dilini bu dille eşleştirmek için
getApplicationLocales()
yöntemini kullanabilir.
Grammical Inffaction API'sı
有 30 亿人在使用区分性别的语言,此类语言的语法类别(例如名词、动词、形容词和介词)会根据您交谈所涉及的人或物的性别而变化。传统上,许多区分性别的语言使用阳性语法性别作为默认或通用性别。
以错误的语法性别来称呼用户,例如以阳性语法性别来称呼女性,可能会对她们的表现和态度产生负面影响。相比之下,界面语言如果能正确反映用户的语法性别,就可以提高用户互动度,并提供更个性化、更自然的用户体验。
Android 14, cinsiyete dayalı diller için kullanıcı odaklı bir kullanıcı arayüzü oluşturmanıza yardımcı olmak amacıyla, uygulamanızı yeniden düzenlemeden dil bilgisi desteği eklemenize olanak tanıyan Grammical Inffaction API'yi kullanıma sunuyor.
Bölgeye özgü tercihler
Bölgesel tercihler, kullanıcıların sıcaklık birimlerini, haftanın ilk gününü ve numaralandırma sistemlerini kişiselleştirmesini sağlar. ABD'de yaşayan bir Avrupalı, sıcaklık biriminin Fahrenhayt yerine Santigrat'ta olmasını ve uygulamaların, ABD'nin pazar günü varsayılan değeri yerine pazartesi gününü haftanın başlangıcı olarak kabul etmesini tercih edebilir.
Bu tercihler için yeni Android Ayarları menüleri, kullanıcılara uygulama tercihlerini değiştirebilecekleri keşfedilebilir ve merkezi bir konum sağlar. Bu tercihler, yedekleme ve geri yükleme yoluyla da korunur. getTemperatureUnit
ve getFirstDayOfWeek
gibi çeşitli API ve amaçlar uygulamanıza kullanıcı tercihlerine okuma erişimi verir. Böylece uygulamanız bilgileri nasıl görüntüleyeceğini ayarlayabilir. Bölgesel tercihler değiştiğinde yerel ayar değişikliklerini işlemek için ACTION_LOCALE_CHANGED
adresinde bir BroadcastReceiver
de kaydedebilirsiniz.
Bu ayarları bulmak için Ayarlar uygulamasını açın ve Sistem > Diller ve giriş > Bölgesel tercihler'e gidin.


Erişilebilirlik
Doğrusal olmayan yazı tipi boyutunu %200'e ölçeklendirme
Android 14'ten itibaren sistem, %200'e kadar yazı tipi ölçeklendirmesini destekleyerek az gören kullanıcılara Web İçeriği Erişilebilirlik Yönergeleri (WCAG) ile uyumlu ek erişilebilirlik seçenekleri sağlar.
Sistem, ekrandaki büyük metin öğelerinin çok büyük ölçeklenmesini önlemek için doğrusal olmayan bir ölçeklendirme eğrisi uygular. Bu ölçeklendirme stratejisi, büyük metnin daha küçük metinlerle aynı hızda ölçeklendirilmeyeceği anlamına gelir. Doğrusal olmayan yazı tipi ölçeklendirme, farklı boyutlardaki öğeler arasındaki orantısal hiyerarşinin korunmasına yardımcı olurken yüksek derecelerde doğrusal metin ölçeklendirme ile ilgili sorunları (metinlerin kesilmesi veya son derece büyük ekran boyutları nedeniyle metnin okunması zor hale gelmesi gibi) de azaltır.
Uygulamanızı doğrusal olmayan yazı tipi ölçeklendirme özelliğiyle test etme

Metin boyutunu tanımlamak için zaten ölçeklendirilmiş piksel (sp) birimleri kullanıyorsanız bu ek seçenekler ve ölçeklendirme iyileştirmeleri uygulamanızdaki metne otomatik olarak uygulanır. Yine de uygulamanızın yazı tipi boyutlarını doğru bir şekilde uyguladığından ve kullanılabilirliği etkilemeden daha büyük yazı tipi boyutlarına yer verebildiğinden emin olmak için maksimum yazı tipi boyutunu etkinleştirdiğinizde (%200) kullanıcı arayüzü testlerini yine de yapmanız gerekir.
Yazı tipi boyutunu% 200 etkinleştirmek için şu adımları uygulayın:
- Ayarlar uygulamasını açıp Erişilebilirlik > Görüntü boyutu ve metin'e gidin.
- Yazı tipi boyutu seçeneği için bu bölüme eşlik eden resimde gösterildiği gibi, maksimum yazı tipi boyutu ayarı etkinleştirilene kadar artı (+) simgesine dokunun.
Metin boyutları için ölçeklendirilmiş piksel (sp) birimleri kullan
Metin boyutlarını her zaman sp birimleri cinsinden belirtmeyi unutmayın. Uygulamanızda sp birimleri kullanıldığında Android kullanıcının tercih ettiği metin boyutunu uygulayıp uygun şekilde ölçeklendirebilir.
Dolgu için sp birimleri kullanmayın veya örtülü dolgu varsayılarak görünüm yükseklikleri tanımlayın: Doğrusal olmayan yazı tipi ölçeklendirmeli sp boyutları orantılı olmayabilir. Bu nedenle 4 sp + 20 sp 24 sp'ye eşit olmayabilir.
Ölçeklendirilmiş piksel (sp) birimlerini dönüştürme
Sp birimlerinden piksele dönüştürmek için TypedValue.applyDimension()
, pikselleri sp'ye dönüştürmek için TypedValue.deriveDimension()
kullanın. Bu yöntemler, uygun doğrusal olmayan ölçeklendirme eğrisini otomatik olarak uygular.
Configuration.fontScale
veya DisplayMetrics.scaledDensity
kullanarak denklemleri koda gömmekten kaçının.
Yazı tipi ölçeklendirmesi artık doğrusal olmadığından, scaledDensity alanı artık doğru değildir. Yazı tipleri artık tek bir skaler değerle ölçeklendirilmediğinden, fontScale alanı yalnızca bilgi amaçlı kullanılmalıdır.
lineHeight için sp birimleri kullanın
android:lineHeight
özelliğini daima dp yerine sp birimleri kullanarak tanımlayın. Böylece satır yüksekliği metninizle birlikte ölçeklendirilir.
Aksi takdirde, metniniz sp ise ancak lineHeight değeriniz dp veya px ise ölçeklenmez ve sıkışık görünür. TextView, istediğiniz oranların korunması için lineHeight değerini otomatik olarak düzeltir (yalnızca hem textSize hem delineHeight sp birimler şeklinde tanımlandığında).
Kamera ve medya
Resimler için Ultra HDR

Android 14'te, fotoğraf çekerken sensörden gelen bilginin daha fazlasını koruyan Yüksek Dinamik Aralıklı (HDR) görüntüler desteği vardır. Bu sayede canlı renkler ve daha fazla kontrast sağlanır. Android, JPEG resimlerle tamamen geriye dönük uyumlu olan Ultra HDR biçimini kullanır. Böylece, uygulamalar HDR resimlerle sorunsuz bir şekilde birlikte çalışabilir ve gerektiğinde bu resimleri Standart Dinamik Aralıkta (SDR) görüntüler.
Uygulamanız Etkinlik Penceresi için HDR kullanıcı arayüzünü kullanmayı tercih ettiğinde, manifest girişi aracılığıyla veya çalışma zamanında Window.setColorMode()
çağrısı yaparak bu görüntülerin kullanıcı arayüzünde HDR olarak oluşturulması çerçeve tarafından otomatik olarak yapılır. Desteklenen cihazlarda sıkıştırılmış Ultra HDR hareketsiz resimler de çekebilirsiniz. Sensörden daha fazla renk kurtarıldığında
yayında düzenleme yapmak daha esnek olabilir. Ultra HDR görüntülerle ilişkilendirilen Gainmap
, bu görüntülerin OpenGL veya Vulkan kullanılarak oluşturulması için kullanılabilir.
Kamera uzantılarında yakınlaştırma, odaklama, görüntüleme sonrası görüntüleme ve daha fazlası
Android 14, kamera uzantılarını yeni sürüme geçirip iyileştirerek uygulamaların daha uzun işleme sürelerine olanak tanır. Bu sayede, desteklenen cihazlarda ışığın yeterli olmadığı ortamlarda çekilen fotoğraflar gibi işlem yoğun algoritmalar kullanılarak iyileştirilmiş resimler iyileştirilir. Bu özellikler, kamera uzantısı özelliklerini kullanırken kullanıcılara daha da güçlü bir deneyim sunar. Bu iyileştirmelere örnek olarak aşağıdakiler verilebilir:
- Dinamik hâlâ yakalama işleme gecikmesi tahmini, mevcut düzen ve ortam koşullarına bağlı olarak çok daha doğru şekilde yakalanan gecikme tahminlerini sunar. İki gecikme tahmini yöntemi olan bir
StillCaptureLatency
nesnesi almak içinCameraExtensionSession.getRealtimeStillCaptureLatency()
yöntemini çağırın.getCaptureLatency()
yöntemi,onCaptureStarted
ileonCaptureProcessStarted()
arasındaki tahmini gecikmeyi döndürür.getProcessingLatency()
yöntemi iseonCaptureProcessStarted()
ile mevcut işlenen son kare arasındaki tahmini gecikmeyi döndürür. - Uygulamaların uzun süreli, görüntü almaya devam eden işleme işlemlerinin mevcut ilerlemesini görüntüleyebilmesi için ilerleme geri çağırmalarını yakalama desteği. Bu özelliğin
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable
ile kullanılabilir olup olmadığını kontrol edebilir ve mevcutsa ilerleme durumunu (0'dan 100'e) parametre olarak aktaranonCaptureProcessProgressed()
geri çağırmasını uygularsınız. Uzantıya özel meta veriler. Örneğin,
EXTENSION_BOKEH
ile arka plan bulanıklaştırma miktarı gibi uzantı efektinin miktarını eklemek içinCaptureRequest.EXTENSION_STRENGTH
.Kamera uzantılarında, son görüntüden daha az işlenmiş bir görüntüyü daha hızlı sağlayan Görüntü Sonrası Yakalama özelliği. Bir uzantının işleme gecikmesi artarsa kullanıcı deneyimini iyileştirmek için yer tutucu olarak bir görüntüleme sonrası resmi sağlanabilir ve daha sonra nihai resim için değiştirilir. Bu özelliğin
CameraExtensionCharacteristics.isPostviewAvailable
üzerinden kullanıma sunulup sunulmadığını kontrol edebilirsiniz. ArdındanExtensionSessionConfiguration.setPostviewOutputConfiguration
adlı kişiyeOutputConfiguration
iletebilirsiniz.Daha optimize edilmiş ve gücü daha verimli bir şekilde sunan önizleme oluşturma yolunun sunulmasına olanak tanıyan
SurfaceView
desteği.Uzantı kullanımı sırasında odaklanmak ve yakınlaştırmak için dokunma desteği.
Sensör içi yakınlaştırma
CameraCharacteristics
içindeki REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE
öğesinde SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
varsa uygulamanız, kırpılmış bir RAW akışına tam görüş alanıyla aynı pikselleri sağlamak için gelişmiş sensör özelliklerini kullanabilir. Bunun için, akış kullanım alanı CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
olarak ayarlanmış bir RAW hedefine sahip CaptureRequest
kullanılabilir.
İstek geçersiz kılma denetimleri uygulandığında, güncellenen kamera, diğer kamera kontrolleri hazır olmadan bile kullanıcılara yakınlaştırma kontrolü sağlar.
Kayıpsız USB ses
Android 14 gains support for lossless audio formats for audiophile-level
experiences over USB wired headsets. You can query a USB device for its
preferred mixer attributes, register a listener for changes in preferred mixer
attributes, and configure mixer attributes using a new
AudioMixerAttributes
class. This class represents the
format, such as channel mask, sample rate, and behavior of the audio mixer. The
class allows for audio to be sent directly, without mixing,
volume adjustment, or processing effects.
Geliştirici üretkenliği ve araçları
Kimlik Bilgisi Yöneticisi
Android 14, Kimlik Bilgisi Yöneticisi'ni platform API'si olarak ekler ve Google Play Hizmetleri'ni kullanan bir Jetpack Library aracılığıyla Android 4.4 (API düzeyi 19) cihazları için ek destek sağlar. Kimlik Bilgisi Yöneticisi, kullanıcı tarafından yapılandırılmış kimlik bilgisi sağlayıcıları aracılığıyla kimlik bilgilerini alıp depolayan API'lere sahip kullanıcıların oturum açmasını kolaylaştırmayı amaçlar. Kimlik Bilgisi Yöneticisi, tek bir API'de kullanıcı adı ve şifre, geçiş anahtarları ve birleşik oturum açma çözümleri (ör. Google ile Oturum Açma) dahil olmak üzere çoklu oturum açma yöntemlerini destekler.
Geçiş anahtarları birçok avantaj sunar. Örneğin, geçiş anahtarları endüstri standartlarına göre oluşturulur, farklı işletim sistemleri ve tarayıcı ekosistemlerinde çalışabilir ve hem web sitelerinde hem de uygulamalarda kullanılabilir.
Daha fazla bilgi için Kimlik Bilgisi Yöneticisi ve geçiş anahtarları dokümanlarına ve Kimlik Bilgisi Yöneticisi ve şifre anahtarları hakkındaki blog yayınına bakın.
Health Connect
Health Connect, kullanıcı sağlığı ve fitness verileri için cihaz üzerinde yer alan bir depodur. Kullanıcıların favori uygulamaları arasında veri paylaşmasını sağlar. Böylece, bu uygulamalarla hangi verileri paylaşmak istediklerini tek bir yerden kontrol edebilirler.
Health Connect, Android 14'ten önceki Android sürümlerini çalıştıran cihazlarda Google Play Store'dan uygulama olarak indirilebilir. Health Connect, Android 14'ten itibaren platformun bir parçasıdır ve Google Play sistem güncellemeleri üzerinden güncellemeleri ayrı bir indirme işlemi gerektirmeden alır. Bu özellik sayesinde Health Connect sık sık güncellenebilir ve uygulamalarınız Android 14 veya sonraki sürümleri çalıştıran cihazlarda Health Connect'in kullanılabilir olmasını sağlayabilir. Kullanıcılar, sistem ayarlarına entegre gizlilik denetimleri sayesinde Health Connect'e cihazlarındaki Ayarlar'dan erişebilir.


Health Connect, Android 14'te egzersiz rotaları gibi birçok yeni özellik sunuyor. Bu özellik sayesinde kullanıcılar antrenman rotalarını harita üzerinde görsel olarak paylaşabilir. Rota, belirli bir zaman dilimi içinde kaydedilen konumların listesi olarak tanımlanır ve uygulamanız egzersiz oturumlarına rota ekleyebilir ve bunları birbirine bağlayabilir. Kullanıcıların bu hassas veriler üzerinde tam kontrole sahip olması için, ayrı rotaların diğer uygulamalarla paylaşılmasına izin vermesi gerekir.
Daha fazla bilgi için Health Connection dokümanlarına ve Android Health'teki yenilikler konulu blog yayınına göz atın.
OpenJDK 17 güncellemeleri
Android 14, uygulama ve platform geliştiricileri için hem kitaplık güncellemeleri hem de Java 17 dil desteği dahil olmak üzere Android'in temel kitaplıklarını en son OpenJDK LTS sürümlerindeki özelliklere uygun olacak şekilde yenileme çalışmalarına devam ediyor.
Aşağıdaki özellikler ve iyileştirmeler dahildir:
- Yaklaşık 300
java.base
sınıfı, Java 17 desteği olarak güncellendi. - Metin Blokları, Java programlama diline çok satırlı dize değişmez değerleri kazandırır.
- Örnek için Kalıp Eşleştirme: Bir nesnenin ek değişken olmadan
instanceof
içinde belirli bir türe sahip olarak değerlendirilmesini sağlar. - Gizli sınıflar: Bu özellik, bunları genişletebilecek veya uygulayabilecek sınıfları ve arayüzleri kısıtlamanızı sağlar.
Google Play sistem güncellemeleri (Project Mainline) sayesinde 600 milyondan fazla cihazın, bu değişiklikleri içeren en son Android Runtime (ART) güncellemelerini alabilmesi sağlandı. Bu, uygulamalara tüm cihazlarda daha tutarlı ve güvenli bir ortam sunma ve kullanıcılara platform sürümlerinden bağımsız olarak yeni özellikler ile işlevler sunma taahhüdümüz kapsamındadır.
Java ve OpenJDK, Oracle ve/veya satış ortaklarının ticari markaları veya tescilli ticari markalarıdır.
Uygulama mağazaları için iyileştirmeler
Android 14, uygulama mağazalarının kullanıcı deneyimini iyileştirmesini sağlayan çeşitli yeni PackageInstaller
API'lerini kullanıma sunar.
İndirmeden önce yükleme onayı iste
Uygulama yüklemek veya güncellemek için kullanıcı onayı gerekebilir.
Örneğin, REQUEST_INSTALL_PACKAGES
iznini kullanan bir yükleyici yeni bir uygulamayı yüklemeye çalıştığında. Önceki Android sürümlerinde uygulama mağazaları yalnızca APK'lar yükleme oturumuna yazıldıktan ve oturum uygulandıktan sonra kullanıcı onayı isteyebilir.
Android 14'ten itibaren requestUserPreapproval()
yöntemi, yükleyicilerin yükleme oturumunu gerçekleştirmeden önce kullanıcı onayı istemesine olanak tanır. Bu iyileştirme sayesinde uygulama mağazası, kullanıcı tarafından onaylanana kadar APK'ların indirilmesini erteleyebilir. Dahası, kullanıcı yüklemeyi onayladıktan sonra uygulama mağazası, kullanıcının işini kesintiye uğratmadan arka planda uygulamayı indirip yükleyebilir.
Gelecekteki güncellemelerde sorumluluk üstlenin
Yeni setRequestUpdateOwnership()
yöntemi, yükleyicinin sisteme, yüklediği uygulamanın gelecekteki güncellemelerinden sorumlu olduğunu belirtmesine olanak tanır. Bu özellik, güncelleme sahipliklerini zorunlu kılmaya olanak tanır. Yani yalnızca güncelleme sahibinin uygulamaya otomatik güncellemeler yüklemesine izin verilir. Güncelleme sahiplik zorunluluğu, kullanıcıların yalnızca beklenen uygulama mağazasından güncelleme almasını sağlamaya yardımcı olur.
INSTALL_PACKAGES
iznini kullananlar da dahil olmak üzere diğer yükleyicilerin bir güncellemeyi yükleyebilmek için kullanıcılardan açık onay almaları gerekir.
Bir kullanıcı, başka bir kaynaktan güncelleme yapmaya karar verirse güncelleme sahipliği kaybolur.
Uygulamaları rahatsız edici olmayan zamanlarda güncelleme
Uygulama mağazaları, aktif olarak kullanılmakta olan bir uygulamayı güncellemekten genellikle kaçınmak ister. Bunun nedeni, uygulamanın çalışan süreçlerinin sonlandırılmasına ve bu da kullanıcının yaptığı işinin kesintiye uğramasına neden olabilir.
InstallConstraints
API, Android 14'ten itibaren yükleyicilere uygulama güncellemelerinin uygun bir anda gerçekleşmesini sağlayacak bir yöntem sunar. Örneğin bir uygulama mağazası, yalnızca kullanıcının söz konusu uygulamayla etkileşimde bulunmadığında güncelleme yapıldığından emin olmak için commitSessionAfterInstallConstraintsAreMet()
yöntemini çağırabilir.
İsteğe bağlı bölmeleri sorunsuz şekilde yükleyin
Bölünmüş APK'larla bir uygulamanın özellikleri, monolitik APK yerine ayrı APK dosyalarında sunulabilir. Bölünmüş APK'lar, uygulama mağazalarının farklı uygulama bileşenlerinin sunumunu optimize etmesini sağlar. Örneğin, uygulama mağazaları, hedef cihazın
özelliklerine göre optimizasyon yapabilir. PackageInstaller
API, API düzeyi 22'de kullanıma sunulduğundan beri bölmeleri desteklemektedir.
Android 14'te setDontKillApp()
yöntemi, yükleyicinin yeni bölmeler yüklendiğinde uygulamanın çalışan işlemlerinin sonlandırılmaması gerektiğini belirtmesini sağlar. Uygulama mağazaları, bir kullanıcının uygulamayı kullanırken yeni özelliklerini sorunsuz bir şekilde yüklemek için bu özelliği kullanabilir.
Uygulama meta veri paketleri
Android paket yükleyici, Android 14'ten itibaren uygulama mağazası sayfalarına eklemek üzere veri güvenliği uygulamaları gibi uygulama meta verilerini belirtmenize olanak tanır.
Kullanıcılar cihaz ekran görüntüsü aldığında bunu algıla
To create a more standardized experience for detecting screenshots, Android 14 introduces a privacy-preserving screenshot detection API. This API lets apps register callbacks on a per-activity basis. These callbacks are invoked, and the user is notified, when the user takes a screenshot while that activity is visible.
Kullanıcı deneyimi
Sharesheet özel işlemleri ve iyileştirilmiş sıralama
Android 14, sistem paylaşım sayfasını özel uygulama işlemlerini ve kullanıcılar için daha bilgilendirici önizleme sonuçlarını destekleyecek şekilde günceller.
Özel işlem ekleyin
Android 14'te uygulamanız, çağrı yaptığı sistem paylaşım sayfasına özel işlemler ekleyebilir. İşlemleri paylaşım sayfalarıyla özelleştirmek için ChooserAction.Builder
özelliğini kullanarak özel ChooserAction
oluşturun ve Intent.createChooser
ile oluşturulan Intent
öğesinin Intent.EXTRA_CHOOSER_CUSTOM_ACTIONS
listesini
kullanarak ChooserActions
listenizi belirtin.

Doğrudan Paylaşım hedeflerinin sıralamasını iyileştirme
Android 14, kullanıcıya daha faydalı sonuçlar sağlamak amacıyla doğrudan paylaşım hedeflerinin sıralamasını belirlemek için uygulamalardan daha fazla sinyal kullanır. Sıralama için en faydalı sinyali sağlamak amacıyla, kullanıcı bir kişiye mesaj gönderdiğinde pushDynamicShortcut
ve ilgili kısayolla çağrı göndererek kısayol kullanımını raporlayın ve ShortcutInfoCompat.Builder#addCapabilityBinding("actions.intent.SEND_MESSAGE")
çağrısı yaparak bu kısayola karşılık gelen özellikleri "actions.intent.SEND_MESSAGE" ekleyin.
Tahmine Dayalı Geri özelliği için yerleşik ve özel animasyonlar için destek
Android 13'te, bir geliştirici seçeneğinin arkasında tahmine dayalı eve geri dönüş animasyonu kullanıma sunuldu. Geri kaydırma, geliştirici seçeneği etkin şekilde desteklenen bir uygulamada kullanıldığında, geri kaydırma hareketinin uygulamadan tekrar ana ekrana döndüğünü belirten bir animasyon gösterir.
Android 14, Estimateive Back için birçok iyileştirme ve yeni kılavuz içerir:
android:enableOnBackInvokedCallback=true
'i uygulamanın tamamı yerine Etkinlik başına tahmine dayalı geri sistem animasyonlarını etkinleştirecek şekilde ayarlayabilirsiniz.- Android 13'ten ana ekrana dönüş animasyonuna eşlik edecek yeni sistem animasyonları ekledik. Yeni sistem animasyonları, Estimateive Back'e taşıdıktan sonra otomatik olarak aldığınız çapraz etkinlikler ve görevler arasıdır.
- Alt sayfalar, Yan sayfalar ve Arama için yeni Malzeme Bileşeni animasyonları ekledik.
- Özel uygulama içi animasyonlar ve geçişler oluşturmak için tasarım rehberliği oluşturduk.
- Özel uygulama içi geçiş animasyonlarını desteklemek için yeni API'ler ekledik:
handleOnBackStarted
,handleOnBackProgressed
,handleOnBackCancelled
in
OnBackPressedCallback
onBackStarted
,onBackProgressed
,onBackCancelled
in
OnBackAnimationCallback
- Kullanıcı geri kaydırdığında yanıt veren geçişler için
overridePendingTransition
yerineoverrideActivityTransition
kullanın.
Bu Android 14 önizleme sürümünde tüm Recommendationive Back özellikleri, bir geliştirici seçeneğinin arkasında kalmaya devam edecektir. Uygulamanızı tahmine dayalı geri taşımaya yönelik geliştirici kılavuzunu ve özel uygulama içi geçişler oluşturmayla ilgili geliştirici kılavuzunu inceleyin.
Büyük ekran OEM'leri uygulama bazında geçersiz kılma
Uygulamaya özel geçersiz kılmalar, özgün donanım üreticilerinin (OEM'ler) büyük ekranlı cihazlardaki uygulamaların davranışını değiştirmesine olanak tanır. Örneğin, FORCE_RESIZE_APP
geçersiz kılması, uygulama manifest dosyasında resizeableActivity="false"
ayarlanmış olsa bile sisteme uygulamayı görüntülü reklam boyutlarına uyacak şekilde yeniden boyutlandırmasını sağlar (boyut uyumluluk modundan kaçınır).
Geçersiz kılmaların amacı, bozuk uygulama davranışını düzeltmek veya büyük ekranlarda kullanıcı deneyimini iyileştirmektir.
Yeni manifest özellikleri, uygulamanız için OEM geçersiz kılmalarını devre dışı bırakmanıza olanak tanır.
Uygulama başına büyük ekran kullanıcı geçersiz kılmaları
Per-app overrides change the behavior of apps on large screen devices. For example, the OVERRIDE_MIN_ASPECT_RATIO_LARGE
device manufacturer override sets the app aspect ratio to 16:9 regardless of the app's configuration.
Android 14 QPR1 enables users to apply per‑app overrides by means of a new settings menu on large screen devices.
Kısmi ekran paylaşımı
Kısmi ekran paylaşımı, kullanıcıların ekran içeriği kaydı sırasında cihazın ekranının tamamı yerine bir uygulama penceresini paylaşmasına olanak tanır.
Kısmi ekran paylaşımında durum çubuğu, gezinme çubuğu, bildirimler ve diğer sistem kullanıcı arayüzü öğeleri paylaşılan ekrandan hariç tutulur. Yalnızca seçili uygulamanın içeriği paylaşılır.
Kısmi ekran paylaşımı, kullanıcıların birden fazla uygulamayı çalıştırmasını sağlarken içerik paylaşımını tek bir uygulama ile sınırlandırarak üretkenliği ve gizliliği artırır.
Görseller
Yollar artık sorgulanabilir ve interpolasyon özelliklidir
Android'in Path
API'si, vektör grafikleri oluşturmak ve oluşturmak için kullanılan güçlü ve esnek bir mekanizmadır. Vektör grafiklerinin oluşturulması ve oluşturulması için tasarlanan bu mekanizma, çizgi parçalarından ya da ikinci dereceden veya kübik eğrilerden yol çizme, daha da karmaşık şekiller elde etmek için boole işlemleri gerçekleştirme veya bunların hepsini aynı anda yapma özelliklerine sahiptir. Sınırlamalardan biri, bir Yol nesnesinin gerçekte ne olduğunu bulabilmektir; nesnenin iç öğeleri, oluşturulduktan sonra çağrıcılara karşı opaktır.
Path
oluşturmak için yol segmentleri eklemek üzere
moveTo()
,
lineTo()
ve
cubicTo()
gibi yöntemleri çağırırsınız. Ancak bu yola segmentlerin ne olduğunu sormanın bir yolu yoktu, bu nedenle
bu bilgileri oluşturma anında saklamanız gerekiyor.
Android 14'ten itibaren, yolların içinde ne olduğunu öğrenmek için yolları sorgulayabilirsiniz.
Öncelikle Path.getPathIterator
API'sini kullanarak bir PathIterator
nesnesi almanız gerekir:
Kotlin
val path = Path().apply { moveTo(1.0f, 1.0f) lineTo(2.0f, 2.0f) close() } val pathIterator = path.pathIterator
Java
Path path = new Path(); path.moveTo(1.0F, 1.0F); path.lineTo(2.0F, 2.0F); path.close(); PathIterator pathIterator = path.getPathIterator();
Ardından, her segment için gerekli tüm verileri alarak segmentler arasında tek tek yineleme yapmak üzere PathIterator
yöntemini çağırabilirsiniz. Bu örnekte, verileri sizin için paketleyen PathIterator.Segment
nesneleri kullanılmaktadır:
Kotlin
for (segment in pathIterator) { println("segment: ${segment.verb}, ${segment.points}") }
Java
while (pathIterator.hasNext()) { PathIterator.Segment segment = pathIterator.next(); Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints()); }
PathIterator
ayrıca, nokta verilerini saklamak için bir arabellek iletebileceğiniz ayırmasız bir next()
sürümüne de sahiptir.
Path
verilerinin sorgulanmasında önemli kullanım alanlarından biri interpolasyondur. Örneğin, iki farklı yol arasında animasyon uygulamak (veya morph) uygulamak isteyebilirsiniz. Bu kullanım alanını daha da basitleştirmek için Android 14'ün Path
platformunda yeni bir interpolate()
yöntemi de bulunmaktadır.
İki yolun aynı dahili yapıya sahip olduğu varsayıldığında, interpolate()
yöntemi bu interpolasyon sonucuyla yeni bir Path
oluşturur. Bu örnek, path
ile otherPath
arasında şekli yarıda olan (0,5 doğrusal interpolasyon) olan bir yolu döndürür:
Kotlin
val interpolatedResult = Path() if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, .5f, interpolatedResult) }
Java
Path interpolatedResult = new Path(); if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, 0.5F, interpolatedResult); }
Şu anda alfa sürümünde kullanılabilen Jetpack graphics-path kitaplığı, Android'in önceki sürümleri için de benzer API'ler sağlar.
Köşe noktası ve parça gölgelendiriciler içeren özel örgüler
Android, özel gölgelendirmeye sahip çizim üçgen örgülerini uzun süredir desteklemektedir. Ancak giriş örgü biçimi, önceden tanımlanmış birkaç özellik kombinasyonuyla sınırlandırılmıştır.
Android 14'te, üçgenler veya üçgen şeritler olarak tanımlanabilen ve isteğe bağlı olarak dizine eklenebilen özel örgüler desteği sunulmaktadır. Bu ağlar özel özellikler, köşe adımları, değişken ve AGSL'de yazılan köşe ve parça gölgelendiricilerle belirtilir. Köşe gölgelendiricisi, konum ve renk gibi değişiklikleri tanımlarken parça gölgelendiricisi, isteğe bağlı olarak pikselin rengini tanımlayabilir. Bunun için tipik olarak köşe gölgelendirici tarafından oluşturulan değişiklikleri kullanır. Renk, parça gölgelendirici tarafından sağlanırsa örgü çizerken seçilen karma modu kullanılarak mevcut Paint
rengiyle karıştırılır. Üniformalar, daha fazla esneklik için parçaya ve köşe gölgelendiricilere geçirilebilir.
Tuval için donanım arabelleği oluşturucu
To assist in using Android's Canvas
API to draw with
hardware acceleration into a HardwareBuffer
, Android 14
introduces HardwareBufferRenderer
. This API is
particularly useful when your use case involves communication with the system
compositor through SurfaceControl
for low-latency
drawing.