از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
ادغام برنامه های جدا نشده
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
برنامههایی که شامل Dialer، Media، Car UI Library و SMS هستند ، برنامههای دستهبندی نشده در نظر گرفته میشوند (یعنی از پلتفرم اندروید جدا شدهاند). چنین برنامههایی شامل منطق دریافت دادهها از برنامه همراه تلفن و UX در سمت ماشین، از جمله تنظیمات ارتباط و ثبت ویژگی است. APKهای ساخته شده از کدهای جدا نشده با چندین نسخه از پلتفرم کار می کنند.
کد را بررسی کنید
برای بررسی کد unbundled، موارد زیر را اجرا کنید:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4
برای کسب اطلاعات بیشتر در مورد کار با کد منبع AOSP، به Initialize the Repo Client مراجعه کنید.
کد را بسازید
می توانید کد را با استفاده از Android Studio یا از خط فرمان بسازید.
اندروید استودیو
برای ساخت کد در اندروید استودیو:
در Android Studio، فایل ساخت زیر را وارد کنید:
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
اطمینان حاصل کنید که Gradle JDK روی نسخه 11 یا بالاتر تنظیم شده است:

شکل 1. Gradle JDK را روی نسخه 11 در Android Studio تنظیم کنید.
خط فرمان
برای ساخت کد از خط فرمان:
مکان 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 تنظیم کنید.
یک خط فرمان یا یک پنجره پوسته را باز کنید.
به packages/apps/Car/libs/aaos-apps-gradle-project
بروید.
دستور زیر را اجرا کنید:
./gradlew assemble
حداقل سطوح API مورد نیاز
هر برنامه جداسازیشده روی پلتفرمهای Android با نسخهای برابر یا بیشتر از minSdkVersion
آن کار میکند. جدول زیر حداقل نسخه API پشتیبانی شده توسط هر برنامه را فهرست می کند:
برنامه | حداقل سطح API |
---|
|
تقویم | 29 |
کتابخانه رابط کاربری ماشین | 29 |
CompanionDevice | 29 |
شماره گیر | 31 |
رسانه ها | 30 |
پیام رسان (اس ام اس) | 30 |
میزبان AOSP | 29 |
یک پیش ساخت را در یک تصویر سیستم ادغام کنید
اگر نسخه پلتفرم اندروید توسط برنامه پشتیبانی می شود (جدول قسمت قبل را ببینید)، می توانید APK را به تصویر سیستم اضافه کنید. با این حال، مراحل یکپارچه سازی بین نسخه های پلتفرم اندروید متفاوت است.
اندروید 13 و بالاتر
Android 13 و بالاتر شامل کد منبع برای برنامههای جدا نشده نمیشود، اما میتوانید یک 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 و پایینتر شامل کد منبع برای برنامههای جداشده است، اما همچنان میتوانید یک 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
}
جزئیات برنامه جداشده
برنامه/توزیع | ممتاز تفکیک شده سیستم امضا شد | ممتاز تفکیک شده امضای غیر سیستمی | تفکیک شده نیازی نیست روی پارتیشن سیستم باشد |
---|
برنامه - تقویم | | | X |
برنامه - CompanionDeviceSupport | | X | |
برنامه - شماره گیر | | X | |
برنامه - میزبان AOSP | | X | |
برنامه - رسانه | X | | |
برنامه - مسنجر (پیامک) | | X | |
به روز رسانی توزیع | OTA | OTA یا Google Play | OTA یا Google Play |
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-06-12 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","easyToUnderstand","thumb-up"],["مشکلم را برطرف کرد","solvedMyProblem","thumb-up"],["غیره","otherUp","thumb-up"]],[["اطلاعاتی که نیاز دارم وجود ندارد","missingTheInformationINeed","thumb-down"],["بیشازحد پیچیده/ مراحل بسیار زیاد","tooComplicatedTooManySteps","thumb-down"],["قدیمی","outOfDate","thumb-down"],["مشکل ترجمه","translationIssue","thumb-down"],["مشکل کد / نمونهها","samplesCodeIssue","thumb-down"],["غیره","otherDown","thumb-down"]],["تاریخ آخرین بهروزرسانی 2025-06-12 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Integrate unbundled apps\n\nApps that include Dialer, Media, Car UI Library, and SMS are considered\n*unbundled apps* (that is, they are unbundled from the Android platform). Such\napps include the logic for receiving data from the phone companion app and UX on\nthe car side, including settings for association and feature enrollment. APKs\nbuilt from unbundled code work with several versions of the platform.\n\nCheck out the code\n------------------\n\nTo check out the unbundled code, run the following: \n\n repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master\n repo sync -cq -j4\n\nTo learn more about working with AOSP source code, see [Initialize the Repo\nClient](/setup/download#initialize_the_repo_client).\n\nBuild the code\n--------------\n\nYou can build the code using Android Studio or from the command line.\n\n### Android Studio\n\nTo build the code in Android Studio:\n\n1. In Android Studio, import the following build file:\n\n packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle\n\n2. Ensure the Gradle JDK is set to Version 11 or higher:\n\n **Figure 1.** Set Gradle JDK to Version 11 in Android Studio.\n\n### Command line\n\nTo build the code from the command line:\n\n1. Set the Android SDK location using one of the following methods:\n\n - Create\n `packages/apps/Car/libs/aaos-apps-gradle-project/local.properties` and\n then set the `sdk.dir` property it contains. Android Studio can do this\n automatically when opening a project. For example, use\n `sdk.dir=/Users/MY-USERNAME/Library/Android/sdk`.\n\n *or*\n - Set the `ANDROID_SDK_ROOT` environment variable with the path to the\n Android SDK.\n\n2. Open a command prompt or a shell window.\n\n3. Go to `packages/apps/Car/libs/aaos-apps-gradle-project`.\n\n4. Run the following command:\n\n ./gradlew assemble\n\nMinimum required API levels\n---------------------------\n\nEach unbundled app works on Android platforms with a version equal to or greater\nthan its\n[`minSdkVersion`](https://developer.android.com/studio/publish/versioning). The\nfollowing table lists the minimum API version supported by each app:\n\n| App | Minimum API level |\n|---------------------------------------------|-------------------|\n| Calendar | 29 |\n| Car UI library | 29 |\n| CompanionDevice | 29 |\n| Dialer | 31 |\n| Media | 30 |\n| Messenger (SMS) | 30 |\n| [AOSP Host](/docs/automotive/hmi/aosp_host) | 29 |\n\nIntegrate a prebuild into a system image\n----------------------------------------\n\nIf the Android platform version is supported by the app (see the table in the\nprevious section), you can add the APK to the system image. However, the\nintegration steps differ between Android platform versions.\n\n### Android 13 and higher\n\nAndroid 13 and higher doesn't include source code for unbundled apps, but you\ncan include a prebuilt APK in the platform build for use cases such as CDD\ncompliance testing or provisioning privileged apps. To specify the APK, use the\n[`android_app_import`](https://ci.android.com/builds/latest/branches/aosp-build-tools/targets/linux/view/soong_build.html)\nSoong rule, as shown in the following example: \n\n android_app_import {\n name: \"CarMediaApp\",\n apk: \"CarMediaApp.apk\",\n privileged: true,\n certificate: \"platform\", // Media must be signed by the platform\n required: [\"allowed_privapp_com.android.car.media\"],\n }\n\n### Android 12 and lower\n\nAndroid 12 and lower includes source code for unbundled apps, but you can still\nspecify a prebuilt APK to include. Because the Soong default is to give\nprecedence to the source code over a prebuilt, it's necessary to set the\n`prefer` flag to `true` inside the `android_app_import` rule, as shown in the\nfollowing example: \n\n android_app_import {\n name: \"CarDialerApp\",\n apk: \"CarDialerApp.apk\",\n privileged: true,\n presigned: true, // Dialer can have its own signature\n required: [\"allowed_privapp_com.android.car.dialer\"],\n overrides: [\"Dialer\"],\n prefer: true, // The prebuilt replaces a source target with the same name\n }\n\nUnbundled app details\n---------------------\n\n| App/Distribution | Privileged unbundled *system signed* | Privileged unbundled *non-system signed* | Unbundled *don't need to be on system partition* |\n|------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|------------------------------------------|--------------------------------------------------|\n| App - [Calendar](https://android.googlesource.com/platform/packages/apps/Car/Calendar/+/refs/heads/mirror-car-apps-aosp-release) | | | X |\n| App - [CompanionDeviceSupport](https://android.googlesource.com/platform/packages/apps/Car/CompanionDeviceSupport/+log/refs/heads/main) | | X | |\n| App - [Dialer](https://android.googlesource.com/platform/packages/apps/Car/Dialer/+/refs/heads/mirror-car-apps-aosp-release) | | X | |\n| App - AOSP Host | | X | |\n| App - [Media](https://android.googlesource.com/platform/packages/apps/Car/Media/+/refs/heads/mirror-car-apps-aosp-release) | X | | |\n| App - [Messenger (SMS)](https://android.googlesource.com/platform/packages/apps/Car/Messenger/+/refs/heads/mirror-car-apps-aosp-release) | | X | |\n| Update distribution | OTA | OTA or Google Play | OTA or Google Play |"]]