किसी मौजूदा HIDL VHAL को AIDL VHAL पर माइग्रेट करने के लिए, IVehicleHardware
इंटरफ़ेस को लागू करने के लिए, AIDL रेफ़रंस लागू करने वाले स्ट्रक्चर का इस्तेमाल करें.
अगर मौजूदा 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.hal
से जनरेट किए गए सभी टाइप के लिए एक हेडर फ़ाइल (types.h
) जनरेट करता है. AIDL, हर टाइप के लिए एक हेडर फ़ाइल जनरेट करता है. उदाहरण के लिए,VehiclePropValue.aidl
सेVehiclePropValue.h
.इसलिए, आपको अपनी ज़रूरत के हिसाब से सभी हेडर फ़ाइलें शामिल करनी होंगी.
VehicleHalUtils
लाइब्रेरी में मौजूदVehicleHalTypes.h
हेल्पर फ़ाइल में, आम तौर पर इस्तेमाल होने वाले ज़्यादातर टाइप शामिल होते हैं. types.hal
में तय किए गए सभी टाइप, AIDL में एक जैसे होते हैं. हालांकि, इनमें ये टाइप शामिल नहीं होते:SubscribeFlags
को हटा दिया गया है, क्योंकि इसका इस्तेमाल नहीं किया जाता है, क्योंकिonPropertySet
को हटा दिया गया हैUserFlags
को अबUserInfo.aidl
में तय किया गया है और इसे सूची के बजाय, फ़्लैग के तौर पर तय किया जाना चाहिए. उपयोगकर्ता फ़्लैग फ़ील्ड एक पूर्णांक होता है, जिसमें कईUserInfo.USER_FLAG_XXX
बिट-या एक साथ होते हैं.VehiclePropValue
मेंRawValue
का नाम बदलकरRawPropValue
कर दिया गया हैRawValue
मेंbytes
का नाम बदलकरbyteValues
कर दिया गया है
इसके बजाय ... | इस्तेमाल करें |
---|---|
hidl_vec |
std::vector |
hidl_string |
std::string |
android::sp |
std::shared_ptr |
android::wp |
std::weak_ptr |