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

किसी मौजूदा HIDL VHAL को AIDL VHAL पर माइग्रेट करने के लिए, IVehicleHardware इंटरफ़ेस को लागू करने के लिए, AIDL रेफ़रंस लागू करने वाले स्ट्रक्चर का इस्तेमाल करें.

अगर मौजूदा HIDL लागू करने का तरीका भी HIDL रेफ़रंस लागू करने का तरीका के मुताबिक है, तो इसका मतलब है कि वेंडर ने VehicleHal क्लास लागू कर दिया है. IVehicleHardware, VehicleHal से काफ़ी मिलता-जुलता है.

एचआईडीएल वीएचएल AIDL VHAL
getAllPropertyConfigs() VehicleHal.listProperties() के बराबर किराया
getValues(callback, requests) हर अनुरोध के लिए VehicleHal.get() को कॉल कर सकता है और कॉलबैक को कॉल कर सकता है.
dump() VehicleHal.dump() के बराबर किराया
checkHealth() VehicleHal.get() को वापस लाया जा सकता है
registerPropertyChangeCallback() VehicleHal.mOnHalEvent सेटिंग से मिलता-जुलता

एआईडीएल में टाइप में अंतर

HIDL VHAL से AIDL VHAL पर माइग्रेट करते समय, इन अंतरों का ध्यान रखें.

  1. HIDL एक हेडर फ़ाइल (types.h) जनरेट करता है. यह types.hal से जनरेट होने वाले सभी टाइप के लिए होता है. 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 में बताए गए सभी टाइप, एआईडीएल में एक जैसे हैं इसे छोड़कर:
    • SubscribeFlags को हटा दिया गया है, क्योंकि इसका इस्तेमाल नहीं किया गया है, क्योंकि onPropertySet को हटा दिया गया है
    • UserFlags की जानकारी अब UserInfo.aidl में दी गई है. इसे enum के बजाय, फ़्लैग के तौर पर बताया जाना चाहिए. उपयोगकर्ता फ़्लैग फ़ील्ड एक पूर्णांक होता है, जिसमें एक से ज़्यादा UserInfo.USER_FLAG_XXX बिट-या एक साथ होते हैं.
    • VehiclePropValue में RawValue का नाम बदलकर RawPropValue कर दिया गया है
    • RawValue में bytes का नाम बदलकर byteValues कर दिया गया है