Android オープンソース プロジェクト (AOSP) Automotive App Host は、Android Automotive 用のアプリを有効にするためにサードパーティ (3P) 開発者によって使用される Car App Library の一部です。アプリ ホストは、3P 車アプリがその代わりに OEM スタイルのユーザー インターフェイス (UI) コンポーネントをレンダリングできるようにするシステム アプリです。
3P アプリを実行するには、3P アプリと AOSP Automotive App Host の両方がインストールされている必要があります。
- Automotive App Host は、使いやすさや安全性などの機能を含め、車両向けに最適化された UI テンプレートとコンポーネントのセットを備えた 3P アプリを提供します。
- OEM は、これらの UI テンプレートとコンポーネントのスタイルを設定できます。
- 結果? 3P アプリは、OEM のインフォテインメント システムに視覚的にうまく統合されています。
このページでは、 ub-automotive
ブランチの Gradle プロジェクトから AOSP Automotive App Host を生成する方法と、AOSP Automotive App Host を自動車ターゲットに統合する方法について説明します。
コードを確認してください
バンドルされていないコードをチェックアウトするには:
- 次のコマンドを実行します:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
AOSP ソース コードの操作の詳細については、 「Repo クライアントの初期化」を参照してください。
- Android Studioをインストールします。
AOSP ホスト APK を作成する
ub-automotive
をチェックアウトし、packages/apps/Car/Templates/Host
の下にある Gradle プロジェクトを開きます。- Android SDK を使用してプロジェクトを構成するには、プロジェクトの
local.properties
ファイルを構成します。このパスは、Android Studio の Android SDK 設定で確認できます。sdk.dir=${path_to_android_sdk_location}
- ホスト APK を一般的な Gradle プロジェクトとして作成します。たとえば、
gradle
コマンド./gradlew :app:assembleDebug
を実行します。APK ファイルは次の場所にあります:
packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk
AOSP ホストを埋め込む
- 新しい
Android.mk
ファイルを作成して、次のコンテンツを含めます:LOCAL_PATH := $(my-dir) ################## Start of AOSPHost target ################## include $(CLEAR_VARS) LOCAL_MODULE := CarAOSPHost LOCAL_LICENSE_KINDS := legacy_notice LOCAL_LICENSE_CONDITIONS := notice LOCAL_MODULE_OWNER := google LOCAL_SRC_FILES := AOSPHost.apk LOCAL_MODULE_CLASS := APPS LOCAL_MODULE_TAGS := optional LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX) LOCAL_BUILT_MODULE_STEM := package.apk LOCAL_CERTIFICATE := PRESIGNED LOCAL_PRIVILEGED_MODULE := true LOCAL_PRODUCT_MODULE := true LOCAL_DEX_PREOPT := false include $(BUILD_PREBUILT)
-
app-debug.apk
名前をAOSPHost.apk
に変更し、APK をAndroid.mk
と同じフォルダーに置きます。 -
CarAOSPHost
モジュールをPRODUCT_PACKAGES
としてターゲットに追加します:PRODUCT_PACKAGES += \ CarAOSPHost \
権限設定を追加する
com.android.car.templates.host.xml
という名前のファイルを作成し、次の内容を含めます:<permissions> <!-- Rename the package to com.android.car.templates.host --> <privapp-permissions package="com.android.car.templates.host"> <!-- To be able to display activities in the cluster --> <permission name="android.car.permission.CAR_DISPLAY_IN_CLUSTER" /> <!-- To be able to show navigation state (turn by turn directions) in the cluster.--> <permission name="android.car.permission.CAR_NAVIGATION_MANAGER" /> <!-- To be considered a system-approved host --> <permission name="android.car.permission.TEMPLATE_RENDERER" /> </privapp-permissions> <!-- Declare support for templated applications. --> <feature name="android.software.car.templates_host" /> </permissions>
- ターゲットで、構成ファイルをターゲットに追加します:
PRODUCT_COPY_FILES += \ <the file root>/com.android.car.templates.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.car.templates.host.xml
ターゲットを構築する
ターゲットをビルドすると、ホストがインストールされ、権限が付与されます:
… android.car.permission.CAR_NAVIGATION_MANAGER: granted=true android.car.permission.CAR_DISPLAY_IN_CLUSTER: granted=true android.car.permission.TEMPLATE_RENDERER: granted=true …
統合をテストする
サンプルをビルドしてインストールするには、GitHub プロジェクトcar-samples/car_app_libraryを参照してください。