Aby przeprowadzić migrację istniejącej implementacji HIDL VHAL do AIDL VHAL, użyj referencyjnej struktury implementacji AIDL w celu zaimplementowania interfejsu IVehicleHardware
.
Jeśli następuje również istniejąca implementacja HIDL Implementacja referencyjna HIDL , sprzedawca zaimplementował klasę Podczas migracji z HIDL VHAL do AIDL VHAL należy wziąć pod uwagę te różnice. W rezultacie musisz dołączyć wszystkie pliki nagłówkowe dla potrzebnych typów. Plik pomocniczy Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych. Ostatnia aktualizacja: 2024-04-29 UTC.VehicleHal
. IVehicleHardware
jest bardzo podobny do VehicleHal
. HIDL VHAL AIDL VHAL getAllPropertyConfigs()
To samo co VehicleHal.listProperties()
getValues(callback, requests)
Może wywoływać VehicleHal.get()
dla każdego żądania i wywoływać wywołania zwrotne. dump()
To samo co VehicleHal.dump()
checkHealth()
Może zwrócić VehicleHal.get()
registerPropertyChangeCallback()
Podobne do ustawiania VehicleHal.mOnHalEvent
Różnice typów w AIDL
types.h
) dla wszystkich typów wygenerowanych z types.hal
. AIDL generuje jeden plik nagłówkowy dla każdego typu. Na przykład VehiclePropValue.h
z VehiclePropValue.aidl
.VehicleHalTypes.h
w bibliotece VehicleHalUtils
zawiera większość popularnych typów. Zamiast ... Używać hidl_vec
std::vector
hidl_string
std::string
android::sp
std::shared_ptr
android::wp
std::weak_ptr
types.hal
są takie same w AIDL z wyjątkiem :SubscribeFlags
został usunięty, ponieważ nie jest używany, ponieważ usunięto onPropertySet
UserFlags
jest teraz zdefiniowana w UserInfo.aidl
i powinna być zdefiniowana jako flaga, a nie wyliczenie. Pole flagi użytkownika to liczba całkowita zawierająca wiele bitów UserInfo.USER_FLAG_XXX
lub łącznie.RawValue
w VehiclePropValue
została zmieniona na RawPropValue
bytes
w RawValue
zostaje zmieniona na byteValues