Android 14, geliştiriciler için harika özellikler ve API'ler sunuyor. Aşağıdaki yardım kaynakları, uygulamalarınızdaki özellikler hakkında bilgi edinmenize ve ilgili API'leri kullanmaya başlamanıza yardımcı olur.
Eklenen, değiştirilen ve kaldırılan API'lerin ayrıntılı listesi için API farklılıkları raporunu inceleyin. Eklenen API'lerle ilgili ayrıntılar için Android API referansını ziyaret edin. Android 14 için API düzeyi 34'te eklenen API'leri bulun. Platform değişikliklerinin uygulamalarınızı etkileyebileceği alanlar hakkında bilgi edinmek için Android 14'ü hedefleyen uygulamalarda ve tüm uygulamalarda Android 14 davranış değişikliklerini inceleyin.
Uluslararası hale getirme
Uygulamaya özgü dil tercihleri
Android 14, Android 13'te (API düzeyi 33) kullanıma sunulan uygulama başına dil özelliklerini aşağıdaki ek özelliklerle genişletir:
Uygulamanın
localeConfigdosyasını otomatik olarak oluşturma: Android Studio Giraffe Canary 7 ve AGP 8.1.0-alpha07'den itibaren uygulamanızı uygulama başına dil tercihlerini otomatik olarak destekleyecek şekilde yapılandırabilirsiniz. Android Gradle eklentisi, proje kaynaklarınızı temel alarakLocaleConfigdosyasını oluşturur ve nihai manifest dosyasına bu dosyaya referans ekler. Böylece artık dosyayı manuel olarak oluşturmanız veya güncellemeniz gerekmez. AGP,LocaleConfigdosyasına eklenecek yerel ayarları belirlemek için uygulama modüllerinizinresklasörlerindeki kaynakları ve kitaplık modülü bağımlılıklarını kullanır.Uygulamanın
localeConfigiçin dinamik güncellemeler:LocaleManager'dekisetOverrideLocaleConfig()vegetOverrideLocaleConfig()yöntemlerini kullanarak uygulamanızın desteklenen diller listesini cihazın sistem ayarlarında dinamik olarak güncelleyin. Bu esnekliği kullanarak bölgeye göre desteklenen diller listesini özelleştirebilir, A/B denemeleri çalıştırabilir veya uygulamanız yerelleştirme için sunucu tarafı push'ları kullanıyorsa güncellenmiş bir yerel ayar listesi sağlayabilirsiniz.Giriş yöntemi düzenleyiciler (IME'ler) için uygulama dili görünürlüğü: IME'ler, mevcut uygulamanın dilini kontrol etmek ve IME dilini bu dille eşleştirmek için
getApplicationLocales()yöntemini kullanabilir.
Grammatical Inflection API
3 milyar insan cinsiyete dayalı diller konuşuyor: İsim, fiil, sıfat ve edat gibi dil bilgisi kategorilerinin, konuştuğunuz veya bahsettiğiniz kişilerin ve nesnelerin cinsiyetine göre değiştiği diller. Cinsiyetli dillerin çoğunda, geleneksel olarak varsayılan veya genel cinsiyet olarak eril dil bilgisi cinsiyeti kullanılır.
Kullanıcılara yanlış dil bilgisi cinsiyetiyle hitap etmek (ör. kadınları eril dil bilgisi cinsiyetiyle hitap etmek) performanslarını ve tutumlarını olumsuz yönde etkileyebilir. Buna karşılık, kullanıcının dil bilgisi açısından cinsiyetini doğru yansıtan bir kullanıcı arayüzü, kullanıcı etkileşimini artırabilir ve daha kişiselleştirilmiş ve doğal bir kullanıcı deneyimi sunabilir.
Android 14, cinsiyetli diller için kullanıcı odaklı bir kullanıcı arayüzü oluşturmanıza yardımcı olmak amacıyla Gramatik Eğim API'yi kullanıma sunar. Bu API, uygulamanızı yeniden düzenlemeden dil bilgisi cinsiyeti desteği eklemenize olanak tanır.
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ştirmesine olanak tanır. ABD'de yaşayan Avrupalı sıcaklık biriminin Fahrenhayt yerine Santigrat cinsinden olmasını tercih edebilir ABD'de varsayılan gün yerine pazartesi günü kabul etmesini sağlayan uygulamalar Pazar.
Bu tercihler için yeni Android Ayarlar menüleri, kullanıcılara uygulama tercihlerini değiştirebilecekleri keşfedilebilir ve merkezi bir konum sunar. Bu tercihler, yedekleme ve geri yükleme sırasında da korunur. Çeşitli API ve
hedefler (ör.
getTemperatureUnit
ve
getFirstDayOfWeek -
uygulamanıza kullanıcı tercihlerine okuma erişimi verebilirsiniz, böylece uygulamanız
bilgileri görüntüler. Ayrıca bir
BroadcastReceiver açık
ACTION_LOCALE_CHANGED
kullanın.
Bu ayarları bulmak için Ayarlar uygulamasını açın ve Sistem > Diller ve giriş > Bölgesel tercihler.
Erişilebilirlik
%200'e kadar doğrusal olmayan yazı tipi ölçeklendirme
从 Android 14 开始,系统支持字体放大高达 200%,为用户提供了其他无障碍功能选项。
为防止屏幕上的大文本元素过于放大,系统会采用非线性放大曲线。这种放大策略意味着大号文本的放大比例不会与较小的文本相同。非线性字体放大有助于保持不同大小元素之间的比例层次结构,同时缓解高级别线性文本放大存在的问题(例如文本被截断或文本因非常大的显示大小而难以阅读)。
使用非线性字体放大测试应用
如果您已使用可缩放像素 (sp) 单位来定义文本大小,那么这些额外的选项和缩放改进会自动应用于应用中的文本。不过,您仍应在启用最大字体大小 (200%) 的情况下执行界面测试,以确保应用正确应用字体大小,并且可以容纳更大的字体大小,而不会影响易用性。
要启用 200% 字号,请按以下步骤操作:
- 打开“设置”应用,然后依次前往无障碍 > 显示大小和文字。
- 在字号选项中,点按加号 (+) 图标,直到启用最大字号设置,如本部分随附的图片所示。
针对文本大小使用放大像素 (sp) 单位
请务必始终以 sp 为单位指定文本大小。当应用使用 sp 单位时,Android 可以应用用户的首选文本大小,并相应地进行缩放。
不要为内边距使用 sp 单位,也不要定义假设存在隐式内边距的视图高度:使用非线性字体放大 sp 尺寸可能并不成比例,因此 4sp + 20sp 可能并不等于 24sp。
转换放大像素 (sp) 单位
使用 TypedValue.applyDimension() 从 sp 单位转换为像素,并使用 TypedValue.deriveDimension() 将像素转换为 sp。这些方法会自动应用适当的非线性放大曲线。
避免使用 Configuration.fontScale 或 DisplayMetrics.scaledDensity 对等式进行硬编码。由于字体放大是非线性的,因此 scaledDensity 字段不再准确。fontScale 字段应仅用于提供信息,因为字体不再使用单个标量值进行缩放。
针对 lineHeight 使用 sp 单位
请始终使用 sp 单位(而非 dp)定义 android:lineHeight,以便行高随文本一起缩放。否则,如果您的文字是 sp,但 lineHeight 是 dp 或像素,则文字不会缩放,看起来会很拥挤。
TextView 会自动更正 lineHeight,以便保留您预期的比例,但前提是 textSize 和 lineHeight 均以 sp 单位定义。
Kamera ve medya içerikleri
Resimler için Ultra HDR
Android 14, fotoğraf çekerken sensörden daha fazla bilginin korunmasını sağlayan ve canlı renkler ile daha yüksek kontrast sağlayan Yüksek Dinamik Aralık (HDR) resimleri için destek ekler. Android, JPEG resimleriyle tamamen geriye dönük uyumlu olan Ultra HDR biçimini kullanır. Bu biçim, uygulamaların HDR resimlerle sorunsuz bir şekilde birlikte çalışmasını sağlar ve gerektiğinde resimleri Standart Dinamik Aralık (SDR) olarak gösterir.
Uygulamanız, etkinlik aralığı için HDR kullanıcı arayüzünü kullanmayı bir manifest girişi aracılığıyla veya çalışma zamanında Window.setColorMode() çağrısı yaparak etkinleştirdiğinde bu resimlerin 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 fotoğraflar da çekebilirsiniz. Sensörden daha fazla renk elde edildiğinde, düzenleme işlemi daha esnek olabilir. Ultra HDR resimlerle ilişkili Gainmap, OpenGL veya Vulkan kullanılarak oluşturulmak için kullanılabilir.
Kamera uzantılarında yakınlaştırma, odaklama, son görüntü ve daha fazlası
Android 14, kamera uzantılarını yükselterek ve iyileştirerek uygulamaların daha uzun işlem sürelerini yönetmesine olanak tanır. Bu sayede, desteklenen cihazlarda düşük ışıkta fotoğrafçılık gibi yoğun bilgi işlem gerektiren algoritmalar kullanılarak daha iyi görüntüler elde edilebilir. 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 fotoğraf çekme işlemi gecikmesi tahmini, mevcut sahneye ve çevre koşullarına göre çok daha doğru fotoğraf çekme işlemi gecikmesi tahminleri sağlar. İki gecikme tahmini yöntemi olan bir
StillCaptureLatencynesnesi almak içinCameraExtensionSession.getRealtimeStillCaptureLatency()işlevini çağırın.getCaptureLatency()yöntemi,onCaptureStartedileonCaptureProcessStarted()arasındaki tahmini gecikmeyi döndürür.getProcessingLatency()yöntemi iseonCaptureProcessStarted()ile işlenmiş son karenin kullanılabilir hale gelmesi arasındaki tahmini gecikmeyi döndürür. - Uygulamaların uzun süren, hareketsiz görüntü yakalama işlemlerinin mevcut ilerleme durumunu gösterebilmesi için yakalama ilerleme durumu geri çağırma işlevi desteği. Bu özelliğin
CameraExtensionCharacteristics.isCaptureProcessProgressAvailableile kullanılıp kullanılamayacağını kontrol edebilirsiniz. Kullanılabilirse ilerleme durumunun (0 ila 100 arasında) parametre olarak iletildiğionCaptureProcessProgressed()geri çağırma işlevini uygulayabilirsiniz. Uzantılara özel meta veriler (ör.
EXTENSION_BOKEHile arka plan bulanıklaştırma miktarı gibi bir uzantı efektinin miktarını ayarlamak içinCaptureRequest.EXTENSION_STRENGTH).Kamera uzantılarında sabit resim çekme için son görüntüden daha hızlı ve daha az işlenmiş bir görüntü sağlayan son görüntü özelliği. Bir uzantı, işleme gecikmesini artırdıysa kullanıcı deneyimini iyileştirmek için yer tutucu olarak bir görüntü sonrası resim sağlanabilir ve daha sonra nihai resimle değiştirilebilir. Bu özelliğin
CameraExtensionCharacteristics.isPostviewAvailableile kullanılıp kullanılamadığını kontrol edebilirsiniz. ArdındanExtensionSessionConfiguration.setPostviewOutputConfiguration'e birOutputConfigurationiletebilirsiniz.Daha optimize ve enerji tasarruflu bir önizleme oluşturma yolu sağlayan
SurfaceViewdesteği.Uzantı kullanımı sırasında dokunarak odaklama ve yakınlaştırma desteği.
Sensör içi yakınlaştırma
CameraCharacteristics içindeki REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW içeriyorsa uygulamanız, akış kullanım alanı CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW olarak ayarlanmış bir RAW hedefi içeren CaptureRequest kullanarak kırpılmış bir RAW akışına tam görüş alanı ile aynı pikselleri vermek için gelişmiş sensör özelliklerini kullanabilir.
Güncellenen kamera, istek geçersiz kılma denetimlerini uygulayarak kullanıcılara diğer kamera kontrolleri hazır olmadan önce bile yakınlaştırma kontrolü sunar.
Kayıpsız USB ses
Android 14 支持无损音频格式,可通过 USB 有线耳机提供发烧友级体验。您可以查询 USB 设备的首选混音器属性,注册监听器以监听首选混音器属性的更改,以及使用 AudioMixerAttributes 类配置混音器属性。此类表示音频混音器的格式,例如声道掩码、采样率和行为。该类允许直接发送音频,而无需混音、调节音量或处理效果。
Geliştirici üretkenliği ve araçları
Kimlik Bilgisi Yöneticisi
Android 14 将 Credential Manager 添加为平台 API,并通过使用 Google Play 服务的 Jetpack 库,向后额外支持 Android 4.4(API 级别 19)设备。Credential Manager 旨在通过 API 使用用户配置的凭据提供程序检索和存储凭据,让用户更轻松地登录。Credential Manager 在单个 API 中支持多种登录方法,包括用户名和密码、通行密钥和联合登录解决方案(如“使用 Google 账号登录”)。
通行密钥具有许多优势。例如,通行密钥是基于业界标准构建的,可在各种不同的操作系统和浏览器生态系统中使用,并且可用于网站和应用。
如需了解详情,请参阅 Credential Manager 和通行密钥文档以及介绍 Credential Manager 和通行密钥的博文。
ve geri yükleme
Health Connect, kullanıcıların sağlık ve fitness verilerini saklayan cihaz üzerinde bir depolama alanıdır. Bu sayede kullanıcılar, en sevdikleri uygulamalar arasında veri paylaşabilir ve bu uygulamalarla hangi verileri paylaşmak istediklerini tek bir yerden kontrol edebilir.
Android 14'ten önceki Android sürümlerini çalıştıran cihazlarda Health Connect, Google Play Store'dan uygulama olarak indirilebilir. Android 14'ten itibaren Health Connect, platformun bir parçasıdır ve ayrı bir indirme işlemi gerektirmeden Google Play sistem güncellemeleri aracılığıyla güncelleme alır. Bu sayede Health Connect sık sık güncellenebilir ve uygulamalarınız, Health Connect'in Android 14 veya sonraki sürümleri çalıştıran cihazlarda kullanılabildiğinden emin olabilir. Kullanıcılar, sistem ayarlarına entegre edilmiş gizlilik denetimleriyle cihazlarındaki Ayarlar'dan Health Connect'e erişebilir.
Health Connect, Android 14'te egzersiz rotaları gibi çeşitli yeni özellikler içerir. Bu özellikler sayesinde kullanıcılar, egzersiz rotalarını harita üzerinde görselleştirerek paylaşabilir. Rota, belirli bir zaman aralığında kaydedilen konumların listesi olarak tanımlanır. Uygulamanız, rotaları egzersiz oturumlarına ekleyerek bunları birbirine bağlayabilir. Kullanıcıların bu hassas veriler üzerinde tam kontrole sahip olması için kullanıcıların, rotaların tek tek diğer uygulamalarla paylaşılmasına izin vermesi gerekir.
Daha fazla bilgi için Health Connect dokümanlarına ve Android Sağlık'ta yenilikler başlıklı blog yayınına göz atın.
OpenJDK 17 güncellemeleri
Android 14, Android'in temel kitaplıklarını en son OpenJDK LTS sürümlerindeki özelliklerle uyumlu hale getirmek için yenileme çalışmalarına devam ediyor. Bu çalışmalara hem kitaplık güncellemeleri hem de uygulama ve platform geliştiricileri için Java 17 dil desteği dahildir.
Aşağıdaki özellikler ve iyileştirmeler dahildir:
- Yaklaşık 300
java.basesınıfı Java 17 desteği için güncellendi. - Java programlama diline çok satırlı dize değişmezleri getiren metin blokları.
- instanceof için kalıp eşleştirme: Bir nesnenin
instanceofiçinde ek değişkenler olmadan belirli bir türe sahipmiş gibi değerlendirilmesine olanak tanır. - Hangi sınıfların ve arayüzlerin bunları genişletebileceğini veya uygulayabileceğini kısıtlamanıza olanak tanıyan mühürlü sınıflar.
Google Play sistem güncellemeleri (Mainline projesi) sayesinde 600 milyondan fazla cihaz, bu değişiklikleri içeren en son Android Runtime (ART) güncellemelerini alabilir. Bu, uygulamalara cihazlar genelinde daha tutarlı ve güvenli bir ortam sunma ve kullanıcılara platform sürümlerinden bağımsız olarak yeni özellikler ve özellikler sunma taahhüdümüzün bir parçasıdır.
Java ve OpenJDK, Oracle ve/veya satış ortaklarının ticari markaları ya da tescilli ticari markalarıdır.
Uygulama mağazalarıyla ilgili iyileştirmeler
Android 14, uygulama mağazalarının kullanıcı deneyimini iyileştirmesine olanak tanıyan çeşitli PackageInstaller API'leri sunar.
İndirmeden önce yükleme onayı isteme
Uygulama yüklemek veya güncellemek için kullanıcı onayı gerekebilir.
Örneğin, REQUEST_INSTALL_PACKAGES iznini kullanan bir yükleyici yeni bir uygulama 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 taahhüt edildikten sonra kullanıcı onayı isteyebilir.
Android 14'ten itibaren requestUserPreapproval() yöntemi, yükleyicilerin yükleme oturumunu önce kullanıcı onayı istemesine olanak tanır. Bu iyileştirme, uygulama mağazalarının APK'ları yüklemeyi, yükleme işlemi kullanıcı tarafından onaylanana kadar ertelemelerine olanak tanır. Ayrıca, kullanıcı yüklemeyi onayladıktan sonra uygulama mağazası, kullanıcıyı rahatsız etmeden uygulamayı arka planda indirip yükleyebilir.
Gelecekteki güncellemeler için sorumluluk alma
setRequestUpdateOwnership() yöntemi, yükleyicinin yüklediği bir uygulamanın gelecekteki güncellemelerinden sorumlu olmayı amaçladığını sisteme belirtmesine olanak tanır. Bu özellik, güncelleme sahipliği yaptırımını etkinleştirir. Bu sayede, uygulamaya otomatik güncelleme yüklenmesine yalnızca güncelleme sahibinin izin verilir. Güncelleme sahipliği yaptırımı, kullanıcıların yalnızca beklenen uygulama mağazasından güncelleme almasını sağlar.
INSTALL_PACKAGES iznini kullananlar da dahil olmak üzere diğer tüm yükleyicilerin, güncelleme yüklemek için açık kullanıcı onayı alması gerekir. Kullanıcı başka bir kaynaktan güncelleme yapmaya karar verirse güncelleme sahipliği kaybedilir.
Uygulamaları kullanıcıların günlük rutinini etkilemeyecek zamanlarda güncelleme
Uygulama mağazaları, etkin olarak kullanılan bir uygulamanın güncellenmesini genellikle istemez. Bunun nedeni, uygulamanın çalışan işlemlerinin sonlandırılmasıdır. Bu da kullanıcının yaptığı işlemi kesintiye uğratabilir.
Android 14'ten itibaren InstallConstraints API, yükleyicilere uygulama güncellemelerinin uygun bir zamanda yapılmasını sağlamanın bir yolunu sunar. Örneğin, bir uygulama mağazası, bir güncellemenin yalnızca kullanıcı söz konusu uygulamayla etkileşimde bulunmadığında kaydolmasını sağlamak için commitSessionAfterInstallConstraintsAreMet() yöntemini çağırabilir.
İsteğe bağlı bölmelerin sorunsuz şekilde yüklenmesi
Bölünmüş APK'lar sayesinde, bir uygulamanın özellikleri tek bir APK yerine ayrı APK dosyalarında yayınlanabilir. Bölünmüş APK'lar, uygulama mağazalarının farklı uygulama bileşenlerinin dağıtımını optimize etmesine olanak tanır. Örneğin, uygulama mağazaları hedef cihazın özelliklerine göre optimizasyon yapabilir. PackageInstaller API, API düzeyi 22'de kullanıma sunulmasından bu yana bölünmeleri desteklemektedir.
Android 14'te setDontKillApp() yöntemi, yükleyicinin yeni bölümler yüklenirken uygulamanın çalışan işlemlerinin sonlandırılmaması gerektiğini belirtmesine olanak tanır. Uygulama mağazaları, kullanıcı uygulamayı kullanırken uygulamanın yeni özelliklerini sorunsuz bir şekilde yüklemek için bu özelliği kullanabilir.
Uygulama meta verileri paketleri
Android 14'ten itibaren Android paket yükleyici, Google Play gibi uygulama mağazası sayfalarına dahil edilecek uygulama meta verilerini (ör. veri güvenliği uygulamaları) belirtmenize olanak tanır.
Kullanıcıların cihaz ekran görüntüsü aldığını algılama
Android 14, ekran görüntülerinin algılanması için daha standart bir deneyim oluşturmak amacıyla gizliliği korumaya yönelik bir ekran görüntüsü algılama API'si sunuyor. Bu API, uygulamaların etkinlik bazında geri çağırma işlevleri kaydetmesine olanak tanır. Bu geri çağırmalar, kullanıcı bu etkinlik görünürken ekran görüntüsü aldığında çağrılır ve kullanıcı bilgilendirilir.
Kullanıcı deneyimi
Paylaşım sayfasındaki özel işlemler 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 ekleme
Android 14 ile uygulamanız, çağırdığı sistem paylaşım sayfasına özel işlemler ekleyebilir.
Doğrudan Paylaşım hedeflerinin sıralamasını iyileştirme
Android 14, kullanıcıya daha faydalı sonuçlar sunmak için doğrudan paylaşım hedeflerinin sıralamasını belirlemek amacıyla uygulamalardan daha fazla sinyal kullanır. Sıralama için en faydalı sinyali sağlamak üzere doğrudan paylaşım hedeflerinizin sıralamalarına ilişkin yönergeleri uygulayın. İletişim uygulamaları, giden ve gelen mesajlar için kısayol kullanımını da bildirebilir.
Tahmine dayalı geri hareketi için yerleşik ve özel animasyon desteği
Android 13, geliştirici seçeneğiyle birlikte tahmine dayalı ana sayfaya geri gitme animasyonunu kullanıma sundu. Geliştirici seçeneği etkinleştirilmiş desteklenen bir uygulamada geri kaydırılırken, geri hareketinin uygulamadan çıkıp ana ekrana döndüğünü belirten bir animasyon gösterilir.
Android 14, Tahmini Geri özelliği için birden fazla iyileştirme ve yeni rehberlik içerir:
android:enableOnBackInvokedCallback=trueayarını, uygulamanın tamamı yerine etkinlik başına tahmine dayalı geri sistem animasyonlarını etkinleştirmek için ayarlayabilirsiniz.- Android 13'teki ana sayfaya geri gitme animasyonuna eşlik edecek yeni sistem animasyonları ekledik. Yeni sistem animasyonları, etkinlik ve görevler arasıdır ve Tahmine Dayalı Geri Gitme'ye geçtikten sonra otomatik olarak sunulur.
- Alt sayfalar, yan sayfalar ve Arama için yeni Material bileşen animasyonlarını ekledik.
- Özel uygulama içi animasyonlar ve geçişler oluşturmak için tasarım kılavuzu hazırladık.
- Özel uygulama içi geçiş animasyonlarını desteklemek için yeni API'ler ekledik:
handleOnBackStarted,handleOnBackProgressed,handleOnBackCancelledinOnBackPressedCallbackonBackStarted,onBackProgressed,onBackCancelledinOnBackAnimationCallback- Kullanıcı geri kaydırdığında yanıt veren geçişler için
overridePendingTransitionyerineoverrideActivityTransitionkullanın.
Bu Android 14 önizleme sürümünde, Tahmini Geri Yükleme'nin tüm özellikleri geliştirici seçeneği olarak sunulur. Uygulamanızı tahmini geriye taşıma ile ilgili geliştirici kılavuzunu ve özel uygulama içi geçişler oluşturma ile ilgili geliştirici kılavuzunu inceleyin.
Büyük ekranlı cihaz üreticilerinin uygulama başına geçersiz kılmaları
Uygulama başına geçersiz kılma, cihaz üreticilerinin 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'inde resizeableActivity="false" ayarlanmış olsa bile sisteme uygulamayı ekran boyutlarına sığacak şekilde yeniden boyutlandırması (boyut uyumluluk modundan kaçınarak) talimatını verir.
Geçersiz kılma işlemleri, büyük ekranlarda kullanıcı deneyimini iyileştirmeyi amaçlar.
Yeni manifest özellikleri, uygulamanız için bazı cihaz üreticisi geçersiz kılma işlemlerini devre dışı bırakmanızı sağlar.
Büyük ekran kullanıcıları için uygulama başına geçersiz kılmalar
Uygulama başına geçersiz kılmalar, büyük ekranlı cihazlardaki uygulamaların davranışını değiştirir. Örneğin, OVERRIDE_MIN_ASPECT_RATIO_LARGE cihaz üreticisi geçersiz kılma, uygulamanın yapılandırmasından bağımsız olarak uygulamanın en-boy oranını 16:9 olarak ayarlar.
Android 14 QPR1, kullanıcıların büyük ekranlı cihazlarda yeni bir ayarlar menüsü aracılığıyla uygulama başına geçersiz kılma işlemleri uygulamasını sağlar.
Uygulama ekran paylaşımı
Uygulama ekran paylaşımı, kullanıcıların ekran içeriği kaydı sırasında cihaz ekranının tamamı yerine bir uygulama penceresini paylaşmasını sağlar.
Uygulama 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çilen uygulamanın içeriği paylaşılır.
Uygulama ekranı paylaşımı, kullanıcıların birden fazla uygulamayı çalıştırmasına olanak tanır ancak içerik paylaşımını tek bir uygulamayla sınırlandırır. Bu sayede üretkenliği ve gizliliği artırır.
Pixel 8 Pro'da Gboard'da LLM destekli Akıllı Yanıt
Aralık ayı özellik güncellemesini alan Pixel 8 Pro cihazlarda geliştiriciler, Google Tensor'da çalışan cihaz üzerinde büyük dil modelleri (LLM) tarafından desteklenen Gboard'da daha yüksek kaliteli akıllı yanıtları deneyebilir.
Bu özellik, WhatsApp, Line ve KakaoTalk'ta ABD İngilizcesi için sınırlı bir önizleme olarak sunulmaktadır. Klavyeniz olarak Gboard'u kullanan bir Pixel 8 Pro cihaz kullanmanız gerekir.
Bu özelliği denemek için önce Ayarlar > Geliştirici Seçenekleri > AICore Ayarları > Aicore Kalıcı'yı Etkinleştir'i seçerek özelliği etkinleştirin.
Ardından, desteklenen bir uygulamada bir ileti dizisi açın. Gboard'un öneri şeridinde, gelen iletilere yanıt olarak LLM destekli Akıllı Yanıt'ı görebilirsiniz.
Grafik
Yollar sorgulanabilir ve enterpolasyon yapılabilir
Android'in Path API'si, vektör grafikleri oluşturmaya ve oluşturmaya yönelik güçlü ve esnek bir mekanizmadır. Bir yolu çizme veya doldurma, çizgi segmentlerinden veya ikinci dereceden ya da kübik eğrilerden yol oluşturma, daha da karmaşık şekiller elde etmek için boole işlemleri veya bunların tümünü eş zamanlı olarak gerçekleştirme yeteneğine sahip. Bunun bir sınırlaması, Yol nesnesinde gerçekte neyin olduğunu bulma yeteneğidir. Nesnenin iç kısımları, oluşturulduktan sonra arayanlar için opak olur.
Path oluşturmak için moveTo(), lineTo() ve cubicTo() gibi yöntemleri çağırarak yol segmentleri ekleyebilirsiniz. Ancak bu yolda segmentlerin ne olduğunu sormanın bir yolu olmadığından, bu bilgileri oluşturma sırasında saklamanız gerekir.
Android 14'ten itibaren, içinde ne olduğunu öğrenmek için yolları sorgulayabilirsiniz.
Öncelikle, Path.getPathIterator API'yi 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();
Daha sonra, segmentleri tek tek güncellemek ve her bir segment için gerekli tüm verileri almak üzere PathIterator öğesini ç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, nokta verilerini tutmak için bir arabellek iletebileceğiniz, next()'un ayırt etmeyen bir sürümüne de sahiptir.
Path verilerini sorgulamanın önemli kullanım alanlarından biri de kesme noktasıdır. Örneğin, iki farklı yol arasında animasyon (veya morph) oluşturmak isteyebilirsiniz. Bu kullanım alanını daha da basitleştirmek için Android 14, Path üzerinde interpolate() yöntemini de içerir. İki yolun aynı dahili yapıya sahip olduğu varsayıldığında interpolate() yöntemi, ara değer alınan bu sonuçla yeni bir Path oluşturur. Bu örnek, şekli path ile otherPath arasında yarı yolda olan (0,5 değerinin doğrusal bir kesişimi) bir yol 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); }
Jetpack graphics-path kitaplığı, Android'in önceki sürümleri için de benzer API'leri etkinleştirir.
Köşe ve parça gölgelendiricileri içeren özel ağlar
Android, özel gölgelemeyle üçgen ağ çizmeyi uzun süredir destekliyordu ancak giriş ağı biçimi, önceden tanımlanmış birkaç özellik kombinasyonuyla sınırlıydı. Android 14, üçgenler veya üçgen şeritler olarak tanımlanabilen ve isteğe bağlı olarak dizine eklenebilen özel ağlar için destek ekler. Bu ağlar, özel özellikler, köşe adımları, değişken ve AGSL'de yazılmış köşe ve parçacık gölgelendiricileriyle belirtilir.
Köşe noktası gölgelendirici, konum ve renk gibi değişkenleri tanımlar. Öte yandan, parçacık gölgelendirici, isteğe bağlı olarak pikselin rengini tanımlayabilir. Bu işlem genellikle köşe noktası gölgelendirici tarafından oluşturulan değişkenleri kullanarak yapılır. Renk, parçacık gölgelendirici tarafından sağlanırsa örgeyi çizerken seçilen karışım modu kullanılarak mevcut Paint rengiyle karıştırılır. Üniformalar, ek esneklik için parça ve köşe üstü gölgelendiricilere iletilebilir.
Canvas için donanım arabelleği oluşturucu
协助使用 Android 的 Canvas API 通过
硬件加速至 HardwareBuffer、Android 14
引入了 HardwareBufferRenderer。如果您的用例涉及通过 SurfaceControl 与系统合成器通信以实现低延迟绘制,此 API 特别有用。