Máy chủ ứng dụng ô tô của Dự án nguồn mở Android (AOSP) là một phần của Thư viện ứng dụng ô 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 Ô tô. 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 3P thay mặt nó 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 3P, phải cài đặt cả ứng dụng 3P và Máy chủ ứng dụng ô tô AOSP:
- Máy chủ ứng dụng ô tô cung cấp cho ứng dụng 3P một bộ mẫu giao diện người dùng và thành phần được tối ưu hóa cho ô tô, bao gồm các khả năng như khả năng sử dụng và an toàn.
- 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ả? Các ứng dụng 3P đượ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 Máy chủ ứng dụng ô tô AOSP từ dự án Gradle trong nhánh ub-automotive
và sau đó cách tích hợp Máy chủ ứng dụng ô tô AOSP vào mục tiêu ô tô.
Kiểm tra mã
Để kiểm tra mã chưa được nhóm:
- Chạy lệnh sau:
repo init -u https://android.googlesource.com/platform/manifest -b ub-automotive-main 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 tạo ứng dụng khách Repo .
- Cài đặt Android Studio .
Tạo APK máy chủ AOSP
- Hãy xem
ub-automotive
và sau đó 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 trong 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 dự án Gradle điển hình. 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 một 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
và đặt APK vào cùng thư mục vớiAndroid.mk
. - Thêm mô-đun
CarAOSPHost
vào 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
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 của bạn, hãy thêm tệp cấu hình vào mục tiêu của bạn:
PRODUCT_COPY_FILES += \ <the file root>/com.android.car.templates.host.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/com.android.car.templates.host.xml
Xây dựng mục tiêu
Khi bạn xây dựng mục tiêu, máy chủ sẽ được cài đặt và được 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 tra sự tích hợp
Để xây dựng và cài đặt các mẫu, hãy xem dự án GitHub này, car-samples/car_app_library .