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
有 30 亿人在使用区分性别的语言,此类语言的语法类别(例如名词、动词、形容词和介词)会根据您交谈所涉及的人或物的性别而变化。传统上,许多区分性别的语言使用阳性语法性别作为默认或通用性别。
以错误的语法性别来称呼用户,例如以阳性语法性别来称呼女性,可能会对她们的表现和态度产生负面影响。相比之下,界面语言如果能正确反映用户的语法性别,就可以提高用户互动度,并提供更个性化、更自然的用户体验。
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
Starting in Android 14, the system supports font scaling up to 200%, providing users with additional accessibility options.
To prevent large text elements on screen from scaling too large, the system applies a nonlinear scaling curve. This scaling strategy means that large text doesn't scale at the same rate as smaller text. Nonlinear font scaling helps preserve the proportional hierarchy between elements of different sizes while mitigating issues with linear text scaling at high degrees (such as text being cut off or text that becomes harder to read due to an extremely large display sizes).
Test your app with nonlinear font scaling
If you already use scaled pixels (sp) units to define text sizing, then these additional options and scaling improvements are applied automatically to the text in your app. However, you should still perform UI testing with the maximum font size enabled (200%) to ensure that your app applies the font sizes correctly and can accommodate larger font sizes without impacting usability.
To enable 200% font size, follow these steps:
- Open the Settings app and navigate to Accessibility > Display size and text.
- For the Font size option, tap the plus (+) icon until the maximum font size setting is enabled, as shown in the image that accompanies this section.
Use scaled pixel (sp) units for text-sizes
Remember to always specify text sizes in sp units. When your app uses sp units, Android can apply the user's preferred text size and scale it appropriately.
Don't use sp units for padding or define view heights assuming implicit padding: with nonlinear font scaling sp dimensions might not be proportional, so 4sp + 20sp might not equal 24sp.
Convert scaled pixel (sp) units
Use TypedValue.applyDimension() to convert from sp units
to pixels, and use TypedValue.deriveDimension() to
convert pixels to sp. These methods apply the appropriate nonlinear scaling
curve automatically.
Avoid hardcoding equations using
Configuration.fontScale or
DisplayMetrics.scaledDensity. Because font scaling is
nonlinear, the scaledDensity field is no longer accurate. The fontScale
field should be used for informational purposes only because fonts are no longer
scaled with a single scalar value.
Use sp units for lineHeight
Always define android:lineHeight using sp units instead
of dp, so the line height scales along with your text. Otherwise, if your text
is sp but your lineHeight is in dp or px, it doesn't scale and looks cramped.
TextView automatically corrects the lineHeight so that your intended
proportions are preserved, but only if both textSize and lineHeight are
defined in sp units.
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 中的 REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE 包含 SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW 时,您的应用可以使用高级传感器功能,将剪裁后的 RAW 数据流的像素与全视野范围相同,方法是将 CaptureRequest 与将数据流用例设置为 CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW 的 RAW 目标搭配使用。通过实现请求替换控件,更新后的相机可让用户在其他相机控件准备就绪之前使用缩放控件。
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 the
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 将 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 引入了可保护隐私的屏幕截图检测 API。借助此 API,应用可以按 activity 注册回调。如果用户在该 activity 可见时截取屏幕截图,系统会调用这些回调并通知用户。
Kullanıcı deneyimi
Paylaşım sayfasındaki özel işlemler ve iyileştirilmiş sıralama
Android 14 更新了系统 Sharesheet,以便为用户提供自定义应用操作和信息更丰富的预览结果。
添加自定义操作
对于 Android 14,您的应用可以向其调用的系统 Sharesheet 添加自定义操作。
提高直接共享目标的排名
Android 14 根据来自应用的更多信号来确定直接共享目标的排名,以便为用户提供更实用的结果。为了提供最实用的排名信号,请遵循提高直接共享目标排名的准则。通讯应用还可以报告出站和入站消息的快捷方式使用情况。
Tahmine dayalı geri hareketi için yerleşik ve özel animasyon desteği
Android 13 在开发者选项背后引入了预测性“返回主屏幕”动画。在已启用开发者选项的受支持应用中使用时,滑回手势会显示动画,表明返回手势会使应用退回到主屏幕。
Android 14 包含针对“预测性返回”的多项改进和新指南:
- 您可设置
android:enableOnBackInvokedCallback=true,以便为每个 activity 选择启用预测性返回系统动画,而不是为整个应用选择启用。 - 我们添加了新的系统动画,以配合 Android 13 中的“返回主屏幕”动画。新的系统动画是跨 activity 和跨任务的,您可在迁移到预测性返回后自动获得该动画。
- 我们为底部动作条、侧边动作条和搜索添加了新的 Material 组件动画。
- 我们制作了有关如何创建自定义应用内动画和转换的设计指南。
- 我们添加了许多新 API 来支持自定义的应用内转换动画:
在此 Android 14 预览版中,所有预测性返回功能都是位于开发者选项背后。请参阅与将您的应用迁移到预测性返回有关的开发者指南,以及与创建自定义应用内转换有关的开发者指南。
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 特别有用。