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ı çağırabilir.
|
dump() |
VehicleHal.dump() adlı otel ile aynı |
checkHealth() |
VehicleHal.get() sonucunu 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
kaynağından oluşturulan tüm türler için bir üst bilgi dosyası (types.h
) oluşturur. AIDL her tür için bir başlık dosyası oluşturur. Örneğin,VehiclePropValue.aidl
'danVehiclePropValue.h
.Sonuç olarak, ihtiyacınız olan türler için tüm başlık 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ğıdaki durumlar haricinde 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şaret alanı, birden fazlaUserInfo.USER_FLAG_XXX
bitine veya birlikte değerine sahip bir tam sayıdır.VehiclePropValue
'dakiRawValue
,RawPropValue
olarak yeniden adlandırıldıRawValue
'dakibytes
,byteValues
olarak yeniden adlandırıldı
Bunun yerine ... | Kullanım |
---|---|
hidl_vec |
std::vector |
hidl_string |
std::string |
android::sp |
std::shared_ptr |
android::wp |
std::weak_ptr |