Untuk memigrasikan implementasi VHAL HIDL yang ada ke VHAL AIDL,
gunakan struktur
implementasi referensi AIDL
untuk mengimplementasikan antarmuka IVehicleHardware.
Jika implementasi HIDL yang ada juga mengikuti
implementasi referensi HIDL,
vendor telah menerapkan class VehicleHal. IVehicleHardware sangat mirip dengan VehicleHal.
| HIDL VHAL | AIDL VHAL |
|---|---|
getAllPropertyConfigs() |
Sama seperti VehicleHal.listProperties() |
getValues(callback, requests) |
Dapat memanggil VehicleHal.get() untuk setiap permintaan dan dapat memanggil callback.
|
dump() |
Sama seperti VehicleHal.dump() |
checkHealth() |
Dapat menampilkan VehicleHal.get() |
registerPropertyChangeCallback() |
Serupa dengan setelan VehicleHal.mOnHalEvent |
Perbedaan jenis di AIDL
Saat bermigrasi dari HIDL VHAL ke AIDL VHAL, pertimbangkan perbedaan berikut.
- HIDL menghasilkan satu file header (
types.h) untuk semua jenis yang dihasilkan daritypes.hal. AIDL membuat satu file header untuk setiap jenis. Misalnya,VehiclePropValue.hdariVehiclePropValue.aidl.Oleh karena itu, Anda harus menyertakan semua file header untuk jenis yang Anda butuhkan. File helper,
VehicleHalTypes.hdi libraryVehicleHalUtilsberisi sebagian besar jenis umum. - Semua jenis yang ditentukan dalam
types.halsama di AIDL kecuali untuk:SubscribeFlagsdihapus karena tidak digunakan karenaonPropertySetdihapusUserFlagskini ditentukan dalamUserInfo.aidldan harus ditentukan sebagai tanda, bukan enum. Kolom tanda pengguna adalah bilangan bulat yang memiliki beberapaUserInfo.USER_FLAG_XXXbit-or bersama-sama.RawValuediVehiclePropValuediganti namanya menjadiRawPropValuebytesdiRawValuediganti namanya menjadibyteValues
| Daripada ... | Gunakan |
|---|---|
hidl_vec |
std::vector |
hidl_string |
std::string |
android::sp |
std::shared_ptr |
android::wp |
std::weak_ptr |