تُعدّ التطبيقات التي تتضمّن Dialer وMedia وCar UI Library والرسائل القصيرة (SMS) تطبيقات غير مجمّعة (أي أنّها غير مجمّعة من منصة Android). تتضمّن هذه التطبيقات منطقًا لتلقّي البيانات من تطبيق الهاتف المصاحب وتجربة المستخدم على جانب السيارة، بما في ذلك إعدادات الربط وتسجيل الميزات. تعمل حِزم APK التي تم إنشاؤها من رمز غير مجمّع مع عدة إصدارات من المنصة.
الاطّلاع على الرمز
للاطّلاع على الرمز غير المجمّع، شغِّل ما يلي:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo sync -cq -j4
لمزيد من المعلومات عن استخدام رمز المصدر في مشروع Android Open Source Project (AOSP)، يُرجى الاطّلاع على مقالة تهيئة عميل Repo.
إنشاء الرمز
يمكنك إنشاء الرمز باستخدام "استوديو Android" أو من سطر الأوامر.
استوديو Android
لإنشاء الرمز في "استوديو Android"، اتّبِع الخطوات التالية:
في "استوديو Android"، استورِد ملف التصميم التالي:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradleتأكَّد من ضبط Gradle JDK على الإصدار 11 أو إصدار أحدث:
الشكل 1: اضبط Gradle JDK على الإصدار 11 في "استوديو Android".
سطر الأوامر
لإنشاء الرمز من سطر الأوامر، اتّبِع الخطوات التالية:
اضبط موقع حزمة تطوير البرامج (SDK) لنظام Android باستخدام إحدى الطرق التالية:
أنشئ الملف
packages/apps/Car/libs/aaos-apps-gradle-project/local.propertiesثم اضبط السمةsdk.dirالتي يحتوي عليها. يمكن أن ينفّذ "استوديو Android" هذا الإجراء تلقائيًا عند فتح مشروع. على سبيل المثال، استخدِمsdk.dir=/Users/MY-USERNAME/Library/Android/sdk.أو
اضبط متغيّر البيئة
ANDROID_SDK_ROOTباستخدام المسار إلى حزمة تطوير البرامج (SDK) لنظام Android.
افتح موجه الأوامر أو نافذة shell.
انتقِل إلى
packages/apps/Car/libs/aaos-apps-gradle-project.شغِّل الأمر التالي:
./gradlew assemble
الحد الأدنى لمستويات واجهة برمجة التطبيقات المطلوبة
يعمل كل تطبيق غير مجمّع على منصات Android التي يكون إصدارها مساويًا لـ
أو أكبر
من minSdkVersion. يسرد الجدول التالي الحد الأدنى لإصدار واجهة برمجة التطبيقات الذي يتيحه كل تطبيق:
| التطبيق | الحد الأدنى لمستوى واجهة برمجة التطبيقات |
|---|---|
| التقويم | 29 |
| مكتبة واجهة مستخدم السيارة | 29 |
| CompanionDevice | 29 |
| Dialer | 31 |
| الوسائط | 30 |
| Messenger (الرسائل القصيرة) | 30 |
| AOSP Host | 29 |
| قفل التطبيقات | 34 |
دمج تطبيق تم إنشاؤه مسبقًا في صورة نظام
إذا كان إصدار منصة Android متوافقًا مع التطبيق (راجِع الجدول في القسم السابق)، يمكنك إضافة حزمة APK إلى صورة النظام. ومع ذلك، تختلف خطوات الدمج بين إصدارات منصة Android.
Android 13 والإصدارات الأحدث
لا يتضمّن Android 13 والإصدارات الأحدث رمز مصدر للتطبيقات غير المجمّعة، ولكن يمكنك تضمين حزمة APK تم إنشاؤها مسبقًا في تصميم المنصة لحالات الاستخدام، مثل اختبار التوافق مع مستند تعريف التوافق (CDD) أو توفير التطبيقات المميّزة. لتحديد حزمة APK، استخدِم قاعدة Soong
android_app_import، كما هو موضّح في المثال التالي:
android_app_import {
name: "CarMediaApp",
apk: "CarMediaApp.apk",
privileged: true,
certificate: "platform", // Media must be signed by the platform
required: ["allowed_privapp_com.android.car.media"],
}
Android 12 والإصدارات الأقدم
يتضمّن Android 12 والإصدارات الأقدم رمز مصدر للتطبيقات غير المجمّعة، ولكن يمكنك مع ذلك تحديد حزمة APK تم إنشاؤها مسبقًا لتضمينها. بما أنّ Soong يمنح الأولوية لرمز المصدر على حزمة تم إنشاؤها مسبقًا، من الضروري ضبط العلامة prefer على true داخل قاعدة android_app_import، كما هو موضّح في المثال التالي:
android_app_import {
name: "CarDialerApp",
apk: "CarDialerApp.apk",
privileged: true,
presigned: true, // Dialer can have its own signature
required: ["allowed_privapp_com.android.car.dialer"],
overrides: ["Dialer"],
prefer: true, // The prebuilt replaces a source target with the same name
}
تفاصيل التطبيقات غير المجمّعة
| التطبيق | تطبيق غير مجمّع مميّز موقَّع من النظام |
تطبيق غير مجمّع مميّز غير موقَّع من النظام |
تطبيق غير مجمّع لا يجب أن يكون في قسم النظام |
|---|---|---|---|
| توزيع التعديلات | تعديل عبر الأثير (OTA) | تعديل عبر الأثير (OTA) أو Google Play | تعديل عبر الأثير (OTA) أو Google Play |
| AOSP Host | X | ||
| التقويم | X | ||
| CompanionDeviceSupport | X | ||
| مركز التحكّم (شاشات متعدّدة) | X | ||
| Dialer | X | ||
| الوسائط | X | ||
| Messenger (الرسائل القصيرة) | X | ||
| قفل التطبيقات الحساسة | X |