لنقل عملية تنفيذ حالية HIDL لواجهة VHAL إلى AIDL VHAL،
  استخدِم بنية 
  التنفيذ المرجعي لواجهة 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 ملف رأس واحدًا (types.h) لجميع الأنواع التي تم إنشاؤها منtypes.hal. تنشئ لغة AIDL ملف عنوان واحدًا لكل نوع. على سبيل المثال،VehiclePropValue.hمنVehiclePropValue.aidl.نتيجةً لذلك، يجب تضمين جميع ملفات العناوين للأنواع التي تحتاج إليها. يحتوي ملف مساعد VehicleHalTypes.hفي مكتبةVehicleHalUtilsعلى معظم الأنواع الشائعة.
- جميع الأنواع المحدّدة في types.halهي نفسها في AIDL باستثناء ما يلي:- تمت إزالة SubscribeFlagsلأنّه لم يتم استخدامه بسبب إزالةonPropertySet
- تم الآن تحديد UserFlagsفيUserInfo.aidlويجب تحديده كعلامة بدلاً من تعداد. حقل علامة المستخدم هو عدد صحيح يتضمّن عدةUserInfo.USER_FLAG_XXXعمليات bit-or معًا.
- تمت إعادة تسمية RawValueفيVehiclePropValueإلىRawPropValue
- تمت إعادة تسمية bytesفيRawValueإلىbyteValues
 
- تمت إزالة 
| بدلاً من ... | استخدام | 
|---|---|
| hidl_vec | std::vector | 
| hidl_string | std::string | 
| android::sp | std::shared_ptr | 
| android::wp | std::weak_ptr | 
