קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
ערכת הכלים של ממשק המשתמש (UI) ברכב מספקת מסגרת לפיתוח ממשק משתמש, שבאמצעותה אפשר לוודא שאפליקציות ברכב (אפליקציות של Google וגם אפליקציות מערכת ואפליקציות של ספקים) יכולות להשיג את היעדים הבאים:
עקביות עצמית של ממשק המשתמש/חוויית המשתמש של מערכת הבידור. עקביות עצמית היא היכולת של משתמש לחזות איך לבצע אינטראקציה עם מערכת מידע ובידור על סמך חוויות קודמות של אינטראקציה עם אותה מערכת.
התאמה אישית. יצרני ציוד מקורי יכולים לשנות את העיצוב והסגנון של המערכת כדי לשלב בצורה הטובה ביותר את הפונקציונליות עם הפנים והחומרה של הרכב.
מידע נוסף על השילוב עם ספריית ממשק המשתמש שברכב זמין בדפים הבאים:
ספריית ממשק המשתמש שברכב היא ספרייה מקושרת באופן סטטי, שמספקת קבוצה של רכיבים ומשאבים שאפשר להשתמש בהם כדי להטמיע:
אפליקציות מערכת ואפליקציות OEM (Gerrit)
אפליקציות ל-Android Automotive (AAOS)
הספרייה הזו משמשת כ:
ממשק API להתאמה אישית לפי:
הגדרת המשאבים שאפשר להתאים אישית, כולל צבעים, מאפיינים ורכיבים גרפיים שאפשר לצייר.
התייחסות למשאבים כ-API עם ערבויות לתאימות לאחור.
שכבת תאימות בין הפתרון לטווח הקצר שזמין ב-Android 9 וב-Android 10 לבין הפתרון לטווח הארוך שנמצא בפיתוח.
שכבות-על של משאבים
מערכת Android מספקת כרגע כמה דרכים להחיל התאמות אישיות בלי צורך לבצע עבודה נוספת במערכות המשנה והאפליקציות המושפעות:
שכבות-על בזמן ה-build ההתאמה האישית הזו חלה בזמן ה-build של קובץ האימג' של מערכת Android. במהלך ה-build, כל האפליקציות במערכת מקבלות משאבים מהתיקייה res ומתיקיות overlay שהוגדרו בקובצי ה-makefile של היעד.
שכבות-על דינמיות בסביבת זמן הריצה (RRO דינמי). חבילות ה-APK המיוחדות האלה מכילות רק משאבים וקובץ מניפסט כדי לציין על איזה APK יעד הן ישפיעו. קובצי RRO דינמיים עוברים הידור ופריסה בנפרד מתמונת המערכת, ואפשר להפעיל או להשבית אותם. כשהמערכת מבצעת חיפוש משאבים לאפליקציה ספציפית, היא גם בודקת אם יש כל קובץ RRO שמטרגט אותה, ואם קובץ ה-RRO מכיל משאב עם אותו שם.
שכבות-על סטטיות של זמן ריצה (RRO סטטי). המבנה שלהם דומה למבנה של RRO דינמי, והם תמיד מופעלים. כלומר, אי אפשר להסיר אותם או לעדכן אותם בלי לבצע שדרוג מלא של קובץ האימג' של המערכת. קובצי RRO סטטיים משמשים כשכבת ביניים בין שכבות-על בזמן ה-build לבין שכבות-על דינמיות בסביבת זמן הריצה.
בנוסף לרכיבי ממשק המשתמש, ספריית ממשק המשתמש ברכב מספקת מנגנון להצגת שכבת-על ישירה של משאבים (המקושר באופן סטטי לכל אפליקציה) עם משאבי ה-OEM, באמצעות קבוצה של RROs סטטיים. יצרני ציוד מקורי חייבים לספק תיקייה שמכילה את שכבות-העל של המשאבים שלהם ואת רשימת האפליקציות המטורגטות. במהלך ה-build, התשתית של ספריית ממשק המשתמש ברכב תשתמש במידע הזה כדי ליצור RRO סטטי אחד לכל אפליקציה שמוגדרת כמטרה.
איור 1. רכיבים של ספריית ממשק המשתמש שברכב
בתמונה שלמעלה:
ירוק. התאמה אישית שמספקת יצרנית הציוד המקורי (OEM), שילוב של משאבי שכבת-על בזמן ה-build ובזמן הריצה.
צהוב. תמיכה שמספקת ספריית Car UI, כולל משאבים שאפשר להציב שכבה עליונה מעליהם
, רכיבים (קוד Java) ותמיכה ב-build ליצירת קובצי ה-RRO הנדרשים.
כחול. יעדים ניתנים להתאמה אישית, כולל המסגרת, אפליקציות המערכת, אפליקציות הספקים ואפליקציות GAS שמשתמשות בספריית ממשק המשתמש שברכב כדי להתאים אישית רכיבי ממשק המשתמש.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Car UI library integration guide\n\nThe Car User Interface (UI) toolkit provides a UI development framework you can use to\nensure apps present in cars (Google apps *and* system and vendor apps) can attain:\n\n- **Infotainment UI/UX self-consistency.** Self-consistency is the ability for a\n user to predict how to interact with an infotainment system based on previous experiences\n interacting with the same system.\n\n- **Customization.**OEMs can modify the look-and-feel of the system to best\n integrate functionality with vehicle interior and hardware.\n\nTo learn more about Car UI Library integration, see these pages:\n\n- [Integrate the Car UI library into apps](/docs/automotive/hmi/car_ui/integrate)\n- [Customize apps](/docs/automotive/hmi/car_ui/customize)\n- [Add custom fonts](/docs/automotive/hmi/car_ui/fonts)\n- [Customize Car UI preferences](/docs/automotive/hmi/car_ui/caruipreference)\n- [CarUiListItem](/docs/automotive/hmi/car_ui/caruilistitem)\n- [Customize CarUiRecyclerView](/docs/automotive/hmi/car_ui/caruirecyclerview)\n- [Troubleshoot runtime resource overlays](/docs/core/runtime/rro-troubleshoot)\n- [Release notes](/docs/automotive/hmi/car_ui/release_notes)\n- [Appendix A, work with RROs](/docs/automotive/hmi/car_ui/appendix)\n- [Appendix B, customization guidelines](/docs/automotive/hmi/car_ui/appendix_b)\n\nAbout the Car UI library\n------------------------\n\nThe Car UI library is a statically linked library, which provides a set of components and\nresources you can use to implement:\n\n- System and OEM apps (Gerrit)\n- Android Automotive (AAOS) apps\n\nThis library serves as a:\n\n- Customization API by:\n\n - Defining which resources can be customized including, colors, dimensions, and drawables.\n - Treating the resources as an API with backwards-compatible guarantees.\n- Compatibility layer between the short-term provided in Android 9 and Android 10 and the longer term solution currently being developed.\n\nResource overlays\n-----------------\n\nAndroid currently provides several ways to apply customizations without additional work needed to\nthe affected subsystems and apps:\n\n- **Build-time overlays.** This customization is applied at Android system image\n build time. During the build, all apps in the system receive resources from their\n `res` folder and from `overlay` folders defined in the target\n makefiles.\n\n- **Dynamic runtime overlays (dynamic RRO).** These special APKs contain\n *only* resources and a manifest file to indicate which *target APK* they will\n affect. Dynamic RROs are compiled and deployed independently of the system image and can be\n toggled on and off. When the system performs a resource lookup for a specific app, the\n system also checks for *any* RRO targeting it and if the RRO contains a resource with the\n same name.\n\n- **Static runtime overlays (static RRO).** Similar to dynamic RROs in structure,\n these are always *on*, meaning they can't be uninstalled or updated without performing a\n full system image upgrade. Static RROs serve as an intermediate of build-time and dynamic\n runtime overlays.\n\nIn addition to UI components, the Car UI library provides a mechanism to directly overlay\nresources (statically linked into each app) with the OEM resources, using a *set of static\nRROs*. OEMs must provide a folder containing their resource overlays and a list of targeted\napps. During a build, the Car UI library infrastructure would use this information to\ngenerate one static RRO for each targeted app.\n| **Note:** This mechanism will become obsolete in Android 11 (and higher) when RROs can target Android libraries.\n\n**Figure 1**. Car UI library components\n\nIn the image above:\n\n- **Green**. Customization provided by the OEM, a mix of build-time and run-time\n overlay resources.\n\n- **Yellow.** Support provided by Car UI library, including *overlayable*resources, components (Java code) and build support to generate the necessary RROs.\n\n- **Blue.** *Customizable* targets including the framework, system\n apps, vendor apps and GAS apps that use the Car UI library to\n *customize* UI elements."]]