Özelliklere ve API'lere Genel Bakış

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ı olarak LocaleConfig 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üllerinizin res 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ında setOverrideLocaleConfig() ve getOverrideLocaleConfig() 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.

Android sistem ayarlarındaki bölgesel tercihler ekranı.
Android sistem ayarlarındaki bölgesel tercihler için sıcaklık seçenekleri.

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

Uygulamanızı test etmek için cihazın erişilebilirlik ayarlarında maksimum yazı tipi boyutunu etkinleştirin.

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:

  1. Ayarlar uygulamasını açıp Erişilebilirlik > Görüntü boyutu ve metin'e gidin.
  2. 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

Standart Dinamik Aralık (SDR) ile Yüksek Dinamik Aralık (HDR) resim kalitesinin karşılaştırmasını gösteren görsel.

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:

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.

Kullanıcılar, Android 14 veya sonraki sürümleri çalıştıran cihazlarda ayrı bir uygulama indirmeden Health Connect'i kullanmaya başlayabilir.
Kullanıcılar, sistem ayarları üzerinden sağlık ve fitness verilerine hangi uygulamaların erişebileceğini kontrol edebilirler.

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.

Bu resimde, kullanıcının bir kişinin resmini paylaşması sonucunda uygulamada gösterilen paylaşım sayfası gösterilmektedir. Paylaşım sayfasında, resmin paylaşılacağı olası kişileri ve uygulamaları temsil eden birden fazla simge görüntülenir.

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

Video: Tahmini geri animasyonları

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:

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.