หากต้องการย้ายข้อมูลการติดตั้งใช้งาน 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.hal
AIDL จะสร้างไฟล์ส่วนหัว 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 |