لنقل عملية تنفيذ 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 ملفًا واحدًا للرأس (
types.h
) لجميع الأنواع التي تم إنشاؤها منtypes.hal
. تُنشئ AIDL ملف عنوان واحدًا لكل نوع. على سبيل المثال،VehiclePropValue.h
منVehiclePropValue.aidl
.نتيجةً لذلك، عليك تضمين جميع ملفات الرأس للأنواع التي تحتاج إليها. ملف مساعد،
VehicleHalTypes.h
في مكتبةVehicleHalUtils
يحتوي على معظم الأنواع الشائعة. - جميع الأنواع المحدّدة في
types.hal
هي نفسها في AIDL باستثناء:- تمت إزالة
SubscribeFlags
لأنّه لم يتم استخدامه بسبب إزالةonPropertySet
- تمّ الآن تعريف
UserFlags
فيUserInfo.aidl
ويجب تعريفه كعلامة بدلاً من عنصر مصنّف. حقل إبلاغ المستخدم هو عدد صحيح يحتوي على عدة رموز بت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 |