Para migrar una implementación HIDL VHAL existente a un AIDL VHAL, utilice la estructura de implementación de referencia AIDL para implementar la interfaz IVehicleHardware
.
Si la implementación HIDL existente también sigue Implementación de referencia HIDL , el proveedor ha implementado la clase Al migrar de HIDL VHAL a AIDL VHAL, considere estas diferencias. Como resultado, debe incluir todos los archivos de encabezado para los tipos que necesita. Un archivo auxiliar, El contenido y el código de ejemplo de esta página están sujetos a las licencias que se describen en la licencia de contenido. Java y OpenJDK son marcas registradas de Oracle o sus entidades asociadas. Última actualización: 2024-04-29 (UTC).VehicleHal
. IVehicleHardware
es muy similar a VehicleHal
. HIDL VHAL AIDL VHAL getAllPropertyConfigs()
Igual que VehicleHal.listProperties()
getValues(callback, requests)
Puede llamar VehicleHal.get()
para cada solicitud y puede llamar a devoluciones de llamada. dump()
Igual que VehicleHal.dump()
checkHealth()
Puede devolver VehicleHal.get()
registerPropertyChangeCallback()
Similar a configurar VehicleHal.mOnHalEvent
Diferencias de tipos en AIDL
types.h
) para todos los tipos generados a partir types.hal
. AIDL genera un archivo de encabezado para cada tipo. Por ejemplo, VehiclePropValue.h
de VehiclePropValue.aidl
.VehicleHalTypes.h
en la biblioteca VehicleHalUtils
contiene la mayoría de los tipos comunes. En lugar de ... Usar hidl_vec
std::vector
hidl_string
std::string
android::sp
std::shared_ptr
android::wp
std::weak_ptr
types.hal
son iguales en AIDL excepto por:SubscribeFlags
se elimina porque no se usa porque se elimina onPropertySet
UserFlags
ahora está definido en UserInfo.aidl
y debe definirse como una bandera en lugar de una enumeración. Un campo de indicador de usuario es un número entero que tiene varios bits UserInfo.USER_FLAG_XXX
o juntos.RawValue
en VehiclePropValue
pasa a llamarse RawPropValue
bytes
en RawValue
pasan a llamarse byteValues