HIDL VHAL माइग्रेशन गाइड

किसी मौजूदा 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 पर माइग्रेट करते समय, इन अंतरों का ध्यान रखें.

  1. HIDL, types.hal से जनरेट किए गए सभी टाइप के लिए एक हेडर फ़ाइल (types.h) जनरेट करता है. AIDL, हर टाइप के लिए एक हेडर फ़ाइल जनरेट करता है. उदाहरण के लिए, VehiclePropValue.aidl से VehiclePropValue.h.

    इसलिए, आपको अपनी ज़रूरत के हिसाब से सभी हेडर फ़ाइलें शामिल करनी होंगी. VehicleHalUtils लाइब्रेरी में मौजूद VehicleHalTypes.h हेल्पर फ़ाइल में, आम तौर पर इस्तेमाल होने वाले ज़्यादातर टाइप शामिल होते हैं.

  2. इसके बजाय ... इस्तेमाल करें
    hidl_vec std::vector
    hidl_string std::string
    android::sp std::shared_ptr
    android::wp std::weak_ptr
  3. types.hal में तय किए गए सभी टाइप, AIDL में एक जैसे होते हैं. हालांकि, इनमें ये टाइप शामिल नहीं होते:
    • SubscribeFlags को हटा दिया गया है, क्योंकि इसका इस्तेमाल नहीं किया जाता है, क्योंकि onPropertySet को हटा दिया गया है
    • UserFlags को अब UserInfo.aidl में तय किया गया है और इसे सूची के बजाय, फ़्लैग के तौर पर तय किया जाना चाहिए. उपयोगकर्ता फ़्लैग फ़ील्ड एक पूर्णांक होता है, जिसमें कई UserInfo.USER_FLAG_XXX बिट-या एक साथ होते हैं.
    • VehiclePropValue में RawValue का नाम बदलकर RawPropValue कर दिया गया है
    • RawValue में bytes का नाम बदलकर byteValues कर दिया गया है