از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
ارزیابی سخت افزاری
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
ارزیابی سختافزاری ویژگیهای کمی سه اثر لمسی هدف را ارائه میکند که با روشهای رایجی که برای فراخوانی لمسی استفاده میشوند، نمونهبرداری شدهاند. در پایان ارزیابی، عملکرد هر دستگاه برای هر اثر لمسی هدف میتواند برای نتیجهگیری در نقشه عملکرد اعمال شود.
نقشه عملکرد نتایج ارزیابی سخت افزار را از چندین دستگاه اندروید فعلی نشان می دهد. هدف ارزیابی دستگاه هدف با استفاده از یک مقایسه نسبی زمینه ای (به جای قضاوت قبولی یا شکست) است. سؤالات خاصی که پیرامون این مفهوم ساختار یافته اند عبارتند از: با توجه به سطح قیمت و نوع محرک گوشی من، عملکرد آن در مقایسه با رقبای من چگونه است؟ آیا نتایج انتظارات من را برآورده می کند؟ اگر نه، چه چیزی نیاز به بهبود دارد؟

شکل 1. نمای کلی فرآیند ارزیابی سخت افزار Haptics
ارزیابی نتایج سه روش را در چارچوب لمسی اندروید مشاهده میکند.
اثر 1: ثابت های لمسی کوتاه از پیش تعریف شده
VibrationEffect.EFFECT_CLICK
این ثابت اثر پایه یا مخرج مشترک در نگاشت HAL-API است که در ثابت های نقشه بین HAL و API ارائه شده است. این با متداول ترین جلوه استفاده شده HapticFeedbackConstants.KEYBOARD_PRESS
نقشه برداری شده است.KEYBOARD_PRESS. ارزیابی این اثر به شما کمک می کند تا میزان آمادگی دستگاه مورد نظر خود را برای لمس شفاف مشخص کنید.
جلوه 2: جلوه لمسی سفارشی کوتاه
VibrationEffect.createOneShot(20,255)
برای تکانه های کوتاه سفارشی، 20 میلی ثانیه حداکثر آستانه توصیه شده برای تعریف مدت زمان است. یک تکانه که بیشتر از 20 میلی ثانیه باشد توصیه نمی شود زیرا به عنوان یک لرزش وزوز درک می شود.

شکل 2. جلوه لمسی سفارشی کوتاه
جلوه 3: جلوه لمسی سفارشی طولانی با تنوع دامنه
VibrationEffect.createWaveform(timings[], amplitudes[], int repeat)
توانایی تولید دامنه های مختلف برای جلوه های لمسی سفارشی یکی از شاخص های ارزیابی قابلیت های دستگاه برای لمسی غنی است. timings [ ]
و amplitudes [ ]
به ترتیب {500, 500}
و {128, 255}
هستند. این یک روند افزایشی دامنه از 50٪ به 100٪ با نرخ نمونه برداری 500 میلی ثانیه را نشان می دهد.

شکل 3. جلوه لمسی سفارشی طولانی با تنوع دامنه
برای بررسی سریع قابلیت های سخت افزاری کنترل دامنه برای افکت 3، Vibrator.hasAmplitudeControl()
را امتحان کنید. برای اجرای VibrationEffect.createWaveform
با دامنه متفاوت همانطور که در نظر گرفته شده است، نتیجه باید true
باشد.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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 بهوقت ساعت هماهنگ جهانی."],[],[],null,["# Hardware assessment\n\nThe hardware assessment delivers quantitative characteristics of three target\nhaptic effects sampled by common methods used to call haptics. At the end of the\nassessment, performance from each device for each target haptic effect can be\napplied to the [performance map](/docs/core/interaction/haptics/compare) to\ndraw conclusions.\n\nThe performance map shows the hardware assessment results from several current\nAndroid devices. The goal is to evaluate the target device using a contextually\nrelative comparison (rather than a pass or fail judgement). Specific questions\nstructured around that notion are: *Given the price tier and\nactuator type of my phone, how is the performance compared to my competitors? Do\nthe results meet my expectations? If not, what needs improvement?*\n\n**Figure 1.** Haptics hardware assessment process overview\n\nThe assessment observes the results of three methods in the Android haptic\nframework.\n\n### Effect 1: Predefined short haptic constants\n\n[`VibrationEffect.EFFECT_CLICK`](https://developer.android.com/reference/android/os/VibrationEffect.html#EFFECT_CLICK)\n\nThis constant is the baseline effect or common denominator in the HAL-API\nmapping provided in\n[Map constants between HAL and API](/docs/core/interaction/haptics/haptics-map-constants).\nIt's mapped with the most commonly used effect\n[`HapticFeedbackConstants.KEYBOARD_PRESS`](https://developer.android.com/reference/android/view/HapticFeedbackConstants#KEYBOARD_PRESS).\nAssessing this effect helps you determine the readiness of your\ntarget device for\n[clear haptics](/docs/core/interaction/haptics/haptics-ux-foundation#clear-haptics).\n\n### Effect 2: Short custom haptic effect\n\n[`VibrationEffect.createOneShot(20,255)`](https://developer.android.com/reference/android/os/VibrationEffect#createOneShot(long,%20int))\n\nFor short single custom impulses, 20 ms is the recommended maximum\nthreshold to define duration. A single impulse that's longer than 20 ms\nisn't recommended because it's perceived as a\n[buzzy vibration](/docs/core/interaction/haptics/haptics-ux-foundation#buzzy-vibration).\n\n**Figure 2.** Short custom haptic effect\n\n### Effect 3: Long custom haptic effect with amplitude variation\n\n[`VibrationEffect.createWaveform(timings[], amplitudes[], int repeat)`](https://developer.android.com/reference/android/os/VibrationEffect#createWaveform(long%5B%5D,%20int%5B%5D,%20int))\n\nThe ability to produce varying amplitudes for custom haptic effects is one of\nthe indicators to evaluate the device's capabilities for\n[rich haptics](/docs/core/interaction/haptics/haptics-ux-foundation#rich-haptics).\nThe recommended `timings [ ]` and `amplitudes [ ]` are `{500, 500}` and\n`{128, 255}`, respectively. This presents an increasing trend of amplitude from\n50% to 100% with a 500 ms sampling rate.\n\n**Figure 3.** Long custom haptic effect with amplitude variation\n\nTo quickly check the hardware capabilities of amplitude control for Effect 3,\ntry\n[`Vibrator.hasAmplitudeControl()`](https://developer.android.com/reference/android/os/Vibrator#hasAmplitudeControl()).\nThe result has to be `true` to execute\n[`VibrationEffect.createWaveform`](https://developer.android.com/reference/android/os/VibrationEffect#createWaveform(long%5B%5D,%20int%5B%5D,%20int))\nwith varying amplitude as intended."]]