このページでは、バンドルされていないアプリを統合する方法の概要を説明します。 Dialer、Media、Car UI Library、SMS を含むアプリは、バンドルされていないアプリとみなされます。これらのアプリは Android プラットフォームから分離されており、関連付けや機能の登録の設定など、電話コンパニオン アプリと車両側の UX からデータを受信するためのロジックが含まれています。
バンドルされていないコードから構築された APK は、プラットフォームの複数のバージョンで動作します。
コードを確認してください
バンドルされていないコードをチェックアウトするには:
- 次のコマンドを実行します:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -cq -j4
- AOSP ソース コードの操作の詳細については、 「Repo クライアントの初期化」を参照してください。
コードをビルドする
Androidスタジオ
Android Studio でコードをビルドするには:
- Android Studio で、このビルド ファイル
packages/apps/Car/libs/aaos-apps-gradle-project/build.gradle
をインポートします。 - Android Studio の Gradle JDK を必ずバージョン 11 以上に設定してください。
図 1.バージョン 11。 - 必要な APK をビルドします。
コマンドライン
コマンドラインからコードをビルドするには:
- 次の 2 つの方法のいずれかで 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 レベル
バンドルされていない各アプリは、 minSdkVersion
以上のバージョンの Android プラットフォームで動作します。次の表に、各アプリでサポートされる最小 API バージョンを示します。
アプリ | 最小 API レベル |
---|---|
カレンダー | 29 |
車の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, }
バンドルされていないタイプごとにリストされたアプリ
アプリ | 特典付きのバンドルされていない | バンドルされていない (システムパーティション上にある必要はありません) | |
---|---|---|---|
システム署名済み | システム署名されていない | ||
カレンダー | バツ | ||
コンパニオンデバイス | バツ | ||
ダイヤラー | バツ | ||
AOSP ホスト | バツ | ||
メディア | バツ | ||
SMS | バツ | ||
アップデート配信 | 太田 | OTA または Google Play | OTA または Google Play |