統合ガイド

このページでは、バンドルされていないアプリを統合する方法について説明します。電話アプリ、メディア、Car UI ライブラリ、SMS を含むアプリは、バンドルされていないアプリと見なされます。これらのアプリは Android プラットフォームにバンドルされていません スマートフォンのコンパニオン アプリと車側の UX からデータを受信するロジックを搭載している これには関連付けや機能登録の設定が含まれます。

バンドルされていないコードからビルドされた APK は、複数のバージョンのプラットフォームで動作します。

コードをチェックアウトする

バンドルされていないコードをチェックアウトするには:

  1. 以下のコマンドを実行します。
    repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master
    repo sync -cq -j4
    
  2. AOSP ソースコードの操作について詳しくは、Repo クライアントの初期化をご覧ください。

コードをビルドする

Android Studio

Android Studio でコードをビルドするには:

  1. Android Studio で、次のビルドファイルをインポートします。
    packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
  2. Android Studio の Gradle JDK は必ずバージョン 11 以降に設定してください。


    図 1.バージョン 11。
  3. 目的の APK をビルドします。

コマンドライン

コマンドラインからコードをビルドするには:

  1. Android SDK の場所を、次の 2 つの方法のいずれかで設定します。
    • 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 です。
  2. コマンド プロンプトまたはシェル ウィンドウを開きます。
  3. packages/apps/Car/libs/aaos-apps-gradle-project に移動します。
  4. 次のコマンドを実行します。
    ./gradlew assemble

必要最小限の API レベル

バンドルされていない各アプリは、minSdkVersion 以上のバージョンの Android プラットフォーム上で動作します。次の表に、各アプリでサポートされている最小 API バージョンを示します。

アプリ 最小 API レベル
カレンダー 29
Car UI ライブラリ 29
コンパニオン デバイス 29
電話アプリ 31
メディア 30
SMS 30
AOSP ホスト 29

システム イメージへの事前ビルドの統合

Android 13 以降のイメージ

バンドルされていないコードは Android 13 プラットフォームから削除されます。 そのため、次のような場合は、ビルド済み APK をプラットフォーム ビルドに追加する必要があります。

  • CDD 準拠状況のテスト
  • 特権アプリのプロビジョニング

これを実現するには 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 プラットフォーム バージョンがアプリでサポートされている限り(上の表を参照)、そのシステム イメージに APK を追加できます。ただし、バンドルされていないアプリの多くには、以前のバージョンのソースコードがあります。 Android 13 より前のプラットフォームに含まれています。デフォルトでは、Soong は ソースコードに優先順位を付けることはできません。そのため、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
コンパニオン デバイス X
電話アプリ X
AOSP ホスト X
メディア X
SMS X
アップデートのディストリビューション OTA OTA または Google Play OTA または Google Play