Pour migrer une implémentation HIDL VHAL existante vers une implémentation AIDL VHAL, utilisez la structure d'implémentation de référence AIDL pour implémenter l'interface IVehicleHardware
.
Si l'implémentation HIDL existante suit également Implémentation de référence HIDL , le fournisseur a implémenté la classe Lors de la migration de HIDL VHAL vers AIDL VHAL, tenez compte de ces différences. Par conséquent, vous devez inclure tous les fichiers d’en-tête pour les types dont vous avez besoin. Un fichier d'assistance, Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées. Dernière mise à jour le 2024/04/29 (UTC).VehicleHal
. IVehicleHardware
est très similaire à VehicleHal
. HIDL VHAL AIDL VHAL getAllPropertyConfigs()
Identique à VehicleHal.listProperties()
getValues(callback, requests)
Peut appeler VehicleHal.get()
pour chaque requête et appeler des rappels. dump()
Identique à VehicleHal.dump()
checkHealth()
Peut renvoyer VehicleHal.get()
registerPropertyChangeCallback()
Semblable à la définition VehicleHal.mOnHalEvent
Différences de type dans AIDL
types.h
) pour tous les types générés à partir de types.hal
. AIDL génère un fichier d'en-tête pour chaque type. Par exemple, VehiclePropValue.h
de VehiclePropValue.aidl
.VehicleHalTypes.h
dans la bibliothèque VehicleHalUtils
contient la plupart des types courants. Au lieu de ... Utiliser hidl_vec
std::vector
hidl_string
std::string
android::sp
std::shared_ptr
android::wp
std::weak_ptr
types.hal
sont identiques dans AIDL, à l'exception de :SubscribeFlags
est supprimé car il n'est pas utilisé car onPropertySet
est suppriméUserFlags
est désormais défini dans UserInfo.aidl
et doit être défini comme un indicateur au lieu d'une énumération. Un champ d'indicateur utilisateur est un entier comportant plusieurs bits UserInfo.USER_FLAG_XXX
ou ensemble.RawValue
dans VehiclePropValue
est renommé RawPropValue
bytes
de RawValue
sont renommés byteValues