หากต้องการย้ายข้อมูลการใช้งาน 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 |