Mevcut bir HIDL VHAL uygulamasını AIDL VHAL'e taşımak için IVehicleHardware
arayüzünü uygulamak üzere AIDL referans uygulaması yapısını kullanın.
Mevcut HIDL uygulaması da HIDL referans uygulamasını takip ediyorsa satıcı, VehicleHal
sınıfını uygulamıştır. IVehicleHardware
, VehicleHal
ile çok benzer.
HIDL VHAL | AIDL VHAL |
---|---|
getAllPropertyConfigs() |
VehicleHal.listProperties() adlı otel ile aynı |
getValues(callback, requests) |
Her istek için VehicleHal.get() 'ı arayabilir ve geri aramaları arayabilir.
|
dump() |
VehicleHal.dump() adlı otel ile aynı |
checkHealth() |
VehicleHal.get() öğesini döndürebilir |
registerPropertyChangeCallback() |
VehicleHal.mOnHalEvent ayarına benzer |
AIDL'deki tür farklılıkları
HIDL VHAL'den AIDL VHAL'ye geçiş yaparken bu farklılıkları göz önünde bulundurun.
- HIDL,
types.hal
kaynağı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 üstbilgi dosyası oluşturur. Örneğin,VehiclePropValue.aidl
adresindenVehiclePropValue.h
.Bu nedenle, ihtiyacınız olan türler için tüm başlık dosyalarını eklemeniz gerekir.
VehicleHalTypes.h
kitaplığındaki bir yardımcı dosya,VehicleHalUtils
yaygın türlerin çoğunu içerir. types.hal
içinde tanımlanan tüm türler, AIDL'de aşağıdakiler hariç aynıdır:onPropertySet
kaldırıldığı için kullanılmayanSubscribeFlags
kaldırıldıUserFlags
artıkUserInfo.aidl
içinde tanımlanıyor ve enum yerine işaret olarak tanımlanması gerekiyor. Kullanıcı işareti alanı, birden fazlaUserInfo.USER_FLAG_XXX
bit-or'a sahip bir tam sayıdır.VehiclePropValue
içindekiRawValue
,RawPropValue
olarak yeniden adlandırıldıRawValue
içindekibytes
,byteValues
olarak yeniden adlandırıldı
... yerine | Kullan |
---|---|
hidl_vec |
std::vector |
hidl_string |
std::string |
android::sp |
std::shared_ptr |
android::wp |
std::weak_ptr |