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

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

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

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

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

لمزيد من المعلومات حول استخدام الرمز المصدري لنظام التشغيل 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
مكتبة Car UI 29
CompanionDevice 29
Dialer 31
الوسائط 30
‫Messenger (SMS) 30
مضيف AOSP 29
قفل التطبيقات 34

دمج إصدار مسبق الإنشاء في صورة نظام

إذا كان إصدار نظام Android الأساسي متوافقًا مع التطبيق (راجِع الجدول في القسم السابق)، يمكنك إضافة حزمة APK إلى صورة النظام. ومع ذلك، تختلف خطوات الدمج بين إصدارات نظام Android الأساسي.

الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث

لا يتضمّن الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث رمز المصدر للتطبيقات غير المجمَّعة، ولكن يمكنك تضمين حزمة 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"],
}

الإصدار 12 من نظام التشغيل Android والإصدارات الأقدم

يتضمّن الإصدار 12 من نظام التشغيل Android والإصدارات الأقدم رمز المصدر للتطبيقات غير المجمَّعة، ولكن لا يزال بإمكانك تحديد حزمة 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 تحديث عبر الأثير أو Google Play تحديث عبر الأثير أو Google Play
مضيف AOSP X
تقويم Google X
CompanionDeviceSupport X
مركز التحكّم (شاشات متعددة) X
تطبيق "الهاتف" X
الوسائط X
Messenger (SMS) X
قفل التطبيقات الحساسة X