اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release بدلاً من aosp-main لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
توفّر مجموعة أدوات واجهة المستخدم في السيارة إطار عمل لتطوير واجهة المستخدم يمكنك استخدامه لمحاولة ضمان أن تحقّق التطبيقات المعروضة في السيارات (تطبيقات Google وتطبيقات النظام والمورّدين) ما يلي:
اتساق واجهة المستخدم/تجربة المستخدم في نظام المعلومات الترفيهية التناسق الذاتي هو قدرة
مستخدم على توقّع كيفية التفاعل مع نظام المعلومات والترفيه استنادًا إلى تجاربه السابقة
في التفاعل مع النظام نفسه.
التخصيص: يمكن للمصنّعين الأصليين للأجهزة تعديل مظهر النظام وأسلوبه لدمجه بشكلٍ أفضل
مع التصميم الداخلي للمركبة والمعدات.
لمزيد من المعلومات حول دمج "مكتبة واجهة المستخدم في السيارة"، يُرجى الاطّلاع على هذه الصفحات:
مكتبة واجهة المستخدم في السيارة هي مكتبة مرتبطة بشكل ثابت، وتوفر مجموعة من المكوّنات و
الموارد التي يمكنك استخدامها لتنفيذ ما يلي:
تطبيقات النظام والمصنع الأصلي للجهاز (Gerrit)
تطبيقات Android Automotive (AAOS)
تُعد هذه المكتبة بمثابة:
Customization API من خلال:
تحديد الموارد التي يمكن تخصيصها، بما في ذلك الألوان والسمات والعناصر القابلة للرسم
التعامل مع الموارد كواجهة برمجة تطبيقات مع ضمانات التوافق مع الإصدارات القديمة
طبقة التوافق بين الحلّ القصير المدى المقدَّم في Android 9 وAndroid 10 والحلّ
على المدى الطويل الذي يتم تطويره حاليًا
تراكب الموارد
يقدّم Android حاليًا عدة طرق لتطبيق عمليات التخصيص بدون الحاجة إلى إجراء عمل إضافي في
الأنظمة الفرعية والتطبيقات المتأثرة:
العناصر التي تظهر أثناء مرحلة التصميم يتم تطبيق هذا التخصيص في وقت إنشاء
صورة نظام Android. أثناء عملية الإنشاء، تتلقّى جميع التطبيقات في النظام الموارد من المجلد
res ومن مجلدات overlay المحدّدة في ملفات makefile
المستهدفة.
تراكبات وقت التشغيل الديناميكية (RRO الديناميكية) تحتوي حِزم APK الخاصة هذه على موارد
فقط وملف بيان للإشارة إلى ملف APK المستهدَف الذي
سيؤثّر فيه. يتم تجميع ملفات RRO الديناميكية ونشرها بشكل مستقل عن صورة النظام ويمكن
تفعيلها أو إيقافها. عندما يبحث النظام عن مورد لتطبيق معيّن،
يبحث أيضًا عن أي ملف RRO يستهدفه وما إذا كان يحتوي على مورد يحمل
اسمًا مماثلاً.
العناصر التي تظهر على سطح التطبيقات أثناء التشغيل (RRO) الثابتة على غرار التطبيقات المُعدَّة لإعادة التشغيل الديناميكي من حيث البنية،
تكون هذه التطبيقات مفعَّلة دائمًا، ما يعني أنّه لا يمكن إلغاء تثبيتها أو تحديثها بدون إجراء
عملية ترقية كاملة لصورة النظام. تُستخدَم عمليات التداخل الثابتة لنظام التشغيل كوسيط بين عمليات التداخل الثابتة
والديناميكية في وقت التشغيل.
بالإضافة إلى مكوّنات واجهة المستخدم، توفّر مكتبة واجهة المستخدم في السيارة آلية لدمج موارد (مرتبطة بشكل ثابت بكل تطبيق) مع موارد المصنّع الأصلي للجهاز مباشرةً باستخدام مجموعة من موارد RRO الثابتة. على المصنّعين الأصليّين للأجهزة تقديم مجلد يحتوي على تراكبات الموارد وقائمة التطبيقات المستهدفة. أثناء عملية الإنشاء، ستستخدم بنية واجهة مستخدم السيارة هذه المعلومات ل
إنشاء ملف RRO ثابت واحد لكل تطبيق مستهدَف.
الشكل 1: مكونات مكتبة واجهة المستخدم في السيارة
في الصورة أعلاه:
الأخضر: التخصيص الذي يقدّمه المصنّع الأصلي للجهاز، وهو مزيج من موارد التراكب في وقت الإنشاء ووقت التشغيل
اللون الأصفر: التوافق مع مكتبة واجهة المستخدم في السيارة، بما في ذلك الموارد القابلة للتراكب
والمكونات (تعليمات Java البرمجية) ودعم الإنشاء لإنشاء ملفات RRO اللازمة
الأزرق: الاستهدافات التي يمكن تخصيصها، بما في ذلك إطار العمل وتطبيقات
النظام وتطبيقات المورّدين وتطبيقات GAS التي تستخدِم مكتبة واجهة مستخدم السيارة لتخصيص عناصر واجهة المستخدم
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],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."]]