Özelliklere ve API'lere Genel Bakış

Android 14, geliştiriciler için muhteşem özellikler ve API'ler sunar. Aşağıdaki bilgiler, uygulamalarınız için ö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 fark raporunu okuyun. Eklenen API'lerle ilgili ayrıntılar için Android API referansı sayfasını ziyaret edin. Android 14 için API düzeyi 34'te eklenmiş API'leri arayın. Platform değişikliklerinin uygulamalarınızı etkileyebileceği alanlar hakkında bilgi edinmek isterseniz Android 14'ü hedefleyen uygulamalar ve tüm uygulamalar için Android 14 davranış değişikliklerini inceleyin.

Uluslararası hale getirme

Uygulamaya özgü dil tercihleri

Android 14 expands on the per-app language features that were introduced in Android 13 (API level 33) with these additional capabilities:

  • Automatically generate an app's localeConfig: Starting with Android Studio Giraffe Canary 7 and AGP 8.1.0-alpha07, you can configure your app to support per-app language preferences automatically. Based on your project resources, the Android Gradle plugin generates the LocaleConfig file and adds a reference to it in the final manifest file, so you no longer have to create or update the file manually. AGP uses the resources in the res folders of your app modules and any library module dependencies to determine the locales to include in the LocaleConfig file.

  • Dynamic updates for an app's localeConfig: Use the setOverrideLocaleConfig() and getOverrideLocaleConfig() methods in LocaleManager to dynamically update your app's list of supported languages in the device's system settings. Use this flexibility to customize the list of supported languages per region, run A/B experiments, or provide an updated list of locales if your app utilizes server-side pushes for localization.

  • App language visibility for input method editors (IMEs): IMEs can utilize the getApplicationLocales() method to check the language of the current app and match the IME language to that language.

Grammatal Inflection API'si

İsimler, fiiller, sıfatlar ve edatlar gibi dil bilgisi kategorilerinin konuştuğunuz kişilerin ve nesnelerin cinsiyetine göre değiştiği dillerin sayısı 3 milyardan fazla cinsiyetle ilgili olarak konuşuyor. Geleneksel olarak birçok cinsiyete dayalı dil, varsayılan veya genel cinsiyet olarak eril dilbilgisini kullanır.

Dil bilgisi açısından yanlış cinsiyetteki kullanıcılara hitap etmek (ör. eril dil bilgisine sahip kadınlara hitap etmek), performans ve tutumlarını olumsuz yönde etkileyebilir. Öte yandan, kullanıcının dil bilgisi cinsiyetini doğru yansıtan bir dil kullanan kullanıcı arayüzü, kullanıcı etkileşimini artırabilir ve daha kişiselleştirilmiş ve doğal görünen bir kullanıcı deneyimi sunabilir.

Android 14, cinsiyet belirten dillere yönelik kullanıcı merkezli bir kullanıcı arayüzü oluşturmanıza yardımcı olmak amacıyla uygulamanızı yeniden düzenlemeye gerek kalmadan dil bilgisi için cinsiyet desteği eklemenize olanak tanıyan Grammatical Inffaction API'yi kullanıma sunar.

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.

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

Erişilebilirlik

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

从 Android 14 开始,系统支持字体放大高达 200%,为弱视用户提供了符合网络内容无障碍指南 (WCAG) 的其他无障碍选项。

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

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

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

如果您已经使用放大像素 (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 或 px 为单位,则文本无法缩放且看起来狭窄。TextView 会自动更正 lineHeight 以保留您预期的比例,但前提是以 sp 为单位同时定义 textSizelineHeight

Kamera ve medya

Resimler için ultra HDR

标准动态范围 (SDR) 与高动态范围 (HDR) 图片质量的示意图。

Android 14 增加了对高动态范围 (HDR) 图片的支持,此类图片可在拍照时保留来自传感器的更多信息,从而实现鲜艳的色彩和更高的对比度。Android 采用 Ultra HDR 格式,这种格式可完全向后兼容 JPEG 图片,允许应用与 HDR 图片无缝互操作,从而根据需要以标准动态范围 (SDR) 显示图片。

当您的应用为其 Activity 窗口选择使用 HDR 界面(通过清单条目或在运行时通过调用 Window.setColorMode())时,框架会自动在 HDR 界面中呈现这些图片。您还可以在支持的设备上拍摄压缩的 Ultra HDR 静态图片。从传感器中恢复的颜色越多,博文中的编辑效果就越灵活。与 Ultra HDR 图片关联的 Gainmap 可用于使用 OpenGL 或 Vulkan 渲染这些图片。

Kamera uzantılarında Yakınlaştırma, Odaklama, Postview ve daha fazlası

Android 14, kamera uzantılarını güncelleyip iyileştirerek uygulamaların daha uzun işleme sürelerini işlemesini sağlar. Böylece desteklenen cihazlarda düşük ışıkta çekim yapmak gibi bilgi işlem odaklı algoritmalar kullanılarak iyileştirilmiş resimler sunulur. Bu özellikler, kamera uzantısı özelliklerini kullanırken kullanıcılara daha güçlü bir deneyim sunar. Bu iyileştirmelerden bazıları şunlardır:

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 hedefiyle CaptureRequest kullanılabilir. Güncellenen kamera, istek geçersiz kılma denetimlerini uygulayarak diğer kamera denetimleri hazır olmadan bile kullanıcılara yakınlaştırma kontrolü sağlar.

Kayıpsız USB ses

Android 14, USB kablolu kulaklıklar üzerinden ses meraklıları seviyesindeki deneyimler için kayıpsız ses biçimlerini destekliyor. Bir USB cihazı tercih edilen mikser özellikleriyle sorgulayabilir, tercih edilen mikser özelliklerindeki değişiklikler için bir işleyici kaydedebilir ve AudioMixerAttributes sınıfını kullanarak mikser özelliklerini yapılandırabilirsiniz. Bu sınıf; kanal maskesi, örnek hızı ve ses karıştırıcının davranışı gibi biçimini temsil eder. Sınıf; karıştırma, ses ayarı veya işleme efektleri olmadan sesin doğrudan gönderilmesine olanak tanır.

Geliştirici verimliliği ve araçları

Kimlik Bilgisi Yöneticisi

Android 14, platform API'si olarak Kimlik Bilgisi Yöneticisi'ni ekler ve Google Play Hizmetleri'ni kullanan bir Jetpack Library aracılığıyla Android 4.4 (API düzeyi 19) cihazlara yönelik 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 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 gibi ç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 sistemlerinde 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ı belgelerine ve Kimlik Bilgisi Yöneticisi ve geçiş anahtarları hakkındaki blog yayınına bakın.

Health Connect

Health Connect, cihaz üzerinde kullanıcı sağlığı ve fitness verilerinin depolandığı bir depodur. Kullanıcıların en sevdikleri uygulamalar arasında veri paylaşmalarına olanak tanıyan bu özellik sayesinde, bu uygulamalarla paylaşmak istedikleri verileri 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. Android 14'ten itibaren platformun bir parçası olan Health Connect, Google Play sistem güncellemeleri aracılığıyla güncellemeleri ayrı bir indirme işlemi gerektirmeden alır. Bu sayede 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'ten yararlanabilir. 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 Health Connect'i ayrı bir uygulama indirmeye gerek kalmadan kullanmaya başlayabilir.
Kullanıcılar, sağlık ve fitness verilerine hangi uygulamaların erişebileceğini sistem ayarları üzerinden kontrol edebilir.

Android 14'teki Health Connect, egzersiz rotaları gibi yeni özellikler içerir. Bu sayede kullanıcılar antrenman rotalarını harita üzerinde 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 olabilmesi için kullanıcıların, rotaların diğer uygulamalarla tek tek paylaşılmasına izin vermesi gerekir.

Daha fazla bilgi için Health Connection dokümanlarına ve Android Health'teki yenilikler blog yayınına bakın.

OpenJDK 17 güncellemeleri

Android 14, Android'in temel kitaplıklarını, uygulama ve platform geliştiricileri için kitaplık güncellemeleri ve Java 17 dil desteği de dahil olmak üzere en son OpenJDK LTS sürümlerindeki özelliklerle uyumlu olacak şekilde yenileme çalışmalarına devam ediyor.

Şu özellikler ve iyileştirmeler dahildir:

  • Yaklaşık 300 java.base sınıfı, Java 17 desteği ile güncellendi.
  • Metin Blokları, çok satırlı dize değişmez değerlerini Java programlama diline ekler.
  • Örnek için Kalıp Eşleştirme: Bir nesnenin herhangi bir ek değişken olmadan instanceof içinde belirli bir türe sahip olarak değerlendirilmesini sağlar.
  • Gizli sınıflar: Bu sınıf ve arayüzlerin genişletilmesini veya uygulanmasını kısıtlamanıza olanak tanır.

Google Play sistem güncellemeleri (Project Mainline) sayesinde 600 milyondan fazla cihazın bu değişiklikleri içeren en son Android Çalışma Zamanı (ART) güncellemelerini alabilmesi sağlandı. Bu, uygulamalara cihazlar genelinde daha tutarlı ve güvenli bir ortam sağlama ve kullanıcılara platform sürümlerinden bağımsız olarak yeni özellikler ve olanaklar 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ı için iyileştirmeler

Android 14, uygulama mağazalarının kullanıcı deneyimini iyileştirmesini sağlayan çeşitli PackageInstaller API'lerini kullanıma sunar.

İndirmeden önce yükleme onayı iste

Bir uygulamayı 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, uygulama mağazaları yalnızca yükleme oturumuna APK'lar kaydedildikten ve oturum kaydedildikten 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. Ayrıca, kullanıcı yüklemeyi onayladıktan sonra, uygulama mağazası uygulamayı arka planda indirip, kullanıcının işini kesintiye uğratmadan yükleyebilir.

Gelecekteki güncellemelerle ilgili sorumluluğu üstlenin

setRequestUpdateOwnership() yöntemi, yükleyicinin sisteme, yüklediği uygulamada gelecekte yapılacak güncellemelerden sorumlu olduğunu belirtmesine olanak tanır. Bu özellik, sahiplik güncellemenin zorunlu kılınmasını sağlar. Diğer bir deyişle, yalnızca güncelleme sahibinin uygulamaya otomatik güncellemeleri yüklemesine izin verilir. Güncelleme sahipliği yaptırımı, kullanıcıların yalnızca beklenen uygulama mağazasından gelen güncellemeleri aldığından emin olmanıza yardımcı olur.

INSTALL_PACKAGES iznini kullananlar da dahil olmak üzere diğer yükleyicilerin bir güncellemeyi yüklemek için açık kullanıcı onayı alması gerekir. Kullanıcı başka bir kaynaktan güncelleme yaparak devam etmeye karar verirse güncelleme sahipliği kaybolur.

Uygulamaları rahatsız edici olmayan zamanlarda güncelleyin

Uygulama mağazaları genellikle aktif olarak kullanılmakta olan bir uygulamayı güncellemekten kaçınmak ister. Bu güncelleme, uygulamanın çalışan süreçlerinin sonlandırılmasına neden olarak kullanıcının yaptığı işi kesintiye uğratabilir.

Android 14'ten itibaren InstallConstraints API, yükleyicilere uygulama güncellemelerinin uygun bir anda gerçekleşmesini sağlayacak bir yöntem sunar. Örneğin, bir uygulama mağazası güncellemenin yalnızca kullanıcı artık söz konusu uygulamayla etkileşimde olmadığında 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 olarak değil, ayrı APK dosyalarında sunulabilir. Bölünmüş APK'lar, uygulama mağazalarının farklı uygulama bileşenlerinin sunumunu 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 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 uygulamanın yeni özelliklerini kullanıcı uygulamayı kullanırken sorunsuz bir şekilde yüklemek için bu özelliği kullanabilir.

Uygulama meta veri paketleri

Android 14'ten itibaren Android paket yükleyici, Google Play gibi uygulama mağazası sayfalarına eklemek için veri güvenliği yöntemleri gibi uygulama meta verilerini belirtmenizi sağlar.

Kullanıcılar cihaz ekran görüntüsü aldığında bunu algılar

为了打造更加标准化的屏幕截图检测体验,Android 14 引入了可保护隐私的屏幕截图检测 API。借助此 API,应用可以按 activity 注册回调。如果用户在该 activity 可见时截取屏幕截图,系统会调用这些回调并通知用户。

Kullanıcı deneyimi

Sharesheet'te özel işlemler ve iyileştirilmiş sıralama

Android 14, sistem paylaşım sayfasını özel uygulama işlemlerini ve daha fazlasını destekleyecek şekilde günceller. kullanıcılar için bilgilendirici önizleme sonuçları.

Özel işlem ekleyin

Android 14 ile uygulamanız sistem paylaşım sayfasına özel işlemler ekleyin.

Paylaşım sayfasındaki özel işlemlerin ekran görüntüsü.

Doğrudan paylaşım hedeflerinin sıralamasını iyileştirme

Android 14, doğrudan sitelerin sıralamasını belirlemek için uygulamalardan gelen daha fazla sinyalden yararlanıyor. hedefleri paylaşın. Sıralama için en yararlı sinyali sağlamak üzere şu yönergeleri izleyin: Doğrudan Paylaşım hedeflerinizin sıralamalarını iyileştirin. İletişim uygulamaları ayrıca aşağıdakiler için kısayol kullanımını bildirebilir: iletileri de dahil edebilirsiniz.

Paylaşım sayfasında 1 ile gösterildiği gibi Doğrudan Paylaşım satırı

Tahmine Dayalı Geri Dönme özelliği için yerleşik ve özel animasyonlar için destek

Video: Tahmine dayalı geri animasyonları

Android 13, bir geliştirici seçeneğinin ardında tahmine dayalı eve geri dönüş animasyonunu kullanıma sundu. Geri kaydırma, geliştirici seçeneği etkin olan desteklenen bir uygulamada kullanıldığında, geri kaydırma hareketinin uygulamadan tekrar ana ekrana çıktığını belirten bir animasyon gösterir.

Android 14, Forecastive Back için birçok iyileştirmenin yanı sıra yeni rehberlik sunuyor:

Bu Android 14 önizleme sürümünde Tahmine Dayalı Geri'nin tüm özellikleri bir geliştirici seçeneğinin arkasında kalır. Uygulamanızı tahmini eski sürüme 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 ekranlı cihaz üreticisinin uygulama bazında 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ı başına uygulama başına geçersiz kılmalar

Uygulama bazında geçersiz kılmalar, uygulamaların büyük ekranlı cihazlardaki davranışını değiştirir. Örneğin, OVERRIDE_MIN_ASPECT_RATIO_LARGE cihaz üreticisi geçersiz kılma ayarı, uygulamanın yapılandırmasından bağımsız olarak uygulama 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 bazında geçersiz kılmaları uygulamasına olanak tanır.

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ına olanak tanır.

Uygulama ekran paylaşımı sayesinde 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ırken içerik paylaşımını tek bir uygulama ile sınırlandırarak üretkenliği ve gizliliği artırır.

Pixel 8 Pro'daki Gboard'da LLM destekli Akıllı Yanıt

Aralık ayı özellik değişikliğine sahip Pixel 8 Pro cihazlarda geliştiriciler, Google Tensor'da çalışan cihaz üzerindeki Büyük Dil Modelleri (LLM) ile desteklenen Gboard'da daha yüksek kaliteli akıllı yanıtları deneyebilirler.

Bu özellik WhatsApp, Line ve KakaoTalk'da ABD İngilizcesi için sınırlı önizleme olarak kullanılabilir. Klavyeniz olarak Gboard ile bir Pixel 8 Pro cihaz kullanmanızı gerekir.

Denemek için önce Ayarlar > Geliştirici Seçenekleri > AiCore Ayarları > Aicore Persistent'ı Etkinleştir seçeneğinden özelliği etkinleştirin.

Ardından, gelen mesajlara yanıt olarak Gboard'un öneri şeridinde LLM destekli Akıllı Yanıt'ı görmek için desteklenen bir uygulamada bir sohbet açın.

Gboard, daha yüksek kaliteli akıllı yanıtlar sağlamak için cihaz üzerinde büyük dil modeli (LLM) kullanır.

Grafik

Yollar sorgulanabilir ve birlikte kullanılabilir

Android'in Path API'si bir alanı çizme veya doldurma yeteneği ile vektör grafikleri oluşturma ve görüntüleme doğru parçalarını veya ikinci dereceden ya da kübik eğrilerden bir yol oluşturma, gerçekleştirme boole işlemlerini veya bunların olanak tanır. Bunlardan biri, bir denemede gerçekte neyin Yol nesnesi; nesnenin iç kısımları, oluşturulduktan sonra arayanlar için opaktır.

Path oluşturmak için aşağıdakiler gibi yöntemleri çağırırsınız: moveTo(), lineTo() ve cubicTo() tıklayarak yol segmentleri ekleyin. Ama şimdiye kadar Yolda segmentlerin neler olduğunu sorduğunuzdan, bu bilgileri oluşturulma zamanı.

Android 14'ten itibaren içinde ne olduğunu öğrenmek için yolları sorgulayabilirsiniz. Öncelikle, şunu kullanarak bir PathIterator nesnesi almanız gerekir: Path.getPathIterator API:

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, segmentlerde iterasyon yapmak için PathIterator çağırabilirsiniz. alarak, her segment için gerekli tüm verileri alabilirsiniz. Bu örnek verileri paketleyen PathIterator.Segment nesnelerini kullanır sizin için:

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, next()'ın ayırmayan bir sürümünü de içerir ve bir arabelleğe ekleyebilirsiniz.

Path verilerini sorgulamanın önemli kullanım alanlarından biri interpolasyondur. Örneğin, Örneğin, iki farklı yol arasında animasyon (veya dönüşüm) oluşturmak isteyebilirsiniz. Alıcı: Android 14'te ise farklı özelliklerdeki Path üzerinde interpolate() yöntemi. Her iki yolun aynı dahili yapıya sahipse interpolate() yöntemi, yeni bir Path bunu yapabilirsiniz. Bu örnek, şekli path ile otherPath arasında yarım (0,5 doğrusal interpolasyon):

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ığı, sürümleri de kullanılmaktadır.

Köşe ve parça gölgelendiricileri olan özel örgüler

Android uzun süredir özel gölgelendirmeli çizim üçgen örgülerini desteklemektedir ancak giriş örgü biçimi, önceden tanımlanmış birkaç özellik kombinasyonuyla sınırlandırılmıştır. Android 14'te eklenen özel örgüler, üçgen veya üçgen şeritler olarak tanımlanabilir ve isteğe bağlı olarak dizine eklenebilir. Bu örgüler özel özellikler, köşe çizgileri, değişken ve AGSL'de yazılan köşe ve parça gölgelendiricilerle belirtilir.

Köşe gölgelendirici, konum ve renk gibi değişiklikleri tanımlarken parça gölgelendiricisi, pikselin rengini isteğe bağlı olarak tanımlayabilir (genellikle köşe gölgelendiricisi tarafından oluşturulan varyasyonlar aracılığıyla). Renk, parça gölgelendirici tarafından sağlanırsa ağacı çizerken seçilen harmanlama modu kullanılarak mevcut Paint rengiyle karıştırılır. Üniformalar, daha fazla esneklik için parçaya ve köşe gölgelendiricilerine geçirilebilir.

Tuval için donanım arabellek 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.