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