اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
الملحق "ج"، الحد الأدنى للإصدار المتوافق لواجهة برمجة التطبيقات الخاصة بالمكوّن الإضافي لواجهة المستخدم في السيارة
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
من المتوقّع أن تنتقل المصنّعين الأصليّين للأجهزة إلى أحدث إصدار من car-ui-lib-plugin-apis
(1.2.0 أو إصدار أحدث) في أقرب وقت ممكن. من المفترض ألا تُرسل المصنّعين الأصليّين للأجهزة أي مكوّن إضافي
يستخدم إصدارًا قديمًا.
ما هي أسباب إجراء هذا التعديل؟
واجهات برمجة تطبيقات Java 8 والإصدارات الأحدث:
تتوفّر للإصدارات السابقة من Android من خلال إتاحة إزالة رمز Java 8 والإصدارات الأحدث.
يتم تجميع عمليات تنفيذ واجهات برمجة التطبيقات غير المتوفّرة في التطبيقات، ويتم إعادة كتابة الرمز الثنائي لحِزم APK
للإشارة إلى عمليات التنفيذ بدلاً من المكتبات على الطور
الأساسي.
يتطلّب تحميل عمليات تنفيذ المصنّعين الأصليين لمكونات واجهة المستخدم من المكوّن الإضافي لمكتبة واجهة المستخدم في السيارة
الإشارة إلى الطرق المحدّدة من خلال واجهات car-ui-lib-plugin-apis
. يتم إنشاء إشارات الطرق هذه من التطبيقات إلى المكوّنات الإضافية لمكتبة واجهة المستخدم في السيارة
أثناء التشغيل مع توقّع أن تكون توقيعات الطرق متطابقة في عمليات تنفيذ التطبيق
والمكوّن الإضافي.
تفعِّل بعض أنظمة الإنشاء ميزة إزالة رمز واجهة برمجة التطبيقات في جميع الأوقات بسبب متطلبات الحد الأدنى لمستوى حزمة تطوير البرامج (SDK). قد لا تتطابق توقيعات الطرق التي تم إزالة رمزها البرمجي لواجهة
car-ui-lib-plugin-apis
مع تلك الواردة في تنفيذ المكونات الإضافية لجهة التصنيع
التي لم تتم إزالة رمزها البرمجي، ما يؤدي إلى عدم تحميل المكونات الإضافية.
ونتيجةً لذلك، فإنّ بعض تطبيقات GAS التي تم تجميعها باستخدام نظام الإنشاء الداخلي في Google
غير متوافقة مع المكوّن الإضافي لمكتبة واجهة المستخدم في السيارة. لذلك، أزلنا كل الاعتمادات على واجهات برمجة تطبيقات Java 8 (والإصدارات الأحدث) التي تتطلّب إزالة رمز السكر. يتطلّب هذا التغيير
تعديلات على واجهة برمجة التطبيقات للواجهات التي تحدّدها
car-ui-lib-plugin-apis
.
الخطوات المطلوبة للمكوّنات الإضافية الخاصة بالمصنّعين الأصليّين للأجهزة
اتّبِع الخطوات التالية لتعديل واجهة برمجة التطبيقات:
عدِّل عملية تنفيذ المكوّن الإضافي لاستخدام أحدث إصدار من
car-ui-lib-plugin-apis
. للحصول على أحدث إصدار (1.2.0 أو إصدار أحدث)،
يُرجى الاطّلاع على مستودع Maven
في Google.
عدِّل عملية تنفيذ المكوّن الإضافي لتنفيذ واجهة PluginFactoryOEMV4
. يتطلب هذا التغيير اتّباع الخطوات التالية عند تنفيذ مكوّن باستخدام المكوّن الإضافي لجهة التصنيع الأصلية. تعديل تنفيذ المصنّع الأصلي للجهاز لما يلي:
شريط الأدوات، لتنفيذ ToolbarControllerOEMV2
عناصر قائمة المحتوى، لتوسيع ContentListItemOEMV2
معالجة نتائج البحث في IME، لتوسيع ImeSearchInterfaceOEMV2
ثبِّت أحدث إصدار من التطبيق لاستخدام أحدث إصدار من Car UI Library.
ماذا يحدث في حال عدم تطبيق هذا التعديل؟
في حال عدم إكمال الخطوات الواردة في هذه الصفحة لأحد مكوّنات إضافية من المصنّع الأصلي للجهاز، يتعذّر على التطبيقات التي تمّ إزالة السكر منها، مثل Google Automotive Services (GAS)، تحميل عمليات تنفيذ المكوّن الإضافي لـ Car UI Library ولا يتم تطبيق أي تخصيصات من المصنّع الأصلي للجهاز من خلال آلية المكوّن الإضافي.
لا تتأثّر عمليات تخصيص RRO الحالية لمكتبة واجهة المستخدم في السيارة بهذه الصعوبة، وستستمر في العمل كالمعتاد.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-06-12 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","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-06-12 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Appendix C, minimum compatible version for Car UI Plugin API\n\nOEMs are expected to switch to the newest version of `car-ui-lib-plugin-apis`\n(1.2.0 or higher) as soon as possible. Ideally, OEMs shouldn't ship any plugin\nthat uses an older version.\n\nWhy this update?\n----------------\n\n[Java 8+](https://developer.android.com/studio/write/java8-support-table) APIs\nare supported for previous versions of Android through [Java 8+ API desugaring\nsupport](https://developer.android.com/studio/write/java8-support#library-desugaring).\nImplementations of missing APIs are compiled into apps and the byte code of APKs\nare rewritten to reference the implementations instead of the libraries on the\nplatform.\n\nLoading OEM implementations of UI components from a Car UI Library plugin\nrequires the referencing of methods defined by `car-ui-lib-plugin-apis`\ninterfaces. These method references are made from apps to Car UI Library plugins\nat runtime with the expectation that method signatures are identical in app and\nplugin implementations.\n\nSome build systems enable API desugaring at all times due to requirements of a\nspecific minimum SDK level. Desugared method signatures for\n`car-ui-lib-plugin-apis` interfaces may not match those in an OEM plugin\nimplementation that has not been desugared, which results in plugins failing to\nload.\n\nAs a result, some GAS apps compiled with the internal Google build system are\nincompatible with the Car UI Library plugin. Therefore, we've removed all\ndependencies on Java 8 (and higher) APIs that require desugaring. This change\nrequires updates to the API of the interfaces defined by\n`car-ui-lib-plugin-apis`.\n\nRequired steps for OEM plugins\n------------------------------\n\nFollow these steps to update your API:\n\n1. Update the plugin implementation to use the latest version of\n `car-ui-lib-plugin-apis`. To get the latest version of (1.2.0 or higher),\n see [Google's Maven\n Repository](https://maven.google.com/web/index.html#com.android.car.ui:car-ui-lib-plugin-apis).\n\n2. Update the plugin implementation to implement the `PluginFactoryOEMV4`\n interface. This change requires the following steps when a component is\n implemented by the OEM plugin. Update the OEM implementation of:\n\n 1. Toolbar, to implement `ToolbarControllerOEMV2`.\n\n 2. Content list items, to extend `ContentListItemOEMV2`.\n\n 3. IME search results handing, to extend `ImeSearchInterfaceOEMV2`.\n\n3. Update the app to use the latest version of the Car UI Library.\n\nWhat happens if this update is not applied?\n-------------------------------------------\n\nIf the steps provided on this page aren't completed for an OEM plugin, desugared\napps, such as the Google Automotive Services (GAS), fail to load implementations\nof the Car UI Library plugin and no OEM customizations are applied through the\nplugin mechanism.\n\nExisting RRO customizations for the Car UI Library are not affected by this\nissue and continue to perform as usual."]]