دليل الدمج

توضح هذه الصفحة كيفية دمج التطبيقات غير المجمعة. تعتبر التطبيقات التي تتضمن Dialer وMedia ومكتبة Car UI والرسائل النصية القصيرة تطبيقات غير مجمعة. يتم فصل هذه التطبيقات عن نظام Android الأساسي وتتضمن منطق تلقي البيانات من التطبيق المصاحب للهاتف وتجربة المستخدم على جانب السيارة، بما في ذلك إعدادات الارتباط وتسجيل الميزات.

تعمل ملفات APK المبنية من التعليمات البرمجية غير المجمعة مع إصدارات متعددة من النظام الأساسي.

تحقق من الكود

للتحقق من الكود غير المجمع:

  1. قم بتشغيل ما يلي:
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. لمعرفة المزيد حول العمل مع كود مصدر AOSP، راجع تهيئة عميل Repo .

قم ببناء الكود

بيئة تطوير أندرويد

لإنشاء الكود في Android Studio:

  1. في Android Studio، قم باستيراد ملف البناء هذا:
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. تأكد من ضبط Gradle JDK في Android Studio على الإصدار 11 على الأقل:


    الشكل 1. الإصدار 11.
  3. قم ببناء ملفات APK المطلوبة.

سطر الأوامر

لبناء الكود من سطر الأوامر:

  1. قم بتعيين موقع Android SDK بإحدى الطريقتين التاليتين:
    • قم بإنشاء packages/apps/Car/libs/aaos-apps-gradle-project/local.properties ثم قم بتعيين خاصية sdk.dir التي تحتوي عليها. يستطيع Android Studio القيام بذلك تلقائيًا عند فتح المشروع. على سبيل المثال، استخدم sdk.dir=/Users/MY-USERNAME/Library/Android/sdk .

      أو
    • قم بتعيين متغير البيئة ANDROID_SDK_ROOT بالمسار إلى Android SDK.
  2. افتح موجه الأوامر أو نافذة الصدفة.
  3. انتقل إلى packages/apps/Car/libs/aaos-apps-gradle-project .
  4. قم بتشغيل الأمر التالي:
    ./gradlew assemble

الحد الأدنى من مستويات API المطلوبة

يعمل كل تطبيق غير مجمع على أنظمة Android الأساسية بإصدار مساوٍ أو أكبر من minSdkVersion . يسرد الجدول التالي الحد الأدنى لإصدار واجهة برمجة التطبيقات (API) الذي يدعمه كل تطبيق:

برنامج الحد الأدنى لمستوى API
تقويم 29
مكتبة واجهة المستخدم للسيارة 29
CompanionDevice 29
المسجل 31
وسائط 30
رسالة قصيرة 30
مضيف AOSP 29

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

صور أندرويد 13 والإصدارات الأحدث

تتم إزالة الرمز غير المجمع من نظام Android 13. لذلك، قد يكون من الضروري إضافة ملفات APK التي تم إنشاؤها مسبقًا إلى إصدارات النظام الأساسي من أجل:

  • اختبار الامتثال CDD
  • توفير التطبيقات المميزة

يتم تحقيق ذلك باستخدام قاعدة android_app_import Soong:

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 الأساسي مدعوم من التطبيق (انظر الجدول أعلاه)، يمكن إضافة APK إلى صورة النظام تلك. ومع ذلك، تحتوي معظم التطبيقات غير المجمعة على إصدارات سابقة من التعليمات البرمجية المصدر مضمنة في الأنظمة الأساسية الأقل من Android 13. افتراضيًا، يعطي 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,
    }

التطبيقات المدرجة حسب النوع غير المجمع

برنامج امتياز غير المجمعة غير مجمعة
(لا يلزم أن يكون على قسم النظام)
وقع النظام وقعت غير النظام
تقويم X
CompanionDevice X
المسجل X
مضيف AOSP X
وسائط X
رسالة قصيرة X
تحديث التوزيع عبر الهواء أوتا أو جوجل بلاي أوتا أو جوجل بلاي