27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main yerine android-latest-release kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Mevcut bir HIDL VHAL uygulamasını AIDL VHAL'e taşımak için IVehicleHardware arayüzünü uygulamak üzere AIDL referans uygulamasını kullanın.
Mevcut HIDL uygulaması da HIDL referans uygulamasını izliyorsa tedarikçi firma VehicleHal sınıfını uygulamıştır. IVehicleHardware, VehicleHal'a çok benziyor.
HIDL VHAL
AIDL VHAL
getAllPropertyConfigs()
VehicleHal.listProperties() adlı otel ile aynı
getValues(callback, requests)
Her istek için VehicleHal.get()'ü ve geri aramaları arayabilir.
dump()
VehicleHal.dump() adlı otel ile aynı
checkHealth()
VehicleHal.get() değerini döndürebilir
registerPropertyChangeCallback()
VehicleHal.mOnHalEvent ayarına benzer
AIDL'deki tür farklılıkları
HIDL VHAL'den AIDL VHAL'e geçiş yaparken bu farklılıkları göz önünde bulundurun.
HIDL, types.hal dosyasından oluşturulan tüm türler için bir başlık dosyası (types.h) oluşturur. AIDL her tür için bir başlık dosyası oluşturur. Örneğin,
VehiclePropValue.aidl'dan VehiclePropValue.h.
Bu nedenle, ihtiyacınız olan türlerin tüm üstbilgi dosyalarını eklemeniz gerekir. VehicleHalUtils kitaplığındaki VehicleHalTypes.h yardımcı dosyası, yaygın türlerin çoğunu içerir.
Bunun yerine ...
Kullan
hidl_vec
std::vector
hidl_string
std::string
android::sp
std::shared_ptr
android::wp
std::weak_ptr
types.hal içinde tanımlanan tüm türler, aşağıdakiler hariç AIDL'de aynıdır:
onPropertySet kaldırıldığı için kullanılmadığı için SubscribeFlags kaldırılır
UserFlags artık UserInfo.aidl içinde tanımlanıyor ve enum yerine işaret olarak tanımlanmalıdır. Kullanıcı işareti alanı, birden fazla UserInfo.USER_FLAG_XXX bit-ve operatörünün birlikte kullanıldığı bir tam sayıdır.
VehiclePropValue'daki RawValue,
RawPropValue olarak yeniden adlandırıldı
RawValue'daki bytes, byteValues olarak yeniden adlandırıldı
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[[["Anlaması kolay","easyToUnderstand","thumb-up"],["Sorunumu çözdü","solvedMyProblem","thumb-up"],["Diğer","otherUp","thumb-up"]],[["İhtiyacım olan bilgiler yok","missingTheInformationINeed","thumb-down"],["Çok karmaşık / çok fazla adım var","tooComplicatedTooManySteps","thumb-down"],["Güncel değil","outOfDate","thumb-down"],["Çeviri sorunu","translationIssue","thumb-down"],["Örnek veya kod sorunu","samplesCodeIssue","thumb-down"],["Diğer","otherDown","thumb-down"]],["Son güncelleme tarihi: 2025-07-27 UTC."],[],[],null,["# HIDL VHAL migration guide\n\nTo migrate an existing **HIDL** VHAL implementation to an **AIDL** VHAL,\nuse the\n[AIDL reference implementation](/docs/automotive/vhal/reference-implementation)\nstructure to implement the `IVehicleHardware` interface.\n\nIf the existing HIDL implementation also follows\n[HIDL reference implementation](https://android.googlesource.com/platform/hardware/interfaces/+/refs/heads/android16-release/automotive/vehicle/2.0/default/impl/vhal_v2_0),\nthe vendor has implemented the `VehicleHal` class. `IVehicleHardware` is\nvery similar to `VehicleHal`.\n| **Note:** AIDL uses different types than HIDL. Some types used in the HIDL implementation must be migrated. For detail, see [Type differences in AIDL](#aidl-diffs) below.\n\n| HIDL VHAL | AIDL VHAL |\n|------------------------------------|----------------------------------------------------------------------|\n| `getAllPropertyConfigs()` | Same as `VehicleHal.listProperties()` |\n| `getValues(callback, requests)` | Can call `VehicleHal.get()` for each request and can call callbacks. |\n| `dump()` | Same as `VehicleHal.dump()` |\n| `checkHealth()` | Can return `VehicleHal.get()` |\n| `registerPropertyChangeCallback()` | Similar to setting `VehicleHal.mOnHalEvent` |\n\nType differences in AIDL\n------------------------\n\nWhen migrating from the HIDL VHAL to the AIDL VHAL, consider these differences.\n\n1. HIDL generates one header file (`types.h`) for all types generated from `types.hal`. AIDL generates one header file for each type. For example, `VehiclePropValue.h` from `VehiclePropValue.aidl`.\n\n As a result, you must include all header files for the types you need. A helper file,\n `VehicleHalTypes.h` in the `VehicleHalUtils` library contains most of\n the common types.\n\n| Instead of ... | Use |\n|----------------|-------------------|\n| `hidl_vec` | `std::vector` |\n| `hidl_string` | `std::string` |\n| `android::sp` | `std::shared_ptr` |\n| `android::wp` | `std::weak_ptr` |\n\n2. All types defined in `types.hal` are the same in AIDL **except** for:\n - `SubscribeFlags` is removed as it's not used because `onPropertySet` is removed\n - `UserFlags` is now defined in `UserInfo.aidl` and should be defined as a flag instead of an enum. A user flag field is an integer that has multiple `UserInfo.USER_FLAG_XXX` bit-or together.\n - `RawValue` in `VehiclePropValue` is renamed as `RawPropValue`\n - `bytes` in `RawValue` is renamed as `byteValues`"]]