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.halkaynağı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.aidladresindenVehiclePropValue.h.Bu nedenle, ihtiyacınız olan türler için tüm başlık dosyalarını eklemeniz gerekir.
VehicleHalTypes.hkitaplığındaki bir yardımcı dosya,VehicleHalUtilsyaygın türlerin çoğunu içerir. types.haliçinde tanımlanan tüm türler, AIDL'de aşağıdakiler hariç aynıdır:onPropertySetkaldırıldığı için kullanılmayanSubscribeFlagskaldırıldıUserFlagsartıkUserInfo.aidliçinde tanımlanıyor ve enum yerine işaret olarak tanımlanması gerekiyor. Kullanıcı işareti alanı, birden fazlaUserInfo.USER_FLAG_XXXbit-or'a sahip bir tam sayıdır.VehiclePropValueiçindekiRawValue,RawPropValueolarak yeniden adlandırıldıRawValueiçindekibytes,byteValuesolarak yeniden adlandırıldı
| ... yerine | Kullan |
|---|---|
hidl_vec |
std::vector |
hidl_string |
std::string |
android::sp |
std::shared_ptr |
android::wp |
std::weak_ptr |