Mevcut bir HIDL VHAL uygulamasını AIDL VHAL'ye 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 benzerdir.
| HIDL VHAL | AIDL VHAL |
|---|---|
getAllPropertyConfigs() |
VehicleHal.listProperties() ile aynı |
getValues(callback, requests) |
Her istek için VehicleHal.get()'ı ve geri çağırmaları çağırabilir.
|
dump() |
VehicleHal.dump() 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 üstbilgi 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.
VehicleHalUtilskitaplığındaki yardımcı dosyaVehicleHalTypes.h, yaygı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ı
| Şunu kullanmayın: | Kullan |
|---|---|
hidl_vec |
std::vector |
hidl_string |
std::string |
android::sp |
std::shared_ptr |
android::wp |
std::weak_ptr |