Per migrare un'implementazione HIDL VHAL esistente in una AIDL VHAL, utilizzare la struttura di implementazione di riferimento AIDL per implementare l'interfaccia IVehicleHardware
.
Se segue anche l'implementazione HIDL esistente Implementazione del riferimento HIDL , il fornitore ha implementato la classe Durante la migrazione da HIDL VHAL a AIDL VHAL, considerare queste differenze. Di conseguenza, è necessario includere tutti i file di intestazione per i tipi necessari. Un file di supporto, I campioni di contenuti e codice in questa pagina sono soggetti alle licenze descritte nella Licenza per i contenuti. Java e OpenJDK sono marchi o marchi registrati di Oracle e/o delle sue società consociate. Ultimo aggiornamento 2024-04-29 UTC.VehicleHal
. IVehicleHardware
è molto simile a VehicleHal
. HIDL VHAL AIDL VHAL getAllPropertyConfigs()
Uguale a VehicleHal.listProperties()
getValues(callback, requests)
Può chiamare VehicleHal.get()
per ogni richiesta e può chiamare callback. dump()
Uguale a VehicleHal.dump()
checkHealth()
Può restituire VehicleHal.get()
registerPropertyChangeCallback()
Simile all'impostazione VehicleHal.mOnHalEvent
Differenze di tipo in AIDL
types.h
) per tutti i tipi generati types.hal
. AIDL genera un file di intestazione per ciascun tipo. Ad esempio, VehiclePropValue.h
da VehiclePropValue.aidl
.VehicleHalTypes.h
nella libreria VehicleHalUtils
contiene la maggior parte dei tipi comuni. Invece di ... Utilizzo hidl_vec
std::vector
hidl_string
std::string
android::sp
std::shared_ptr
android::wp
std::weak_ptr
types.hal
sono gli stessi in AIDL ad eccezione di:SubscribeFlags
viene rimosso poiché non viene utilizzato perché onPropertySet
viene rimossoUserFlags
è ora definito in UserInfo.aidl
e dovrebbe essere definito come flag anziché come enum. Un campo flag utente è un numero intero che ha più bit-or UserInfo.USER_FLAG_XXX
insieme.RawValue
in VehiclePropValue
viene rinominato RawPropValue
bytes
in RawValue
viene rinominato byteValues