پیوست C، حداقل نسخه سازگار برای Car UI Plugin API

انتظار می‌رود تولیدکنندگان اصلی تجهیزات (OEM) در اسرع وقت به جدیدترین نسخه car-ui-lib-plugin-apis (1.2.0 یا بالاتر) تغییر دهند. در حالت ایده‌آل، تولیدکنندگان اصلی تجهیزات (OEM) نباید هیچ افزونه‌ای را که از نسخه قدیمی‌تر استفاده می‌کند، عرضه کنند.

چرا این به‌روزرسانی؟

APIهای جاوا ۸+ برای نسخه‌های قبلی اندروید از طریق پشتیبانی از desugaring API جاوا ۸+ پشتیبانی می‌شوند. پیاده‌سازی‌های APIهای از دست رفته در برنامه‌ها کامپایل می‌شوند و بایت‌کد APKها برای ارجاع به پیاده‌سازی‌ها به جای کتابخانه‌های موجود در پلتفرم، بازنویسی می‌شوند.

بارگذاری پیاده‌سازی‌های OEM از اجزای رابط کاربری از یک افزونه Car UI Library نیازمند ارجاع به متدهای تعریف‌شده توسط رابط‌های car-ui-lib-plugin-apis است. این ارجاعات متد از برنامه‌ها به افزونه‌های Car UI Library در زمان اجرا انجام می‌شود، با این انتظار که امضاهای متد در پیاده‌سازی‌های برنامه و افزونه یکسان باشند.

برخی از سیستم‌های ساخت، به دلیل الزامات یک سطح حداقل SDK خاص، همیشه امکان desugaring API را فعال می‌کنند. امضاهای متد Desugared برای رابط‌های car-ui-lib-plugin-apis ممکن است با امضاهای موجود در پیاده‌سازی افزونه OEM که desugared نشده است، مطابقت نداشته باشند، که منجر به عدم بارگذاری افزونه‌ها می‌شود.

در نتیجه، برخی از برنامه‌های GAS که با سیستم ساخت داخلی گوگل کامپایل شده‌اند، با افزونه Car UI Library سازگار نیستند. بنابراین، ما تمام وابستگی‌ها به APIهای جاوا ۸ (و بالاتر) را که نیاز به desugaring دارند، حذف کرده‌ایم. این تغییر مستلزم به‌روزرسانی API رابط‌های تعریف‌شده توسط car-ui-lib-plugin-apis .

مراحل مورد نیاز برای افزونه‌های OEM

برای به‌روزرسانی API خود، مراحل زیر را دنبال کنید:

  1. پیاده‌سازی افزونه را به‌روزرسانی کنید تا از آخرین نسخه car-ui-lib-plugin-apis استفاده کند. برای دریافت آخرین نسخه (۱.۲.۰ یا بالاتر)، به مخزن Maven گوگل مراجعه کنید.

  2. پیاده‌سازی افزونه را برای پیاده‌سازی رابط PluginFactoryOEMV4 به‌روزرسانی کنید. این تغییر هنگام پیاده‌سازی یک کامپوننت توسط افزونه OEM، مستلزم انجام مراحل زیر است. پیاده‌سازی OEM از موارد زیر را به‌روزرسانی کنید:

    1. نوار ابزار، برای پیاده‌سازی ToolbarControllerOEMV2 .

    2. آیتم‌های لیست محتوا، برای بسط دادن ContentListItemOEMV2 .

    3. ارائه نتایج جستجوی IME، برای گسترش ImeSearchInterfaceOEMV2 .

  3. برای استفاده از آخرین نسخه کتابخانه رابط کاربری خودرو، برنامه را به‌روزرسانی کنید.

اگر این به‌روزرسانی اعمال نشود چه اتفاقی می‌افتد؟

اگر مراحل ارائه شده در این صفحه برای یک افزونه OEM تکمیل نشوند، برنامه‌های desugared، مانند سرویس‌های خودروسازی گوگل (GAS)، نمی‌توانند پیاده‌سازی‌های افزونه Car UI Library را بارگیری کنند و هیچ سفارشی‌سازی OEM از طریق مکانیسم افزونه اعمال نمی‌شود.

سفارشی‌سازی‌های RRO موجود برای کتابخانه رابط کاربری خودرو تحت تأثیر این مشکل قرار نگرفته و طبق معمول به کار خود ادامه می‌دهند.