หากต้องการย้ายข้อมูลการใช้งาน HIDL VHAL ที่มีอยู่ไปยัง AIDL VHAL ให้ใช้โครงสร้าง การใช้งานการอ้างอิง AIDL เพื่อใช้งานอินเทอร์เฟซ IVehicleHardware
หากการใช้งาน HIDL ที่มีอยู่เป็นไปตาม
การใช้งานการอ้างอิง HIDL,
ผู้ให้บริการได้ใช้งานคลาส VehicleHal แล้ว IVehicleHardware คล้ายกับ VehicleHal มาก
| HIDL VHAL | AIDL VHAL |
|---|---|
getAllPropertyConfigs() |
เหมือนกับ VehicleHal.listProperties() |
getValues(callback, requests) |
เรียก VehicleHal.get() สำหรับคำขอแต่ละรายการและเรียกใช้การเรียกกลับได้
|
dump() |
เหมือนกับ VehicleHal.dump() |
checkHealth() |
ส่งคืน VehicleHal.get() ได้ |
registerPropertyChangeCallback() |
คล้ายกับการตั้งค่า VehicleHal.mOnHalEvent |
ความแตกต่างของประเภทใน AIDL
เมื่อย้ายข้อมูลจาก HIDL VHAL ไปยัง AIDL VHAL ให้พิจารณาความแตกต่างต่อไปนี้
- HIDL จะสร้างไฟล์ส่วนหัว (
types.h) 1 ไฟล์สำหรับทุกประเภทที่สร้างจากtypes.hal. ส่วน AIDL จะสร้างไฟล์ส่วนหัว 1 ไฟล์สำหรับแต่ละประเภท เช่นVehiclePropValue.hจากVehiclePropValue.aidlด้วยเหตุนี้ คุณจึงต้องรวมไฟล์ส่วนหัวทั้งหมดสำหรับประเภทที่ต้องการ ไฟล์ Helper
VehicleHalTypes.hในไลบรารีVehicleHalUtilsมีประเภททั่วไปส่วนใหญ่ - ประเภททั้งหมดที่กำหนดไว้ใน
types.halจะเหมือนกันใน AIDL ยกเว้น ประเภทต่อไปนี้SubscribeFlagsถูกนำออกเนื่องจากไม่ได้ใช้เพราะonPropertySetถูกนำออกUserFlagsกำหนดไว้ในUserInfo.aidlแล้ว และควรกำหนด เป็นแฟล็กแทนที่จะเป็น Enum ฟิลด์แฟล็กผู้ใช้เป็นจำนวนเต็มที่มีการUserInfo.USER_FLAG_XXXOR บิตเข้าด้วยกันRawValueในVehiclePropValueเปลี่ยนชื่อเป็นRawPropValue- เปลี่ยนชื่อ
bytesในRawValueเป็นbyteValues
| แทนที่จะเป็น ... | ใช้ |
|---|---|
hidl_vec |
std::vector |
hidl_string |
std::string |
android::sp |
std::shared_ptr |
android::wp |
std::weak_ptr |