Để di chuyển triển khai HIDL VHAL hiện có sang AIDL VHAL, hãy sử dụng cấu trúc triển khai tham chiếu AIDL để triển khai giao diện IVehicleHardware
.
Nếu việc triển khai HIDL hiện tại cũng tuân theo Việc triển khai tham chiếu HIDL , nhà cung cấp đã triển khai lớp Khi di chuyển từ HIDL VHAL sang AIDL VHAL, hãy xem xét những khác biệt này. Do đó, bạn phải bao gồm tất cả các tệp tiêu đề cho loại bạn cần. Tệp trợ giúp, Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle. Cập nhật lần gần đây nhất: 2024-04-29 UTC.VehicleHal
. IVehicleHardware
rất giống với VehicleHal
. HIDL Vhal AIDL VHL getAllPropertyConfigs()
Tương tự như VehicleHal.listProperties()
getValues(callback, requests)
Có thể gọi VehicleHal.get()
cho mỗi yêu cầu và có thể gọi lại các cuộc gọi lại. dump()
Tương tự như VehicleHal.dump()
checkHealth()
Có thể trả về VehicleHal.get()
registerPropertyChangeCallback()
Tương tự với cài đặt VehicleHal.mOnHalEvent
Sự khác biệt về loại trong AIDL
types.h
) cho tất cả các loại được tạo từ types.hal
. AIDL tạo một tệp tiêu đề cho mỗi loại. Ví dụ: VehiclePropValue.h
từ VehiclePropValue.aidl
.VehicleHalTypes.h
trong thư viện VehicleHalUtils
chứa hầu hết các loại phổ biến. Thay vì ... Sử dụng hidl_vec
std::vector
hidl_string
std::string
android::sp
std::shared_ptr
android::wp
std::weak_ptr
types.hal
đều giống nhau trong AIDL ngoại trừ:SubscribeFlags
bị xóa vì nó không được sử dụng vì onPropertySet
bị xóaUserFlags
hiện được xác định trong UserInfo.aidl
và phải được xác định là cờ thay vì enum. Trường cờ người dùng là một số nguyên có nhiều bit UserInfo.USER_FLAG_XXX
hoặc cùng nhau.RawValue
trong VehiclePropValue
được đổi tên thành RawPropValue
bytes
trong RawValue
được đổi tên thành byteValues