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, Android 13'te (API düzeyi 33) kullanıma sunulan uygulamaya özel dil özelliklerini aşağıdaki ek özelliklerle zenginleştirir:
Bir uygulamanın
localeConfig
dilini otomatik olarak oluştur: Android Studio Giraffe Canary 7 ve AGP 8.1.0-alpha07 sürümlerinden başlayarak, uygulamanızı uygulamaya özgü dil tercihlerini otomatik olarak destekleyecek şekilde yapılandırabilirsiniz. Android Gradle eklentisi, proje kaynaklarınıza bağlı olarakLocaleConfig
dosyasını oluşturur ve nihai manifest dosyasına bir referans ekler. Böylece artık dosyayı manuel olarak oluşturmanız veya güncellemeniz gerekmez. AGP,LocaleConfig
dosyasına dahil edilecek yerel ayarları belirlemek için uygulama modüllerinizinres
klasörlerindeki kaynakları ve tüm kitaplık modülü bağımlılıklarını kullanır.Bir uygulamanın
localeConfig
dinamik güncellemeleri: Cihazın sistem ayarlarında uygulamanızın desteklenen diller listesini dinamik olarak güncellemek içinLocaleManager
bölümündekisetOverrideLocaleConfig()
vegetOverrideLocaleConfig()
yöntemlerini kullanın. Desteklenen dillerin listesini bölgeye göre özelleştirmek, A/B denemeleri çalıştırmak veya uygulamanızda yerelleştirme için sunucu tarafı aktarmalar kullanılıyorsa yerel ayarların güncellenmiş listesini sağlamak için bu esnekliği kullanın.Giriş yöntemi düzenleyicileri (IME'ler) için uygulama dili görünürlüğü: IME'ler, geçerli uygulamanın dilini kontrol etmek ve IME dilini bu dille eşleştirmek için
getApplicationLocales()
yöntemini kullanabilir.
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ştirmesini sağlar. ABD'de yaşayan bir Avrupalı, sıcaklık birimlerinin Fahrenhayt yerine Santigrat cinsinden olmasını ve uygulamaların, ABD'nin varsayılan pazar günü yerine pazartesi gününü haftanın başlangıcı olarak kabul etmesini tercih edebilir.
Bu tercihlere yönelik yeni Android Ayarları menüleri, kullanıcılara uygulama tercihlerini değiştirmeleri için bulunabilir ve merkezi bir konum sağlar. Bu tercihler, yedekleme ve geri yükleme aracılığıyla da korunur. getTemperatureUnit
ve getFirstDayOfWeek
gibi çeşitli API ve amaçlar uygulamanız için kullanıcı tercihlerine okuma erişimi verir. Böylece uygulamanız bilgileri görüntüleme şeklini ayarlayabilir. Bölgesel tercihler değiştiğinde yerel yapılandırma değişikliklerini işlemek için ACTION_LOCALE_CHANGED
sitesinde bir BroadcastReceiver
de kaydedebilirsiniz.
Bu ayarları bulmak için Ayarlar uygulamasını açıp Sistem > Diller ve giriş > Bölgesel tercihler'e gidin.
![](https://developer.android.com/static/about/versions/14/images/regional-preferences.png?authuser=5&hl=tr)
![](https://developer.android.com/static/about/versions/14/images/regional-preferences-temperature.png?authuser=5&hl=tr)
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 low-vision users with additional accessibility options that align with Web Content Accessibility Guidelines (WCAG).
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
![](https://developer.android.com/static/images/about/versions/14/accessibility-font-options.png?authuser=5&hl=tr)
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
Resimler için ultra HDR
![](https://developer.android.com/static/images/about/versions/14/SDR-HDR-compare.png?authuser=5&hl=tr)
Android 14'te, fotoğraf çekerken sensörden gelen bilgilerin daha fazlasını koruyan Yüksek Dinamik Aralık (HDR) resimler desteklenir. Bu da canlı renkler ve daha fazla kontrast sağlar. Android, JPEG resimlerle tamamen geriye dönük uyumlu olan Ultra HDR biçimini kullanır. Böylece, uygulamaların HDR resimlerle sorunsuz bir şekilde birlikte çalışabilmesini ve bu görüntülerin Standart Dinamik Aralık'ta (SDR) gerektiği şekilde görüntülenmesini sağlar.
Uygulamanız Etkinlik Penceresi için HDR kullanıcı arayüzünü kullanmayı seçtiğinde (manifest girişiyle veya çalışma zamanında Window.setColorMode()
çağrısı yaparak) bu görüntülerin kullanıcı arayüzünde HDR olarak oluşturulması çerçeve tarafından otomatik olarak gerçekleştirilir. Desteklenen cihazlarda sıkıştırılmış Ultra HDR hareketsiz resimler de çekebilirsiniz. Sensörden kurtarılan renk sayısı arttıkça, yayını daha esnek bir şekilde düzenleyebilirsiniz. Ultra HDR görüntülerle ilişkili Gainmap
, bu görüntüleri OpenGL veya Vulkan kullanarak oluşturmak için kullanılabilir.
Kamera uzantılarında Yakınlaştırma, Odaklama, Postview ve daha fazlası
Android 14 upgrades and improves camera extensions, allowing apps to handle longer processing times, which enables improved images using compute-intensive algorithms like low-light photography on supported devices. These features give users an even more robust experience when using camera extension capabilities. Examples of these improvements include:
- Dynamic still capture processing latency estimation provides much more
accurate still capture latency estimates based on the current scene and
environment conditions. Call
CameraExtensionSession.getRealtimeStillCaptureLatency()
to get aStillCaptureLatency
object that has two latency estimation methods. ThegetCaptureLatency()
method returns the estimated latency betweenonCaptureStarted
andonCaptureProcessStarted()
, and thegetProcessingLatency()
method returns the estimated latency betweenonCaptureProcessStarted()
and the final processed frame being available. - Support for capture progress callbacks so that apps can display the current
progress of long-running, still-capture processing operations. You can check
if this feature is available with
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable
, and if it is, you implement theonCaptureProcessProgressed()
callback, which has the progress (from 0 to 100) passed in as a parameter. Extension specific metadata, such as
CaptureRequest.EXTENSION_STRENGTH
for dialing in the amount of an extension effect, such as the amount of background blur withEXTENSION_BOKEH
.Postview Feature for Still Capture in camera extensions, which provides a less-processed image more quickly than the final image. If an extension has increased processing latency, a postview image could be provided as a placeholder to improve UX and switched out later for the final image. You can check if this feature is available with
CameraExtensionCharacteristics.isPostviewAvailable
. Then you can pass anOutputConfiguration
toExtensionSessionConfiguration.setPostviewOutputConfiguration
.Support for
SurfaceView
allowing for a more optimized and power-efficient preview render path.Support for tap to focus and zoom during extension usage.
Sensör içi yakınlaştırma
When REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE
in
CameraCharacteristics
contains
SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
, your app
can use advanced sensor capabilities to give a cropped RAW stream the same
pixels as the full field of view by using a CaptureRequest
with a RAW target that has stream use case set to
CameraMetadata.SCALER_AVAILABLE_STREAM_USE_CASES_CROPPED_RAW
.
By implementing the request override controls, the updated camera gives users
zoom control even before other camera controls are ready.
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 is an on-device repository for user health and fitness data. It allows users to share data between their favorite apps, with a single place to control what data they want to share with these apps.
On devices running Android versions prior to Android 14, Health Connect is available to download as an app on the Google Play store. Starting with Android 14, Health Connect is part of the platform and receives updates through Google Play system updates without requiring a separate download. With this, Health Connect can be updated frequently, and your apps can rely on Health Connect being available on devices running Android 14 or higher. Users can access Health Connect from the Settings in their device, with privacy controls integrated into the system settings.
![](https://developer.android.com/static/images/about/versions/14/health-connect-screen.png?authuser=5&hl=tr)
![](https://developer.android.com/static/images/about/versions/14/health-connect-permissions.png?authuser=5&hl=tr)
Health Connect includes several new features in Android 14, such as exercise routes, allowing users to share a route of their workout which can be visualized on a map. A route is defined as a list of locations saved within a window of time, and your app can insert routes into exercise sessions, tying them together. To ensure that users have complete control over this sensitive data, users must allow sharing individual routes with other apps.
For more information, see the Health Connection documentation and the blogpost on What's new in Android Health.
OpenJDK 17 güncellemeleri
Android 14 continues the work of refreshing Android's core libraries to align with the features in the latest OpenJDK LTS releases, including both library updates and Java 17 language support for app and platform developers.
The following features and improvements are included:
- Updated approximately 300
java.base
classes to Java 17 support. - Text Blocks, which introduce multi-line string literals to the Java programming language.
- Pattern Matching for instanceof, which allows an object to
be treated as having a specific type in an
instanceof
without any additional variables. - Sealed classes, which allow you restrict which classes and interfaces can extend or implement them.
Thanks to Google Play system updates (Project Mainline), over 600 million devices are enabled to receive the latest Android Runtime (ART) updates that include these changes. This is part of our commitment to give apps a more consistent, secure environment across devices, and to deliver new features and capabilities to users independent of platform releases.
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
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
To create a more standardized experience for detecting screenshots, Android 14 introduces a privacy-preserving screenshot detection API. This API lets apps register callbacks on a per-activity basis. These callbacks are invoked, and the user is notified, when the user takes a screenshot while that activity is visible.
Kullanıcı deneyimi
Sharesheet'te özel işlemler ve iyileştirilmiş sıralama
Android 14 updates the system sharesheet to support custom app actions and more informative preview results for users.
Add custom actions
With Android 14, your app can add custom actions to the system sharesheet it invokes.
![](https://developer.android.com/static/images/training/sharing/sharesheet_custom_actions.png?authuser=5&hl=tr)
Improve ranking of Direct Share targets
Android 14 uses more signals from apps to determine the ranking of the direct share targets to provide more helpful results for the user. To provide the most useful signal for ranking, follow the guidance for improving rankings of your Direct Share targets. Communication apps can also report shortcut usage for outgoing and incoming messages.
![](https://developer.android.com/static/training/sharing/direct-share-targets.png?authuser=5&hl=tr)
Tahmine Dayalı Geri Dönme özelliği için yerleşik ve özel animasyonlar için destek
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:
android:enableOnBackInvokedCallback=true
'i, tahmine dayalı geri sistem animasyonlarını uygulamanın tamamı yerine Etkinlik bazında etkinleştirecek şekilde ayarlayabilirsiniz.- Android 13'teki eve geri dönüş animasyonuna yeni sistem animasyonları ekledik. Yeni sistem animasyonları, Tahmini Geri'ye taşındıktan sonra otomatik olarak aldığınız çapraz etkinlik ve görevler arasıdır.
- Alt sayfalar, Yan sayfalar ve Arama için yeni Malzeme Bileşeni animasyonları ekledik.
- Özel uygulama içi animasyonlar ve geçişler oluşturmak için tasarım rehberliği oluşturduk.
- Özel uygulama içi geçiş animasyonlarını desteklemek için yeni API'ler ekledik:
handleOnBackStarted
,handleOnBackProgressed
,handleOnBackCancelled
in
OnBackPressedCallback
onBackStarted
,onBackProgressed
,onBackCancelled
in
OnBackAnimationCallback
- Kullanıcı geri kaydırdığında yanıt veren geçişler için
overridePendingTransition
yerineoverrideActivityTransition
kullanın.
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ı
Per-app overrides enable device manufacturers to change the behavior of apps on large screen devices. For example, the FORCE_RESIZE_APP
override instructs the system to resize the app to fit display dimensions (avoiding size compatibility mode) even if resizeableActivity="false"
is set in the app manifest.
Overrides are intended to improve the user experience on large screens.
New manifest properties enable you to disable some device manufacturer overrides for your app.
Büyük ekran kullanıcı başına uygulama başına geçersiz kılmalar
Per-app overrides change the behavior of apps on large screen devices. For example, the OVERRIDE_MIN_ASPECT_RATIO_LARGE
device manufacturer override sets the app aspect ratio to 16:9 regardless of the app's configuration.
Android 14 QPR1 enables users to apply per‑app overrides by means of a new settings menu on large screen devices.
Uygulama ekran paylaşımı
App screen sharing enables users to share an app window instead of the entire device screen during screen content recording.
With app screen sharing, the status bar, navigation bar, notifications, and other system UI elements are excluded from the shared display. Only the content of the selected app is shared.
App screen sharing improves productivity and privacy by enabling users to run multiple apps but limit content sharing to a single app.
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.
Grafik
Yollar sorgulanabilir ve birlikte kullanılabilir
Android'in Path
API'si, vektör grafikleri oluşturmak ve oluşturmak için güçlü ve esnek bir mekanizmadır. Bir yolu çizme veya doldurma, çizgi segmentlerinden ya da ikinci dereceden veya kübik eğrilerden yol çizme, daha da karmaşık şekiller elde etmek için boole işlemleri gerçekleştirme veya bunların hepsini aynı anda yapma yeteneğine sahiptir. Bir sınırlama, bir Yol nesnesinin gerçekte ne olduğunu bulabilme olanağıdır. Nesnenin dahili öğeleri, oluşturulduktan sonra çağrıcılar için opaktır.
Path
oluşturmak için yol segmentleri eklemek üzere moveTo()
, lineTo()
ve cubicTo()
gibi yöntemleri çağırırsınız. Ancak bu yola segmentlerin ne olduğunu sormanın bir yolu yoktu, bu yüzden bu bilgileri oluşturma aşamasında saklamanız gerekiyor.
Android 14'ten itibaren, içinde ne olduğunu öğrenmek için yolları sorgulayabilirsiniz.
Öncelikle Path.getPathIterator
API'sini kullanarak bir PathIterator
nesnesi almanız gerekir:
Kotlin
val path = Path().apply { moveTo(1.0f, 1.0f) lineTo(2.0f, 2.0f) close() } val pathIterator = path.pathIterator
Java
Path path = new Path(); path.moveTo(1.0F, 1.0F); path.lineTo(2.0F, 2.0F); path.close(); PathIterator pathIterator = path.getPathIterator();
Daha sonra, her bir segment için gerekli tüm verileri almak üzere segmentlerde tek tek yineleme yapmak için PathIterator
yöntemini çağırabilirsiniz. Bu örnekte, verileri sizin için paketleyen PathIterator.Segment
nesneleri kullanılmaktadır:
Kotlin
for (segment in pathIterator) { println("segment: ${segment.verb}, ${segment.points}") }
Java
while (pathIterator.hasNext()) { PathIterator.Segment segment = pathIterator.next(); Log.i(LOG_TAG, "segment: " + segment.getVerb() + ", " + segment.getPoints()); }
PathIterator
, nokta verilerini saklamak için bir arabellek geçirebileceğiniz, ayrılmayan bir next()
sürümüne de sahiptir.
Path
verilerinin sorgulanmasında önemli kullanım alanlarından biri interpolasyondur. Örneğin, iki farklı yol arasında animasyon uygulamak (veya morph) uygulamak isteyebilirsiniz. Android 14, bu kullanım alanını daha da basitleştirmek için Path
üzerinde interpolate()
yöntemini de içerir. İki yolun aynı dahili yapıya sahip olduğu varsayıldığında, interpolate()
yöntemi bu interpolasyon sonucuyla yeni bir Path
oluşturur. Bu örnek, şekli path
ile otherPath
arasında yarım olan (0,5'lik doğrusal interpolasyon) olan bir yolu döndürür:
Kotlin
val interpolatedResult = Path() if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, .5f, interpolatedResult) }
Java
Path interpolatedResult = new Path(); if (path.isInterpolatable(otherPath)) { path.interpolate(otherPath, 0.5F, interpolatedResult); }
Jetpack graphics-path kitaplığı Android'in önceki sürümleri için de benzer API'ler sağlar.
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
Android 14, HardwareBuffer
'e donanım hızlandırmayla çizim yapmak için Android'in Canvas
API'sini kullanmaya yardımcı olmak amacıyla HardwareBufferRenderer
'ı kullanıma sundu. Bu API özellikle kullanım alanınızda düşük gecikmeli çizim için SurfaceControl
üzerinden sistem oluşturucuyla iletişim kurulması gerektiği durumlarda kullanışlıdır.