تُعد التطبيقات التي تتضمّن "تطبيق الهاتف" و"الوسائط" و"مكتبة واجهة مستخدم السيارة" و"الرسائل القصيرة" من التطبيقات غير المجمَّعة (أي أنّها غير مجمَّعة مع منصة Android). وتتضمّن هذه التطبيقات منطق تلقّي البيانات من تطبيق الهاتف المصاحب وتجربة المستخدم على جانب السيارة، بما في ذلك إعدادات الربط وتسجيل الميزات. تعمل حِزم APK التي تم إنشاؤها من رمز غير مجمَّع مع عدة إصدارات من النظام الأساسي.
الاطّلاع على الرمز
للاطّلاع على الرمز غير المجمَّع، شغِّل ما يلي:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4
لمزيد من المعلومات حول استخدام رمز المصدر 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 |
مكتبة Car UI | 29 |
CompanionDevice | 29 |
Dialer | 31 |
الوسائط | 30 |
Messenger (SMS) | 30 |
مضيف AOSP | 29 |
دمج إصدار مسبق في صورة نظام
إذا كان إصدار نظام التشغيل Android متوافقًا مع التطبيق (راجِع الجدول في القسم السابق)، يمكنك إضافة حزمة APK إلى صورة النظام. ومع ذلك، تختلف خطوات الدمج بين إصدارات نظام Android الأساسي.
الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث
لا يتضمّن الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث رمزًا مصدرًا للتطبيقات غير المجمَّعة، ولكن يمكنك تضمين حزمة APK مُنشأة مسبقًا في إصدار النظام الأساسي لحالات الاستخدام مثل اختبار التوافق مع مستند تعريف التوافق (CDD) أو توفير التطبيقات ذات الأذونات المميزة. لتحديد حزمة APK، استخدِم قاعدة
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 والإصدارات الأقدم
يتضمّن نظام التشغيل 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
}
تفاصيل التطبيق غير المجمَّع
التطبيق/التوزيع | Privileged unbundled system signed |
حزمة غير تابعة للنظام موقَّعة |
لا يلزم أن تكون حِزم في قسم تطبيقات النظام |
---|---|---|---|
التطبيق - تقويم Google | X | ||
التطبيق - CompanionDeviceSupport | X | ||
التطبيق - برنامج الاتصال | X | ||
التطبيق - مضيف AOSP | X | ||
التطبيق - الوسائط | X | ||
التطبيق - Messenger (رسائل SMS) | X | ||
تعديل التوزيع | عبر الهواء | OTA أو Google Play | OTA أو Google Play |