Host Aplikasi Otomotif Proyek Sumber Terbuka Android (AOSP) adalah bagian dari Perpustakaan Aplikasi Mobil yang digunakan oleh pengembang pihak ketiga (3P) untuk mengaktifkan aplikasi untuk Android Automotive. Host Aplikasi adalah aplikasi sistem yang memungkinkan aplikasi mobil 3P merender komponen antarmuka pengguna (UI) bergaya OEM atas namanya.
Untuk menjalankan aplikasi 3P, aplikasi 3P dan AOSP Automotive App Host harus diinstal:
- Automotive App Host menyediakan aplikasi 3P dengan satu set template UI dan komponen yang dioptimalkan untuk kendaraan, termasuk kemampuan seperti kegunaan dan keamanan.
- OEM dapat menata template dan komponen UI ini.
- Hasil? Aplikasi 3P secara visual terintegrasi dengan baik ke dalam sistem infotainment OEM.
Halaman ini menjelaskan cara membuat AOSP Automotive App Host dari proyek Gradle di cabang ub-automotive
dan kemudian bagaimana mengintegrasikan AOSP Automotive App Host ke dalam target mobil.
Lihat kodenya
Untuk memeriksa kode yang tidak dibundel:
- Jalankan perintah berikut:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
Untuk mempelajari lebih lanjut tentang bekerja dengan kode sumber AOSP, lihat Menginisialisasi klien Repo .
- Instal AndroidStudio .
Buat APK host AOSP
- Lihat
ub-automotive
dan kemudian buka proyek Gradle di bawahpackages/apps/Car/Templates/Host
. - Untuk mengonfigurasi proyek dengan Android SDK, konfigurasikan file
local.properties
proyek Anda. Anda dapat menemukan jalur di bawah Pengaturan Android SDK di Android Studio.sdk.dir=${path_to_android_sdk_location}
- Buat APK host sebagai proyek Gradle biasa. Misalnya, jalankan perintah
gradle
: l10n./gradlew :app:assembleDebug
File APK terletak di:
packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk
Sematkan host AOSP
- Buat file
Android.mk
baru untuk menyertakan konten berikut: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)
- Ganti nama
app-debug.apk
debug.apk menjadiAOSPHost.apk
dan letakkan APK di folder yang sama denganAndroid.mk
. - Tambahkan modul
CarAOSPHost
ke target Anda sebagaiPRODUCT_PACKAGES
:PRODUCT_PACKAGES += \ CarAOSPHost \
Tambahkan konfigurasi izin
- Buat file bernama
com.android.car.templates.host.xml
yang berisi berikut ini:<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>
- Di target Anda, tambahkan file konfigurasi ke target Anda:
PRODUCT_COPY_FILES += \ <the file root>/com.android.car.templates.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.car.templates.host.xml
Bangun target
Saat Anda membangun target, host diinstal dan izin diberikan:
… android.car.permission.CAR_NAVIGATION_MANAGER: granted=true android.car.permission.CAR_DISPLAY_IN_CLUSTER: granted=true android.car.permission.TEMPLATE_RENDERER: granted=true …
Uji integrasi
Untuk membuat dan memasang sampel, lihat proyek GitHub ini, car-samples/car_app_library .