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
3 billion people speak gendered languages: languages where grammatical categories—such as nouns, verbs, adjectives, and prepositions—inflect according to the gender of people and objects you talk to or about. Traditionally, many gendered languages use masculine grammatical gender as the default or generic gender.
Addressing users in the wrong grammatical gender, such as addressing women in masculine grammatical gender, can negatively impact their performance and attitude. In contrast, a UI with language that correctly reflects the user's grammatical gender can improve user engagement and provide a more personalized and natural-sounding user experience.
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.
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
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
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, 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:
- Dinamik hâlâ yakalama işleme gecikmesi tahmini, mevcut sahne ve ortam koşullarına bağlı olarak yakalama gecikmesiyle ilgili çok daha doğru tahminler sağlar.
CameraExtensionSession.getRealtimeStillCaptureLatency()
yöntemini çağırarak iki gecikme tahmini yöntemine sahip birStillCaptureLatency
nesnesi alın.getCaptureLatency()
yöntemi,onCaptureStarted
ileonCaptureProcessStarted()
arasındaki tahmini gecikmeyi döndürür.getProcessingLatency()
yöntemi iseonCaptureProcessStarted()
ile kullanılabilir son işlenen kare arasındaki tahmini gecikmeyi döndürür. - Uygulamaların uzun süreli, hâlâ yakalama işleme işlemlerinin mevcut ilerlemesini görüntüleyebilmesi için ilerleme durumunu yakalama geri çağırma desteği. Bu özelliğin
CameraExtensionCharacteristics.isCaptureProcessProgressAvailable
ile kullanılabilir olup olmadığını kontrol edebilir ve kullanılabilir olup olmadığını kontrol edebilirsiniz. Bu durumda, ilerleme durumu (0'dan 100'e) parametre olarak iletilenonCaptureProcessProgressed()
geri çağırma işlemini uygulayabilirsiniz. Uzantıya özel meta veriler (ör.
EXTENSION_BOKEH
ile arka plan bulanıklaştırma miktarı gibi bir uzantı efektinin miktarını ayarlamak için)CaptureRequest.EXTENSION_STRENGTH
.Kamera uzantılarında, son görüntüye göre daha az işlenmiş bir görüntü sağlayan Fotoğraf Çekimi Sonrası özelliği. Bir uzantının işleme gecikmesi artarsa görüntüleme sonrası resmi, kullanıcı deneyimini iyileştirmek için yer tutucu olarak sağlanabilir ve son resim için daha sonra değiştirilebilir. Bu özelliğin kullanılabilir olup olmadığını
CameraExtensionCharacteristics.isPostviewAvailable
üzerinden kontrol edebilirsiniz. ArdındanExtensionSessionConfiguration.setPostviewOutputConfiguration
cihazınaOutputConfiguration
iletebilirsiniz.SurfaceView
desteği ile daha optimize edilmiş ve gücü daha verimli kullanan bir önizleme oluşturma yolu sağlanır.Uzantı kullanımı sırasında dokunarak odaklama ve yakınlaştırma desteği.
Sensör içi yakınlaştırma
CameraCharacteristics
içindeki REQUEST_AVAILABLE_CAPABILITIES_STREAM_USE_CASE
öğ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 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 verimliliği ve araçları
Kimlik Bilgisi Yöneticisi
Android 14 adds Credential Manager as a platform API, with additional support back to Android 4.4 (API level 19) devices through a Jetpack Library using Google Play services. Credential Manager aims to make sign-in easier for users with APIs that retrieve and store credentials with user-configured credential providers. Credential Manager supports multiple sign-in methods, including username and password, passkeys, and federated sign-in solutions (such as Sign-in with Google) in a single API.
Passkeys provide many advantages. For example, passkeys are built on industry standards, can work across different operating systems and browser ecosystems, and can be used with both websites and apps.
For more information, see the Credential Manager and passkeys documentation and the blogpost about Credential Manager and passkeys.
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.
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 introduces several PackageInstaller
APIs that
allow app stores to improve their user experience.
Request install approval before downloading
Installing or updating an app might require user approval.
For example, when an installer making use of the
REQUEST_INSTALL_PACKAGES
permission attempts to install a
new app. In prior Android versions, app stores can only request user approval
after APKs are written to the install session and the
session is committed.
Starting with Android 14, the requestUserPreapproval()
method lets installers request user approval before committing the install
session. This improvement lets an app store defer downloading any APKs until
after the installation has been approved by the user. Furthermore, once a user
has approved installation, the app store can download and install the app in the
background without interrupting the user.
Claim responsibility for future updates
The setRequestUpdateOwnership()
method allows an installer
to indicate to the system that it intends to be responsible for future updates
to an app it is installing. This capability enables update ownership
enforcement, meaning that only the update owner is permitted
to install automatic updates to the app. Update ownership enforcement helps to
ensure that users receive updates only from the expected app store.
Any other installer, including those making use of the
INSTALL_PACKAGES
permission, must receive explicit user
approval in order to install an update. If a user decides to proceed with an
update from another source, update ownership is lost.
Update apps at less-disruptive times
App stores typically want to avoid updating an app that is actively in use because this leads to the app's running processes being killed, which potentially interrupts what the user was doing.
Starting with Android 14, the InstallConstraints
API
gives installers a way to ensure that their app updates happen at an opportune
moment. For example, an app store can call the
commitSessionAfterInstallConstraintsAreMet()
method to
make sure that an update is only committed when the user is no longer
interacting with the app in question.
Seamlessly install optional splits
With split APKs, features of an app can be delivered in separate APK files,
rather than as a monolithic APK. Split APKs allow app stores to optimize the
delivery of different app components. For example, app stores might optimize
based on the properties of the target device. The
PackageInstaller
API has supported splits since its
introduction in API level 22.
In Android 14, the setDontKillApp()
method allows an
installer to indicate that the app's running processes shouldn't be killed when
new splits are installed. App stores can use this feature to seamlessly install
new features of an app while the user is using the app.
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
Ekran görüntülerinin algılanmasında daha standart bir deneyim sunmak için Android 14, gizliliği korumaya yönelik ekran görüntüsü algılama özelliği sunuyor. API. Bu API, uygulamaların geri çağırmaları etkinlik bazında kaydetmesine olanak tanır. Bu Geri çağırmalar çağrılır ve kullanıcı bir arama yaptığında kullanıcı bilgilendirilir. ekran görüntüsü almalısınız.
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.
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.
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
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
On Pixel 8 Pro devices with the December Feature Drop, developers can try out higher-quality smart replies in Gboard powered by on-device Large Language Models (LLMs) running on Google Tensor.
This feature is available as a limited preview for US English in WhatsApp, Line, and KakaoTalk. It requires using a Pixel 8 Pro device with Gboard as your keyboard.
To try it out, first enable the feature in Settings > Developer Options > AiCore Settings > Enable Aicore Persistent.
Next, open a conversation in a supported app to see LLM-powered Smart Reply in Gboard's suggestion strip in response to incoming messages.
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 has long supported drawing triangle meshes with custom shading, but the input mesh format has been limited to a few predefined attribute combinations. Android 14 adds support for custom meshes, which can be defined as triangles or triangle strips, and can, optionally, be indexed. These meshes are specified with custom attributes, vertex strides, varying, and vertex and fragment shaders written in AGSL.
The vertex shader defines the varyings, such as position and color, while the
fragment shader can optionally define the color for the pixel, typically by
using the varyings created by the vertex shader. If color is provided by the
fragment shader, it is then blended with the current Paint
color using the blend mode selected when
drawing the mesh. Uniforms can be passed
into the fragment and vertex shaders for additional flexibility.
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.