Para migrar uma implementação HIDL VHAL existente para um AIDL VHAL, use a estrutura de implementação de referência AIDL para implementar a interface IVehicleHardware
.
Se a implementação HIDL existente também seguir Implementação de referência HIDL , o fornecedor implementou a classe Ao migrar do HIDL VHAL para o AIDL VHAL, considere estas diferenças. Como resultado, você deve incluir todos os arquivos de cabeçalho dos tipos necessários. Um arquivo auxiliar, O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas. Última atualização 2023-11-27 UTC.VehicleHal
. IVehicleHardware
é muito semelhante ao VehicleHal
. HIDL VHAL AIDL VHAL getAllPropertyConfigs()
O mesmo que VehicleHal.listProperties()
getValues(callback, requests)
Pode chamar VehicleHal.get()
para cada solicitação e chamar retornos de chamada. dump()
O mesmo que VehicleHal.dump()
checkHealth()
Pode retornar VehicleHal.get()
registerPropertyChangeCallback()
Semelhante à configuração VehicleHal.mOnHalEvent
Diferenças de tipo no AIDL
types.h
) para todos os tipos gerados a partir de types.hal
. AIDL gera um arquivo de cabeçalho para cada tipo. Por exemplo, VehiclePropValue.h
de VehiclePropValue.aidl
.VehicleHalTypes.h
na biblioteca VehicleHalUtils
contém a maioria dos tipos comuns. Em vez de ... Usar hidl_vec
std::vector
hidl_string
std::string
android::sp
std::shared_ptr
android::wp
std::weak_ptr
types.hal
são iguais em AIDL , exceto :SubscribeFlags
foi removido porque não é usado porque onPropertySet
foi removidoUserFlags
agora está definido em UserInfo.aidl
e deve ser definido como um sinalizador em vez de um enum. Um campo de sinalizador de usuário é um número inteiro que possui vários bits UserInfo.USER_FLAG_XXX
ou juntos.RawValue
em VehiclePropValue
foi renomeado como RawPropValue
bytes
em RawValue
são renomeados como byteValues