2025 年 3 月 27 日より、AOSP のビルドとコントリビューションには aosp-main
ではなく android-latest-release
を使用することをおすすめします。詳細については、AOSP の変更をご覧ください。
バンドルされていないアプリを統合する
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
電話機能、メディア、Car UI ライブラリ、SMS を含むアプリは、バンドルされていないアプリ(Android プラットフォームから切り離されたアプリ)と見なされます。こうしたアプリは、スマートフォンのコンパニオン アプリや車側の UX からデータを受信するロジック(関連付けや機能登録の設定など)を備えています。バンドルされていないコードからビルドされた APK は、複数のバージョンのプラットフォームで動作します。
コードをチェックアウトする
バンドルされていないコードをチェックアウトするには、次のコマンドを実行します。
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
repo sync -cq -j4
AOSP ソースコードの操作について詳しくは、Repo クライアントの初期化をご覧ください。
コードをビルドする
コードのビルドは、Android Studio またはコマンドラインから行います。
Android Studio
Android Studio でコードをビルドするには:
Android Studio で、次のビルドファイルをインポートします。
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
Gradle JDK がバージョン 11 以降に設定されていることを確認します。
図 1. Android Studio で Gradle JDK をバージョン 11 以降に設定する。
コマンドライン
コマンドラインからコードをビルドするには:
次のいずれかの方法で、Android SDK Location を設定します。
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 レベル
バンドルされていない各アプリは、minSdkVersion
以降のバージョンの Android プラットフォーム上で動作します。次の表に、各アプリでサポートされている最小 API バージョンを示します。
アプリ |
最小 API レベル |
カレンダー |
29 |
Car UI ライブラリ |
29 |
コンパニオン デバイス |
29 |
電話アプリ |
31 |
メディア |
30 |
メッセージ(SMS) |
30 |
AOSP ホスト |
29 |
システム イメージに事前ビルドを統合する
Android プラットフォーム バージョンがアプリでサポートされている場合(前の節の表を参照)は、そのシステム イメージに APK を追加できます。ただし、統合手順は Android プラットフォーム バージョンによって異なります。
Android 13 以降
Android 13 以降には、バンドルされていないアプリのソースコードは含まれていません。ただし、特定のユースケース(CDD 準拠状況のテスト、特権アプリのプロビジョニングなど)のため、プラットフォーム ビルドにビルド済み APK を含めることは可能です。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"],
}
Android 12 以前
Android 12 以前には、バンドルされていないアプリのソースコードが含まれていますが、ビルド済み APK を含めるよう指定することは可能です。Soong のデフォルトでは、ビルド済み APK よりもソースコードが優先されるため、android_app_import
ルールで prefer
フラグを 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 |
|
|
アプリ -
メッセージ
(SMS) |
|
X |
|
アップデートのディストリビューション |
OTA |
OTA または Google Play |
OTA または Google Play |
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-03-13 UTC。
[[["わかりやすい","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-03-13 UTC。"],[],[],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 |"]]