סקירה כללית על תכונות וממשקי API

ב-Android 14 יש תכונות וממשקי API מצוינים למפתחים. בהמשך תוכלו ללמוד על התכונות של האפליקציות שלכם ולהתחיל להשתמש בממשקי ה-API הקשורים.

בדוח ההבדלים של ממשקי ה-API תוכלו למצוא רשימה מפורטת של ממשקי ה-API שנוספו, שונו והוסרו. פרטים על ממשקי ה-API שנוספו זמינים בחומר העזר בנושא Android API. לגבי Android 14, מחפשים ממשקי API שנוספו ברמת API 34. כדי לקבל מידע על תחומים שבהם שינויים בפלטפורמה עשויים להשפיע על האפליקציות שלכם, כדאי לעיין בשינויים בהתנהגות של Android 14 באפליקציות שמטרגטות ל-Android 14 ובכל האפליקציות.

אינטרנציונליזציה

העדפות שפה לכל אפליקציה

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.

Grammatical Inflection API

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.

To help you build a user-centric UI for gendered languages, Android 14 introduces the Grammatical Inflection API, which lets you add support for grammatical gender without refactoring your app.

העדפות אזוריות

העדפות אזוריות מאפשרות למשתמשים להתאים אישית את יחידות הטמפרטורה, את היום הראשון בשבוע ואת מערכות המספור. אירופאי שגר בארצות הברית עשוי להעדיף יחידות טמפרטורה בצלזיוס ולא בפרנהייט אפליקציות להתייחס ליום שני כתחילת השבוע במקום כברירת המחדל בארה"ב יום ראשון.

תפריטי ההגדרות החדשים של Android עבור ההעדפות האלה מספקים למשתמשים מיקום מרכזי ונגיש לשינוי העדפות האפליקציות. האלה גם בגיבוי ובשחזור. כמה ממשקי API וכוונות (intents) – כמו getTemperatureUnit ו-getFirstDayOfWeek – מעניקים לאפליקציה הרשאת קריאה להעדפות המשתמש, כדי שהיא תוכל לשנות את אופן הצגת המידע. אפשר גם לרשום BroadcastReceiver במצב פעיל ACTION_LOCALE_CHANGED כדי לטפל בשינויים בתצורת הלוקאל כשיש שינוי בהעדפות הפורמט והמידות.

כדי למצוא את ההגדרות האלה, צריך לפתוח את אפליקציית ההגדרות ולעבור אל מערכת > שפות קלט > העדפות אזוריות.

מסך העדפות האזור בהגדרות המערכת של Android.
אפשרויות הטמפרטורה להעדפות אזוריות במערכת Android הגדרות.

נגישות

הגדלה לא לינארית של הגופן ל-200%

החל מגרסה 14 של Android, המערכת תומכת בהגדלת גופן עד 200%, ומספקת למשתמשים עם לקות ראייה אפשרויות נוספות של נגישות בהתאם להנחיות הנגישות לתוכן אינטרנט (WCAG).

כדי למנוע הגדלה גדולה מדי של אלמנטים גדולים של טקסט במסך, המערכת מחילה עקומת שינוי לא לינארית. באמצעות אסטרטגיה זו של הגדלה באחוזים לא משתנה באותו קצב של טקסט קטן. שינוי גודל גופנים לא לינארי עוזר לשמר את ההיררכיה הפרופורציונלית בין רכיבים בגדלים שונים, צמצום בעיות עם שינוי גודל טקסט ליניארי במעלות גבוהות (למשל נחתך או טקסט שקשה יותר לקרוא עקב תצוגה גדולה מאוד גדלים).

בדיקת האפליקציה עם שינוי גודל גופן לא לינארי

הפעלת גודל הגופן המקסימלי בהגדרות הנגישות של מכשיר כדי לבדוק את האפליקציה.

אם אתם כבר משתמשים ביחידות פיקסלים (sp) מותאמות כדי להגדיר את גודל הטקסט, אפשרויות נוספות ושיפורים בהתאמה לעומס (scaling) מיושמים באופן אוטומטי טקסט באפליקציה. עם זאת, עדיין צריך לבצע בדיקת ממשק משתמש עם גודל הגופן הופעל (200%) כדי לוודא שהאפליקציה מחילה את גודלי הגופנים בצורה נכונה ויכולה להתאים לגופנים גדולים יותר בלי להשפיע על נוחות השימוש.

כדי להגדיל את גודל הגופן ל-200%:

  1. פותחים את אפליקציית ההגדרות ועוברים אל נגישות > גודל התצוגה ו text.
  2. באפשרות גודל הגופן, מקישים על סמל הפלוס (+) עד לגופן המקסימלי. הגדרת הגודל מופעלת, כפי שמוצג בתמונה הנלווית .

שימוש ביחידות של פיקסלים משוקללים (sp) לגודל הטקסט

חשוב לזכור תמיד לציין את גדלי הטקסט ביחידות sp. מתי באפליקציה שלך נעשה שימוש ביחידות sp, מערכת Android יכולה להחיל את גודל הטקסט המועדף על המשתמש וגם להתאים אותו לעומס.

לא להשתמש ביחידות sp למרווחים פנימיים או להגדיר גובה תצוגה בהנחה שיש מרווח פנימי משתמע: כשמשתמשים בהתאמת גודל גופן לא לינארית, יכול להיות שהמידות ב-sp לא יהיו פרופורציונליות, כך ש-4sp + 20sp לא יהיה שווה ל-24sp.

המרת יחידות פיקסלים (sp) מותאמות

כדי להמיר מיחידות sp, צריך להשתמש ב-TypedValue.applyDimension() לפיקסלים, ומשתמשים ב-TypedValue.deriveDimension() כדי להמיר פיקסלים ל-sp. בשיטות האלה המערכת מיישמת את ההתאמה לעומס (scaling) המתאים עקומה באופן אוטומטי.

מומלץ להימנע מכתיבת משוואות בתוך הקוד באמצעות Configuration.fontScale או DisplayMetrics.scaledDensity. מפני ששינוי גודל הגופן שאינו לינארי, השדה scaledDensity כבר לא מדויק. fontScale יש להשתמש בשדה למטרות מידע בלבד, מאחר שהגופנים כבר לא קיימים עם ערך סקלר יחיד.

שימוש ביחידות sp עבור lineHeight

תמיד צריך להגדיר android:lineHeight באמצעות יחידות sp של dp, כך שגובה השורה ישתנה בהתאם לטקסט. אחרת, אם הטקסט הוא sp אבל הערך של lineHeight הוא ב-dp או ב-px, הוא לא גדל ונראה דחוס. TextView מתקן באופן אוטומטי את lineHeight כדי לשמור על הפרופורציות הרצויות, אבל רק אם גם textSize וגם lineHeight מוגדרים ביחידות sp.

מצלמה ומדיה

Ultra HDR לתמונות

An illustration of Standard Dynamic Range (SDR) versus High Dynamic Range (HDR) image quality.

Android 14 adds support for High Dynamic Range (HDR) images that retain more of the information from the sensor when taking a photo, which enables vibrant colors and greater contrast. Android uses the Ultra HDR format, which is fully backward compatible with JPEG images, allowing apps to seamlessly interoperate with HDR images, displaying them in Standard Dynamic Range (SDR) as needed.

Rendering these images in the UI in HDR is done automatically by the framework when your app opts in to using HDR UI for its Activity Window, either through a manifest entry or at runtime by calling Window.setColorMode(). You can also capture compressed Ultra HDR still images on supported devices. With more colors recovered from the sensor, editing in post can be more flexible. The Gainmap associated with Ultra HDR images can be used to render them using OpenGL or Vulkan.

זום, מיקוד, תצוגה מפורטת ועוד בתוספים למצלמה

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:

זום בחיישן

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.

אודיו USB ללא אובדן נתונים

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.

כלים וכלים למפתחים

מנהל פרטי הכניסה

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 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.

Users can get started using Health Connect without a separate app download on devices running Android 14 or higher.
Users can control which apps have access to their health and fitness data through system settings.

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

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.

שיפורים בחנויות האפליקציות

ב-Android 14 נוספו כמה ממשקי API של PackageInstaller שמאפשרים לחנויות האפליקציות לשפר את חוויית המשתמש שלהן.

בקשה לאישור התקנה לפני ההורדה

התקנה או עדכון של אפליקציה עשויה לחייב את אישור המשתמש. לדוגמה, כשתוכנית התקנה שמשתמשת בהרשאה REQUEST_INSTALL_PACKAGES מנסה להתקין אפליקציה חדשה. בגרסאות קודמות של Android, חנויות אפליקציות יכולות לבקש אישור מהמשתמש רק אחרי שקבצים מסוג APK נכתבים בסשן ההתקנה והסשן מוגדר.

החל מ-Android 14, requestUserPreapproval() השיטה מאפשרת למתקינים לבקש אישור מהמשתמש לפני ההתקנה סשן. השיפור הזה מאפשר לחנות אפליקציות לדחות הורדה של חבילות APK עד לאחר שההתקנה אושרה על ידי המשתמש. בנוסף, ברגע שמשתמש יש התקנה מאושרת, חנות האפליקציות יכולה להוריד ולהתקין את האפליקציה בלי להפריע למשתמש.

לטעון לבעלות על עדכונים עתידיים

השיטה setRequestUpdateOwnership() מאפשרת למנהל התקנה כדי להודיע למערכת שהוא מתכוון להיות אחראי לעדכונים עתידיים לאפליקציה שהם מתקינים. היכולת הזו מאפשרת לעדכן את הבעלות אכיפה, כלומר רק הבעלים של העדכון מורשה כדי להתקין עדכונים אוטומטיים לאפליקציה. עדכון אכיפת הבעלות עוזר ל צריך לוודא שהמשתמשים יקבלו עדכונים רק מחנות האפליקציות הצפויה.

כל מתקין אחר, כולל אלה שמשתמשים בהרשאה INSTALL_PACKAGES, צריך לקבל אישור מפורש מהמשתמש כדי להתקין עדכון. אם משתמש מחליט להמשיך עם עדכון ממקור אחר, עדכון הבעלות אבד.

עדכון אפליקציות בזמנים שבהם פחות הפרעות

בדרך כלל, חנויות אפליקציות רוצות להימנע מעדכון אפליקציה שנמצאת בשימוש פעיל כי זה מוביל להפסקת התהליכים הפעילים של האפליקציה, עלול להפריע לפעולות של המשתמש.

החל מ-Android 14, InstallConstraints API מאפשר למתקינים לוודא שעדכוני האפליקציה יתרחשו ברגע. לדוגמה, חנות אפליקציות יכולה לקרוא אל השיטה commitSessionAfterInstallConstraintsAreMet() עליך לוודא שמתבצע עדכון רק כשהמשתמש כבר לא נמצא קיום אינטראקציה עם האפליקציה הנדונה.

התקנה חלקה של חלוקות אופציונליות

כשמשתמשים ב-APKs מפוצלים, אפשר לספק את התכונות של האפליקציה בקובצי APK נפרדים, במקום כ-APK מונוליתי. קובצי APK מפוצלים מאפשרים לחנויות אפליקציות לבצע אופטימיזציה של העברת הרכיבים השונים של האפליקציה. לדוגמה, חנויות אפליקציות עשויות לבצע אופטימיזציה על סמך המאפיינים של מכשיר היעד. ה-API של PackageInstaller תומך בחלוקות מאז ההשקה שלו ברמת API‏ 22.

ב-Android 14, השיטה setDontKillApp() מאפשרת למתקין לציין שלא צריך להפסיק את התהליכים הפועלים של האפליקציה כשמתקינים פלחים חדשים. חנויות אפליקציות יכולות להשתמש בתכונה הזו כדי להתקין בצורה חלקה בתכונות חדשות של אפליקציה בזמן שהמשתמש משתמש בה.

חבילות של מטא-נתונים של אפליקציות

Starting in Android 14, the Android package installer lets you specify app metadata, such as data safety practices, to include on app store pages such as Google Play.

זיהוי מקרים שבהם משתמשים מצלמים צילומי מסך של המכשיר

כדי ליצור חוויה סטנדרטית יותר לזיהוי צילומי מסך, ב-Android 14 נוסף ממשק API לזיהוי צילומי מסך שמגן על הפרטיות. ה-API הזה מאפשר לאפליקציות לרשום קריאות חוזרות (callback) לפי פעילות. פונקציות ה-callbacks האלה מופעלות, והמשתמש מקבל הודעה, כשהמשתמש מצלם צילום מסך בזמן שהפעילות הזו גלויה.

חוויית משתמש

פעולות מותאמות אישית בחלונית השיתוף ודירוג משופר

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.

Screenshot of custom actions on the sharesheet.

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.

Direct Share row in the sharesheet, as shown by 1

תמיכה באנימציות מובנות ובאנימציות בהתאמה אישית עבור 'חיזוי של תנועת החזרה'

Video: Predictive back animations

Android 13 introduced the predictive back-to-home animation behind a developer option. When used in a supported app with the developer option enabled, swiping back shows an animation indicating that the back gesture exits the app back to the home screen.

Android 14 includes multiple improvements and new guidance for Predictive Back:

With this Android 14 preview release, all features of Predictive Back remain behind a developer option. See the developer guide to migrate your app to predictive back, as well as the developer guide to creating custom in-app transitions.

שינוי מברירת המחדל של יצרן המכשיר עם מסך גדול לכל אפליקציה

שינוי הגדרות ברמת האפליקציה מאפשר ליצרני המכשירים לשנות את ההתנהגות של האפליקציות במכשירים עם מסך גדול. לדוגמה, ההחרגה FORCE_RESIZE_APP מורה למערכת לשנות את גודל האפליקציה כך שיתאים למימדי המסך (מבלי להשתמש במצב תאימות לגודל) גם אם הערך resizeableActivity="false" מוגדר בקובץ המניפסט של האפליקציה.

השינויים מברירת המחדל נועדו לשפר את חוויית המשתמש במסכים גדולים.

מאפייני מניפסט חדשים מאפשרים להשבית חלק מהשינויים של יצרן המכשירים באפליקציה שלכם.

שינויים למשתמשים בכל אפליקציה במסך גדול

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.

שיתוף מסך של אפליקציה

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.

'תשובה מהירה' מבוססת-LLM ב-Gboard ב-Pixel 8 Pro

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.

Gboard utilizes on-device LLMs to provide higher-quality smart replies.

גרפיקה

אפשר לשלוח שאילתות לגבי נתיבים ולבצע בהם אינטרפולציה

ה-API Path של Android הוא מנגנון עוצמתי וגמיש ליצירה ולרינדור של גרפיקה וקטורית, עם אפשרות לצייר או למלא נתיב, לבנות נתיב מקטעי קו או מעקומות ריבועיות או ממעלה שלישית, לבצע פעולות בוליאניות כדי לקבל צורות מורכבות יותר או את כל האפשרויות האלה בו-זמנית. אחת מהמגבלות היא היכולת לברר מה נמצא בפועל באובייקט Path. הרכיבים הפנימיים של האובייקט לא גלויים למבצעי הקריאה אחרי היצירה.

כדי ליצור Path, צריך לבצע קריאה ל-methods כמו moveTo(),‏ lineTo() ו-cubicTo() כדי להוסיף קטעי נתיב. אבל לא הייתה אפשרות לשאול את הנתיב הזה מהם הפלחים, ולכן צריך לשמור את המידע הזה בזמן היצירה.

החל מ-Android 14, אפשר לשלוח שאילתות לגבי נתיבים כדי לבדוק מה נמצא בהם. קודם כול, צריך לקבל אובייקט PathIterator באמצעות API של Path.getPathIterator:

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();

לאחר מכן אפשר לקרוא ל-PathIterator כדי לבצע איטרציה אחרי הפילוחים אחד אחרי השני, ולאחזר את כל הנתונים הנדרשים לכל פלח. בדוגמה הזו נעשה שימוש באובייקטים מסוג PathIterator.Segment, שמארזים את הנתונים בשבילכם:

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 יש גם גרסה של next() שלא מקצה לה, שבה אפשר להעביר במאגר נתונים זמני כדי לשמור את נתוני הנקודות.

אחד מהתרחישים החשובים לדוגמה לשליחת שאילתות לגבי נתוני Path הוא אינטרפולציה. לדוגמה, יכול להיות שתרצו ליצור אנימציה (או טרנספורמציה) בין שני נתיבים שונים. כדי לפשט את התרחיש הזה, Android 14 כולל גם את השיטה interpolate() ב-Path. בהנחה שלשני הנתיבים יש מבנה פנימי זהה, ה-method interpolate() יוצרת Path חדש עם התוצאה בעלת האינטרפולציה. הדוגמה הזו מחזירה נתיב שהצורה שלו היא חצי (אינטרפולציה לינארית של 0 .5) בין path ל-otherPath:

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);
}

ספריית graphics-path של Jetpack מאפשרת להשתמש בממשקי API דומים גם בגרסאות קודמות של Android.

רשתות מותאמות אישית עם תוכנות הצללה (shader) של קודקודים ומקטעים

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.

עיבוד באמצעות מאגר (buffer) בחומרה ל-Canvas

כדי לעזור לכם להשתמש ב-API של Canvas ב-Android כדי לצייר עם האצת חומרה ב-HardwareBuffer, ב-Android 14 הוספנו את HardwareBufferRenderer. ה-API הזה שימושי במיוחד כאשר התרחיש לדוגמה כולל תקשורת עם המערכת קומפוזיציה עד SurfaceControl עם זמן אחזור קצר שרטוט.