Máy chủ ứng dụng Automotive App Host của Dự án nguồn mở Android (AOSP) là một phần của Thư viện Ứng dụng cho Ô tô được các nhà phát triển bên thứ ba (3P) sử dụng để hỗ trợ các ứng dụng cho Android Automotive. Máy chủ lưu trữ ứng dụng là một hệ thống ứng dụng cho phép các ứng dụng ô tô của bên thứ ba kết xuất thành phần giao diện người dùng (UI) theo kiểu OEM thay mặt cho ứng dụng.
Để chạy ứng dụng bên thứ ba, cả ứng dụng bên thứ ba và AOSP Automotive App Host đều phải được đã cài đặt:
- Automotive App Host cung cấp cho các ứng dụng bên thứ ba một bộ mẫu và thành phần giao diện người dùng được tối ưu hoá cho xe, bao gồm cả những tính năng như khả năng hữu dụng và độ an toàn.
- OEM có thể tạo kiểu cho các thành phần và mẫu giao diện người dùng này.
- Kết quả là gì? Các ứng dụng của bên thứ ba được tích hợp trực quan vào hệ thống thông tin giải trí của OEM.
Trang này giải thích cách tạo AOSP Automotive App Host qua dự án Gradle trong
Nhánh ub-automotive
và sau đó là cách tích hợp AOSP Automotive App Host vào ô tô
mục tiêu.
Hãy xem đoạn mã vừa tải
Để xem mã chưa được nhóm, hãy làm như sau:
- Chạy lệnh sau:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-master repo sync -j4
Để tìm hiểu thêm về cách làm việc với mã nguồn AOSP, hãy xem Khởi chạy ứng dụng Repo.
- Cài đặt Android Studio.
Tạo APK máy chủ AOSP
- Hãy xem
ub-automotive
rồi mở dự án Gradle trongpackages/apps/Car/Templates/Host
- Để định cấu hình dự án bằng SDK Android, hãy định cấu hình
Tệp
local.properties
. Bạn có thể tìm thấy đường dẫn này trong phần Cài đặt SDK Android trong Android Studio.sdk.dir=${path_to_android_sdk_location}
- Tạo APK máy chủ dưới dạng một dự án Gradle thông thường. Ví dụ: chạy
gradle
:./gradlew :app:assembleDebug
Tệp APK nằm trong:
packages/apps/Car/Templates/Host/app/build/outputs/apk/debug/app-debug.apk
Nhúng máy chủ AOSP
- Tạo tệp
Android.mk
mới để bao gồm nội dung sau: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)
- Đổi tên
app-debug.apk
thànhAOSPHost.apk
rồi đặt APK vào trong cùng thư mục vớiAndroid.mk
. - Thêm mô-đun
CarAOSPHost
vào các mục tiêu của bạn dưới dạngPRODUCT_PACKAGES
:PRODUCT_PACKAGES += \ CarAOSPHost \
Thêm cấu hình quyền
- Tạo một tệp có tên là
com.android.car.templates.host.xml
để chứa các nội dung sau:<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>
- Trong mục tiêu của bạn, hãy thêm tệp cấu hình vào các mục tiêu:
PRODUCT_COPY_FILES += \ <the file root>/com.android.car.templates.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.car.templates.host.xml
Tạo mục tiêu
Khi bạn tạo mục tiêu, máy chủ lưu trữ sẽ được cài đặt và quyền sẽ được cấp:
… android.car.permission.CAR_NAVIGATION_MANAGER: granted=true android.car.permission.CAR_DISPLAY_IN_CLUSTER: granted=true android.car.permission.TEMPLATE_RENDERER: granted=true …
Kiểm thử quá trình tích hợp
Để tạo và cài đặt các mẫu, hãy xem dự án GitHub này, car-samples/car_app_library.