หากต้องการย้ายข้อมูลการใช้งาน VHAL HIDL ที่มีอยู่ไปยัง VHAL AIDL ให้ใช้โครงสร้างการใช้งานตามข้อมูลอ้างอิง 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 จะสร้างไฟล์ส่วนหัว 1 ไฟล์ (
types.h
) สำหรับทุกประเภทที่สร้างขึ้นจากtypes.hal
AIDL จะสร้างไฟล์ส่วนหัว 1 ไฟล์สำหรับแต่ละประเภท เช่นVehiclePropValue.h
จากVehiclePropValue.aidl
คุณจึงต้องรวมไฟล์ส่วนหัวทั้งหมดสำหรับประเภทที่ต้องการ ไฟล์ Helper
VehicleHalTypes.h
ในไลบรารีVehicleHalUtils
มีประเภททั่วไปส่วนใหญ่ - ประเภททั้งหมดที่กำหนดไว้ใน
types.hal
จะเหมือนกันใน AIDL ยกเว้นสำหรับรายการต่อไปนี้SubscribeFlags
ถูกนำออกเนื่องจากไม่มีการใช้งาน เนื่องจากonPropertySet
ถูกนำออก- ตอนนี้
UserFlags
ได้รับการกําหนดในUserInfo.aidl
แล้ว และควรกําหนดเป็น Flag แทน Enum ช่อง Flag ของผู้ใช้คือจำนวนเต็มที่มี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 |