برنامههایی که شامل شمارهگیر، رسانه، کتابخانه رابط کاربری خودرو و پیامک میشوند ، برنامههای غیربستهای در نظر گرفته میشوند (یعنی از پلتفرم اندروید جدا شدهاند). چنین برنامههایی شامل منطق دریافت دادهها از برنامه همراه تلفن و UX در سمت خودرو، از جمله تنظیمات مربوط به ارتباط و ثبت ویژگیها هستند. APK های ساخته شده از کد غیربستهای با چندین نسخه از پلتفرم کار میکنند.
کد را بررسی کنید
برای بررسی کد unbundled، دستور زیر را اجرا کنید:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-masterrepo sync -cq -j4
برای کسب اطلاعات بیشتر در مورد کار با کد منبع AOSP، به Initialize the Repo Client مراجعه کنید.
کد را بسازید
شما میتوانید کد را با استفاده از اندروید استودیو یا از طریق خط فرمان بسازید.
اندروید استودیو
برای ساخت کد در اندروید استودیو:
در اندروید استودیو، فایل ساخت زیر را وارد کنید:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradleمطمئن شوید که Gradle JDK روی نسخه ۱۱ یا بالاتر تنظیم شده است:

شکل ۱. تنظیم Gradle JDK روی نسخه ۱۱ در اندروید استودیو
خط فرمان
برای ساخت کد از خط فرمان:
با استفاده از یکی از روشهای زیر، مکان SDK اندروید را تنظیم کنید:
packages/apps/Car/libs/aaos-apps-gradle-project/local.propertiesایجاد کنید و سپس ویژگیsdk.dirموجود در آن را تنظیم کنید. اندروید استودیو میتواند این کار را به طور خودکار هنگام باز کردن یک پروژه انجام دهد. برای مثال،sdk.dir=/Users/MY-USERNAME/Library/Android/sdkاستفاده کنید.یا
متغیر محیطی
ANDROID_SDK_ROOTرا با مسیر SDK اندروید تنظیم کنید.
یک خط فرمان یا یک پنجره shell باز کنید.
به
packages/apps/Car/libs/aaos-apps-gradle-projectبروید.دستور زیر را اجرا کنید:
./gradlew assemble
حداقل سطوح API مورد نیاز
هر برنامهی جدا شده روی پلتفرمهای اندروید با نسخهای برابر یا بزرگتر از minSdkVersion خود کار میکند. جدول زیر حداقل نسخه API پشتیبانی شده توسط هر برنامه را نشان میدهد:
| برنامه | حداقل سطح API |
|---|---|
| تقویم | ۲۹ |
| کتابخانه رابط کاربری خودرو | ۲۹ |
| دستگاه همراه | ۲۹ |
| شمارهگیر | ۳۱ |
| رسانه | ۳۰ |
| مسنجر (پیامکی) | ۳۰ |
| میزبان AOSP | ۲۹ |
ادغام پیشساخت در یک تصویر سیستم
اگر نسخه پلتفرم اندروید توسط برنامه پشتیبانی میشود (به جدول بخش قبل مراجعه کنید)، میتوانید APK را به تصویر سیستم اضافه کنید. با این حال، مراحل ادغام بین نسخههای پلتفرم اندروید متفاوت است.
اندروید ۱۳ و بالاتر
اندروید ۱۳ و بالاتر شامل کد منبع برای برنامههای غیربستهبندیشده نمیشود، اما میتوانید یک 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"],
}
اندروید ۱۲ و پایینتر
اندروید ۱۲ و پایینتر شامل کد منبع برای برنامههای غیربستهبندی شده است، اما همچنان میتوانید یک APK از پیش ساخته شده را برای گنجاندن مشخص کنید. از آنجا که پیشفرض Soong این است که به کد منبع نسبت به یک فایل از پیش ساخته شده اولویت دهد، لازم است که پرچم prefer را در داخل قانون android_app_import روی true تنظیم کنید، همانطور که در مثال زیر نشان داده شده است:
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 یا گوگل پلی |
| میزبان AOSP | ایکس | ||
| تقویم | ایکس | ||
| پشتیبانی دستگاه همراه | ایکس | ||
| مرکز کنترل (چند نمایشگر) | ایکس | ||
| شمارهگیر | ایکس | ||
| رسانه | ایکس | ||
| مسنجر (پیامکی) | ایکس | ||
| قفل برنامه حساس | ایکس |