Özelliklere ve API'lere Genel Bakış

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 localeConfig dosyası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 alarak LocaleConfig dosyası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, LocaleConfig dosyasına eklenecek yerel ayarları belirlemek için uygulama modüllerinizin res klasörlerindeki kaynakları ve kitaplık modülü bağımlılıklarını kullanır.

  • Uygulamanın localeConfig için dinamik güncellemeler: LocaleManager'deki setOverrideLocaleConfig() ve getOverrideLocaleConfig() 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

用户可通过地区偏好设置对温度单位、一周的第一天和编号系统进行个性化设置。居住在美国的欧洲用户可能更希望使用摄氏度,而不是华氏度,并且希望应用将星期一视为一周的开始,而不是像美国那样默认从星期日开始。

新 Android 设置菜单包含这些偏好设置,使用户能够在一个位置集中发现这些应用更改偏好设置。这些偏好设置在备份和恢复设备后也会保持不变。多个 API 和 intent(例如 getTemperatureUnitgetFirstDayOfWeek)会为您的应用授予读取权限来访问用户偏好设置,因此您的应用可以调整其显示信息的方式。您还可以在 ACTION_LOCALE_CHANGED 上注册 BroadcastReceiver,以便在地区偏好设置发生更改时处理语言区域配置更改。

如需找到这些设置,请打开“设置”应用,然后依次前往系统 > 语言和输入法 > 地区偏好设置

Android 系统设置中的地区偏好设置界面。
Android 系统中地区偏好设置的温度选项 设置。

Erişilebilirlik

%200'e kadar doğrusal olmayan yazı tipi ölçeklendirme

从 Android 14 开始,系统支持字体放大高达 200%,为用户提供了其他无障碍功能选项。

为防止屏幕上的大文本元素过于放大,系统会采用非线性放大曲线。这种放大策略意味着大号文本的放大比例不会与较小的文本相同。非线性字体放大有助于保持不同大小元素之间的比例层次结构,同时缓解高级别线性文本放大存在的问题(例如文本被截断或文本因非常大的显示大小而难以阅读)。

使用非线性字体放大测试应用

在设备的无障碍设置中启用最大字号,以测试应用。

如果您已使用可缩放像素 (sp) 单位来定义文本大小,那么这些额外的选项和缩放改进会自动应用于应用中的文本。不过,您仍应在启用最大字体大小 (200%) 的情况下执行界面测试,以确保应用正确应用字体大小,并且可以容纳更大的字体大小,而不会影响易用性。

要启用 200% 字号,请按以下步骤操作:

  1. 打开“设置”应用,然后依次前往无障碍 > 显示大小和文字
  2. 字号选项中,点按加号 (+) 图标,直到启用最大字号设置,如本部分随附的图片所示。

针对文本大小使用放大像素 (sp) 单位

请务必始终以 sp 为单位指定文本大小。当应用使用 sp 单位时,Android 可以应用用户的首选文本大小,并相应地进行缩放。

不要为内边距使用 sp 单位,也不要定义假设存在隐式内边距的视图高度:使用非线性字体放大 sp 尺寸可能并不成比例,因此 4sp + 20sp 可能并不等于 24sp。

转换放大像素 (sp) 单位

使用 TypedValue.applyDimension() 从 sp 单位转换为像素,并使用 TypedValue.deriveDimension() 将像素转换为 sp。这些方法会自动应用适当的非线性放大曲线。

避免使用 Configuration.fontScaleDisplayMetrics.scaledDensity 对等式进行硬编码。由于字体放大是非线性的,因此 scaledDensity 字段不再准确。fontScale 字段应仅用于提供信息,因为字体不再使用单个标量值进行缩放。

针对 lineHeight 使用 sp 单位

请始终使用 sp 单位(而非 dp)定义 android:lineHeight,以便行高随文本一起缩放。否则,如果您的文字是 sp,但 lineHeight 是 dp 或像素,则文字不会缩放,看起来会很拥挤。 TextView 会自动更正 lineHeight,以便保留您预期的比例,但前提是 textSizelineHeight 均以 sp 单位定义。

Kamera ve medya içerikleri

Resimler için Ultra HDR

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

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:

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 kablolu kulaklıklarda ses kalitesini artıran kayıpsız ses biçimlerini destekler. USB cihazı tercih edilen karıştırıcı özellikleri için sorgulayabilir, tercih edilen karıştırıcı özelliklerindeki değişiklikler için bir dinleyici kaydedebilir ve AudioMixerAttributes sınıfını kullanarak karıştırıcı özelliklerini yapılandırabilirsiniz. Bu sınıf, ses karıştırıcının kanal maskesi, örnekleme hızı ve davranışı gibi biçimi temsil eder. Sınıf, karıştırma, ses seviyesi ayarı veya işleme efektleri olmadan seslerin doğrudan gönderilmesine olanak tanır.

Geliştirici üretkenliği ve araçları

Kimlik Bilgisi Yöneticisi

Android 14, platform API'si olarak Kimlik Bilgisi Yöneticisi'ni ekler. Google Play Hizmetleri'ni kullanan bir Jetpack Kitaplığı aracılığıyla Android 4.4 (API düzeyi 19) cihazlara ek destek sağlanır. Kimlik Bilgisi Yöneticisi, kimlik bilgilerini kullanıcı tarafından yapılandırılmış kimlik bilgisi sağlayıcılarla alan ve depolayan API'lerle 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) gibi birden fazla oturum açma yöntemini destekler.

Geçiş anahtarları birçok avantaj sağlar. Örneğin, geçiş anahtarları endüstri standartlarına göre tasarlanmıştır, farklı işletim sistemlerinde ve tarayıcı ekosistemlerinde çalışabilir, hem web sitelerinde hem de uygulamalarda kullanılabilir.

Daha fazla bilgi için Kimlik Bilgisi Yöneticisi ve geçiş anahtarları belgelerine ve Kimlik Bilgisi Yöneticisi ve geçiş anahtarları hakkındaki blog yayınına göz atın.

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.

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ından sağlık ve fitness verilerine hangi uygulamaların erişebileceğini kontrol edebilir.

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.base sı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 instanceof iç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 开始,Android 软件包安装程序可让您指定应用元数据(例如数据安全做法),以在 Google Play 等应用商店页面上架。

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 更新了系统 Sharesheet,以便为用户提供自定义应用操作和信息更丰富的预览结果。

添加自定义操作

对于 Android 14,您的应用可以向其调用的系统 Sharesheet 添加自定义操作

分享表格中自定义操作的屏幕截图。

提高直接共享目标的排名

Android 14 根据来自应用的更多信号来确定直接共享目标的排名,以便为用户提供更实用的结果。为了提供最实用的排名信号,请遵循提高直接共享目标排名的准则。通讯应用还可以报告出站和入站消息的快捷方式使用情况

共享表单中的“直接分享”行,如 1
所示

Tahmine dayalı geri hareketi için yerleşik ve özel animasyon desteği

Video: Tahmin edilen geri gitme animasyonları

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:

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

按应用替换项会更改应用在大屏设备上的行为。例如,无论应用的配置如何,OVERRIDE_MIN_ASPECT_RATIO_LARGE 设备制造商替换项都会将应用宽高比设置为 16:9。

借助 Android 14 QPR1,用户可以在大屏设备上通过新的设置菜单应用按应用替换项。

Uygulama ekran paylaşımı

借助应用界面共享功能,用户可以在录制屏幕内容时共享应用窗口,而不是整个设备屏幕。

在应用屏幕共享模式下,状态栏、导航栏、通知和其他系统界面元素会从共享显示屏中排除。系统只会分享所选应用的内容。

应用屏幕共享功能可让用户运行多个应用,但将内容共享限制为单个应用,从而提高工作效率并保护隐私。

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.

Gboard, daha kaliteli akıllı yanıtlar sağlamak için cihaz üzerinde büyük dil modellerinden yararlanır.

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 长期以来一直支持使用自定义着色绘制三角网格,但输入网格格式仅限于一些预定义的属性组合。Android 14 增加了对自定义网格的支持,可将其定义为三角形三角形条,并且可以选择是否编入索引。这些网格是使用自定义属性、顶点步长、可变以及使用 AGSL 编写的顶点着色器和片段着色器指定的。

顶点着色器定义了位置和颜色等变量,而片段着色器可以选择为像素定义颜色,通常是使用顶点着色器创建的变量。如果片段着色器提供颜色,则系统会使用绘制网格时选择的混合模式将其与当前 Paint 颜色混合。Uniform 可以传递到片段着色器和顶点着色器,以提高灵活性。

Canvas için donanım arabelleği oluşturucu

Çizim yapmak için Android'in Canvas API'sini kullanma konusunda yardımcı olmak HardwareBuffer, Android 14 için donanım hızlandırma HardwareBufferRenderer tanıtılıyor. Bu API kullanım alanınız sistemle iletişimi içeriyorsa özellikle yararlıdır. düşük gecikme için SurfaceControl aracılığıyla birleştirici çizim.