27 মার্চ, 2025 থেকে, আমরা AOSP তৈরি করতে এবং অবদান রাখতে aosp-main এর পরিবর্তে android-latest-release ব্যবহার করার পরামর্শ দিচ্ছি। আরও তথ্যের জন্য, AOSP-তে পরিবর্তনগুলি দেখুন।
সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন
আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।
একটি বিদ্যমান HIDL VHAL বাস্তবায়নকে AIDL VHAL-এ স্থানান্তর করতে, IVehicleHardware ইন্টারফেস বাস্তবায়নের জন্য AIDL রেফারেন্স বাস্তবায়ন কাঠামো ব্যবহার করুন।
যদি বিদ্যমান HIDL বাস্তবায়নও HIDL রেফারেন্স বাস্তবায়নকে অনুসরণ করে, তাহলে বিক্রেতা VehicleHal ক্লাস বাস্তবায়ন করেছে। IVehicleHardware অনেকটা VehicleHal এর মতই।
HIDL VHAL
AIDL VHAL
getAllPropertyConfigs()
VehicleHal.listProperties() এর মতই
getValues(callback, requests)
প্রতিটি অনুরোধের জন্য VehicleHal.get() কল করতে পারেন এবং কলব্যাক কল করতে পারেন।
dump()
VehicleHal.dump() এর মতই
checkHealth()
VehicleHal.get() ফেরত দিতে পারে
registerPropertyChangeCallback()
VehicleHal.mOnHalEvent সেট করার অনুরূপ
এআইডিএল-এর প্রকারভেদ
HIDL VHAL থেকে AIDL VHAL-এ স্থানান্তর করার সময়, এই পার্থক্যগুলি বিবেচনা করুন।
HIDL types.hal থেকে উৎপন্ন সকল প্রকারের জন্য একটি হেডার ফাইল ( types.h ) তৈরি করে। AIDL প্রতিটি ধরনের জন্য একটি হেডার ফাইল তৈরি করে। উদাহরণস্বরূপ, VehiclePropValue.h থেকে VehiclePropValue.aidl ।
ফলস্বরূপ, আপনার প্রয়োজনীয় ধরণের জন্য আপনাকে অবশ্যই সমস্ত হেডার ফাইল অন্তর্ভুক্ত করতে হবে। VehicleHalUtils লাইব্রেরিতে একটি হেল্পার ফাইল, VehicleHalTypes.h এ বেশিরভাগ সাধারণ প্রকার রয়েছে।
এর পরিবর্তে...
ব্যবহার করুন
hidl_vec
std::vector
hidl_string
std::string
android::sp
std::shared_ptr
android::wp
std::weak_ptr
types.hal তে সংজ্ঞায়িত সমস্ত প্রকার এআইডিএল-এ একই রকম, ছাড়া :
SubscribeFlags সরানো হয়েছে কারণ এটি ব্যবহার করা হয়নি কারণ onPropertySet সরানো হয়েছে
UserFlags এখন UserInfo.aidl এ সংজ্ঞায়িত করা হয়েছে এবং একটি enum এর পরিবর্তে একটি পতাকা হিসাবে সংজ্ঞায়িত করা উচিত। একটি ব্যবহারকারীর পতাকা ক্ষেত্র হল একটি পূর্ণসংখ্যা যাতে একাধিক UserInfo.USER_FLAG_XXX বিট-বা একসাথে থাকে।
VehiclePropValue এ RawValue নাম পরিবর্তন করে RawPropValue রাখা হয়েছে
RawValue এ bytes নাম পরিবর্তন করে byteValues করা হয়েছে
,
একটি বিদ্যমান HIDL VHAL বাস্তবায়নকে AIDL VHAL-এ স্থানান্তর করতে, IVehicleHardware ইন্টারফেস বাস্তবায়নের জন্য AIDL রেফারেন্স বাস্তবায়ন কাঠামো ব্যবহার করুন।
যদি বিদ্যমান HIDL বাস্তবায়নও HIDL রেফারেন্স বাস্তবায়নকে অনুসরণ করে, তাহলে বিক্রেতা VehicleHal ক্লাস বাস্তবায়ন করেছে। IVehicleHardware অনেকটা VehicleHal এর মতই।
HIDL VHAL
AIDL VHAL
getAllPropertyConfigs()
VehicleHal.listProperties() এর মতই
getValues(callback, requests)
প্রতিটি অনুরোধের জন্য VehicleHal.get() কল করতে পারেন এবং কলব্যাক কল করতে পারেন।
dump()
VehicleHal.dump() এর মতই
checkHealth()
VehicleHal.get() ফেরত দিতে পারে
registerPropertyChangeCallback()
VehicleHal.mOnHalEvent সেট করার অনুরূপ
এআইডিএল-এর প্রকারভেদ
HIDL VHAL থেকে AIDL VHAL-এ স্থানান্তর করার সময়, এই পার্থক্যগুলি বিবেচনা করুন।
HIDL types.hal থেকে উৎপন্ন সকল প্রকারের জন্য একটি হেডার ফাইল ( types.h ) তৈরি করে। AIDL প্রতিটি ধরনের জন্য একটি হেডার ফাইল তৈরি করে। উদাহরণস্বরূপ, VehiclePropValue.h থেকে VehiclePropValue.aidl ।
ফলস্বরূপ, আপনার প্রয়োজনীয় ধরণের জন্য আপনাকে অবশ্যই সমস্ত হেডার ফাইল অন্তর্ভুক্ত করতে হবে। VehicleHalUtils লাইব্রেরিতে একটি হেল্পার ফাইল, VehicleHalTypes.h এ বেশিরভাগ সাধারণ প্রকার রয়েছে।
এর পরিবর্তে...
ব্যবহার করুন
hidl_vec
std::vector
hidl_string
std::string
android::sp
std::shared_ptr
android::wp
std::weak_ptr
types.hal তে সংজ্ঞায়িত সমস্ত প্রকার এআইডিএল-এ একই রকম, ছাড়া :
SubscribeFlags সরানো হয়েছে কারণ এটি ব্যবহার করা হয়নি কারণ onPropertySet সরানো হয়েছে
UserFlags এখন UserInfo.aidl এ সংজ্ঞায়িত করা হয়েছে এবং একটি enum এর পরিবর্তে একটি পতাকা হিসাবে সংজ্ঞায়িত করা উচিত। একটি ব্যবহারকারীর পতাকা ক্ষেত্র হল একটি পূর্ণসংখ্যা যাতে একাধিক UserInfo.USER_FLAG_XXX বিট-বা একসাথে থাকে।
VehiclePropValue এ RawValue নাম পরিবর্তন করে RawPropValue রাখা হয়েছে
RawValue এ bytes নাম পরিবর্তন করে byteValues করা হয়েছে
এই পৃষ্ঠার কন্টেন্ট ও কোডের নমুনাগুলি Content License-এ বর্ণিত লাইসেন্সের অধীনস্থ। Java এবং OpenJDK হল Oracle এবং/অথবা তার অ্যাফিলিয়েট সংস্থার রেজিস্টার্ড ট্রেডমার্ক।
2025-07-29 UTC-তে শেষবার আপডেট করা হয়েছে।
[[["সহজে বোঝা যায়","easyToUnderstand","thumb-up"],["আমার সমস্যার সমাধান হয়েছে","solvedMyProblem","thumb-up"],["অন্যান্য","otherUp","thumb-up"]],[["এতে আমার প্রয়োজনীয় তথ্য নেই","missingTheInformationINeed","thumb-down"],["খুব জটিল / অনেক ধাপ","tooComplicatedTooManySteps","thumb-down"],["পুরনো","outOfDate","thumb-down"],["অনুবাদ সংক্রান্ত সমস্যা","translationIssue","thumb-down"],["নমুনা / কোড সংক্রান্ত সমস্যা","samplesCodeIssue","thumb-down"],["অন্যান্য","otherDown","thumb-down"]],["2025-07-29 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`"]]