Mevcut bir HIDL VHAL uygulamasını AIDL VHAL'e taşımak için IVehicleHardware
arayüzünü uygulamak üzere AIDL referans uygulamasını kullanın.
Mevcut HIDL uygulaması da HIDL referans uygulamasını izliyorsa tedarikçi firma VehicleHal
sınıfını uygulamıştır. IVehicleHardware
, VehicleHal
'a çok benziyor.
HIDL VHAL | AIDL VHAL |
---|---|
getAllPropertyConfigs() |
VehicleHal.listProperties() adlı otel ile aynı |
getValues(callback, requests) |
Her istek için VehicleHal.get() 'ü ve geri aramaları arayabilir.
|
dump() |
VehicleHal.dump() adlı otel ile aynı |
checkHealth() |
VehicleHal.get() değerini döndürebilir |
registerPropertyChangeCallback() |
VehicleHal.mOnHalEvent ayarına benzer |
AIDL'deki tür farklılıkları
HIDL VHAL'den AIDL VHAL'e geçiş yaparken bu farklılıkları göz önünde bulundurun.
- HIDL,
types.hal
dosyasından oluşturulan tüm türler için bir başlık dosyası (types.h
) oluşturur. AIDL her tür için bir başlık dosyası oluşturur. Örneğin,VehiclePropValue.aidl
'danVehiclePropValue.h
.Bu nedenle, ihtiyacınız olan türlerin tüm üstbilgi dosyalarını eklemeniz gerekir.
VehicleHalUtils
kitaplığındakiVehicleHalTypes.h
yardımcı dosyası, yaygın türlerin çoğunu içerir. types.hal
içinde tanımlanan tüm türler, aşağıdakiler hariç AIDL'de aynıdır:onPropertySet
kaldırıldığı için kullanılmadığı içinSubscribeFlags
kaldırılırUserFlags
artıkUserInfo.aidl
içinde tanımlanıyor ve enum yerine işaret olarak tanımlanmalıdır. Kullanıcı işareti alanı, birden fazlaUserInfo.USER_FLAG_XXX
bit-ve operatörünün birlikte kullanıldığı bir tam sayıdır.VehiclePropValue
'dakiRawValue
,RawPropValue
olarak yeniden adlandırılırRawValue
'dakibytes
,byteValues
olarak yeniden adlandırıldı
Bunun yerine ... | Kullan |
---|---|
hidl_vec |
std::vector |
hidl_string |
std::string |
android::sp |
std::shared_ptr |
android::wp |
std::weak_ptr |