HIDL VHAL geçiş kılavuzu

Mevcut bir HIDL VHAL uygulamasını bir AIDL VHAL'e geçirmek için IVehicleHardware arayüzünü uygulamak üzere AIDL referans uygulama yapısını kullanın.

Mevcut HIDL uygulaması da takip ederse HIDL referans uygulaması , satıcı VehicleHal sınıfını uygulamıştır. IVehicleHardware VehicleHal çok benzer.

HİDL VHAL AIDLVHAL
getAllPropertyConfigs() VehicleHal.listProperties() ile aynı
getValues(callback, requests) Her istek için VehicleHal.get() ı arayabilir ve geri aramaları çağırabilir.
dump() VehicleHal.dump() ile aynı
checkHealth() VehicleHal.get() işlevini 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.

  1. 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 öğesinden VehiclePropValue.h .

    Sonuç olarak, ihtiyacınız olan türlere ilişkin tüm başlık dosyalarını eklemelisiniz. VehicleHalUtils kitaplığındaki VehicleHalTypes.h adlı yardımcı dosya, yaygın türlerin çoğunu içerir.

  2. Yerine ... Kullanmak
    hidl_vec std::vector
    hidl_string std::string
    android::sp std::shared_ptr
    android::wp std::weak_ptr
  3. types.hal tanımlanan tüm türler, aşağıdakiler dışında AIDL'de aynıdır:
    • onPropertySet kaldırıldığı için SubscribeFlags kullanılmadığı için kaldırıldı
    • UserFlags artık UserInfo.aidl tanımlıdır ve numaralandırma yerine bayrak olarak tanımlanmalıdır. Kullanıcı bayrağı alanı, birden fazla UserInfo.USER_FLAG_XXX biti veya birlikte içeren bir tamsayıdır.
    • VehiclePropValue RawValue RawPropValue olarak yeniden adlandırıldı
    • RawValue bytes byteValues ​​olarak yeniden adlandırıldı