تُعتبر التطبيقات التي تتضمّن "أداة الاتصال" و"الوسائط" و"مكتبة واجهة المستخدم في السيارة" و"الرسائل القصيرة" تطبيقات غير مجمّعة (أي أنّها غير مجمّعة مع نظام التشغيل Android). وتشمل هذه التطبيقات منطق تلقّي البيانات من تطبيق الهاتف المصاحب وتجربة المستخدم على جانب السيارة، بما في ذلك إعدادات الربط وتسجيل الميزات. تعمل حِزم APK المُنشأة من رمز غير مجمّع مع العديد من إصدارات النظام الأساسي.
الاطّلاع على الرمز
للاطّلاع على الرمز غير المجمّع، شغِّل ما يلي:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4
لمزيد من المعلومات عن العمل مع رمز المصدر في AOSP، اطّلِع على مقالة إعداد Repo Client.
إنشاء الرمز
يمكنك إنشاء الرمز البرمجي باستخدام "استوديو 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.
افتح موجه أوامر أو نافذة واجهة مستخدِم.
الانتقال إلى
packages/apps/Car/libs/aaos-apps-gradle-project
.نفِّذ الأمر التالي:
./gradlew assemble
الحد الأدنى لمستويات واجهة برمجة التطبيقات المطلوبة
يعمل كل تطبيق غير مجمّع على منصات Android التي تعمل بالإصدار نفسه
minSdkVersion
أو إصدار أحدث. يسرد الجدول التالي أدنى إصدار لواجهة برمجة التطبيقات متوافق مع كل تطبيق:
التطبيق | الحد الأدنى لمستوى واجهة برمجة التطبيقات |
---|---|
التقويم | 29 |
مكتبة واجهة المستخدم في السيارة | 29 |
CompanionDevice | 29 |
Dialer | 31 |
الوسائط | 30 |
Messenger (الرسائل القصيرة) | 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 والإصدارات الأقدم
يتضمّن الإصدار 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
}
تفاصيل التطبيق غير المجمّع
التطبيق/التوزيع | امتيازات غير مجمّعة للنظام موقَّعة |
امتيازات غير مجمّعة غير تابعة للنظام موقَّعة |
لا يلزم أن تكون التطبيقات غير المجمّعة في قسم النظام. |
---|---|---|---|
التطبيق: تقويم Google | X | ||
التطبيق - CompanionDeviceSupport | X | ||
التطبيق - أداة الاتصال | X | ||
التطبيق - مضيف AOSP | X | ||
التطبيق - الوسائط | X | ||
التطبيق: Messenger (الرسائل القصيرة) | X | ||
تعديل التوزيع | عبر الهواء | عبر الهواء أو Google Play | عبر الهواء أو Google Play |