دمج التطبيقات غير المجمّعة

تُعدّ التطبيقات التي تتضمّن Dialer وMedia وCar UI Library والرسائل القصيرة (SMS) تطبيقات غير مجمّعة (أي أنّها غير مجمّعة من منصة Android). تتضمّن هذه التطبيقات منطقًا لتلقّي البيانات من تطبيق الهاتف المصاحب وتجربة المستخدم على جانب السيارة، بما في ذلك إعدادات الربط وتسجيل الميزات. تعمل حِزم APK التي تم إنشاؤها من رمز غير مجمّع مع عدة إصدارات من المنصة.

الاطّلاع على الرمز

للاطّلاع على الرمز غير المجمّع، شغِّل ما يلي:

repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4

لمزيد من المعلومات عن استخدام رمز المصدر في مشروع Android Open Source Project (AOSP)، يُرجى الاطّلاع على مقالة تهيئة عميل Repo.

إنشاء الرمز

يمكنك إنشاء الرمز باستخدام "استوديو Android" أو من سطر الأوامر.

استوديو Android

لإنشاء الرمز في "استوديو Android"، اتّبِع الخطوات التالية:

  1. في "استوديو Android"، استورِد ملف التصميم التالي:

    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
    
  2. تأكَّد من ضبط Gradle JDK على الإصدار 11 أو إصدار أحدث:

    الإصدار 11

    الشكل 1: اضبط Gradle JDK على الإصدار 11 في "استوديو Android".

سطر الأوامر

لإنشاء الرمز من سطر الأوامر، اتّبِع الخطوات التالية:

  1. اضبط موقع حزمة تطوير البرامج (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.

  2. افتح موجه الأوامر أو نافذة shell.

  3. انتقِل إلى packages/apps/Car/libs/aaos-apps-gradle-project.

  4. شغِّل الأمر التالي:

    ./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