Android Open Source Project (AOSP) Automotive App Host adalah bagian dari Library Aplikasi Mobil yang digunakan oleh developer pihak ketiga (3P) untuk mengaktifkan aplikasi untuk Android Automotive. App Host adalah aplikasi sistem yang memungkinkan aplikasi mobil pihak ketiga merender komponen antarmuka pengguna (UI) bergaya OEM atas namanya.
Untuk menjalankan aplikasi pihak ketiga, aplikasi pihak ketiga dan Host Aplikasi Otomotif AOSP harus diinstal:
- Automotive App Host menyediakan serangkaian template dan komponen UI yang dioptimalkan untuk kendaraan, termasuk kemampuan seperti kegunaan dan keamanan, kepada aplikasi pihak ketiga.
- OEM dapat menata gaya template dan komponen UI ini.
- Hasilnya? Aplikasi pihak ketiga terintegrasi dengan baik secara visual ke dalam sistem infotainment OEM.
Halaman ini menjelaskan cara membuat Host Aplikasi Otomotif AOSP dari project Gradle di
cabang ub-automotive
, lalu cara mengintegrasikan Host Aplikasi Otomotif AOSP ke dalam target
mobil.
Melihat kode
Untuk melihat kode yang tidak dipaketkan:
- Jalankan perintah berikut:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
Untuk mempelajari lebih lanjut cara menggunakan kode sumber AOSP, lihat Melakukan inisialisasi klien Repo.
- Menginstal Android Studio.
Membuat APK host AOSP
- Periksa
ub-automotive
, lalu buka project Gradle di bagianpackages/apps/Car/Templates/Host
. - Untuk mengonfigurasi project dengan Android SDK, konfigurasikan file
local.properties
project Anda. Anda dapat menemukan jalurnya di bagian Setelan Android SDK di Android Studio.sdk.dir=${path_to_android_sdk_location}
- Buat APK host sebagai project Gradle standar. Misalnya, jalankan perintah
gradle
:./gradlew :app:assembleDebug
File APK terletak di:
packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk
Menyematkan 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
menjadiAOSPHost.apk
dan tempatkan APK di folder yang sama denganAndroid.mk
. - Tambahkan modul
CarAOSPHost
ke target Anda sebagaiPRODUCT_PACKAGES
:PRODUCT_PACKAGES += \ CarAOSPHost \
Menambahkan konfigurasi izin
- Buat file bernama
com.android.car.templates.host.xml
untuk berisi hal berikut:<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, 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
Mem-build target
Saat Anda mem-build target, host akan diinstal dan izin akan 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 …
Menguji integrasi
Untuk mem-build dan menginstal contoh, lihat project GitHub ini, car-samples/car_app_library.