Dự án nguồn mở Android (AOSP) Automotive App Host là một phần của Thư viện ứng dụng ô tô mà các nhà phát triển bên thứ ba (3P) sử dụng để bật ứng dụng cho Android Automotive. Máy chủ ứng dụng là một ứng dụng hệ thống cho phép các ứng dụng ô tô của bên thứ ba thay mặt hiển thị các thành phần giao diện người dùng (UI) theo kiểu OEM.
Để chạy ứng dụng bên thứ ba, bạn phải cài đặt cả ứng dụng bên thứ ba và Máy chủ lưu trữ ứng dụng ô tô AOSP:
- Automotive App Host cung cấp cho các ứng dụng bên thứ ba một bộ mẫu giao diện người dùng và các thành phần được tối ưu hoá cho xe, bao gồm cả các tính năng như khả năng hữu dụng và an toàn.
- Nhà sản xuất thiết bị gốc (OEM) có thể tạo kiểu cho các mẫu và thành phần giao diện người dùng này.
- Kết quả là gì? Ứng dụng bên thứ ba được tích hợp hiệu quả vào hệ thống thông tin giải trí của nhà sản xuất thiết bị gốc (OEM).
Trang này giải thích cách tạo Máy chủ ứng dụng ô tô AOSP từ dự án Gradle trong nhánh ub-automotive
, sau đó cách tích hợp Máy chủ ứng dụng ô tô AOSP vào mục tiêu ô tô.
Hãy xem đoạn mã vừa tải
Cách kiểm tra mã đã tách:
- 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 phần Khởi chạy ứng dụng Repo.
- Cài đặt Android Studio.
Tạo tệp APK máy chủ AOSP
- 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
của dự án. 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 tệp APK lưu trữ dưới dạng một dự án Gradle thông thường. Ví dụ: chạy lệnh
gradle
:./gradlew :app:assembleDebug
Tệp APK nằm ở:
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 để thê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
và đặt tệp APK vào cùng thư mục vớiAndroid.mk
. - Thêm mô-đun
CarAOSPHost
vào các mục tiêu 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 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, hãy thêm tệp cấu hình vào 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à cấp quyền:
… 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.