2025년 3월 27일부터 AOSP를 빌드하고 기여하려면 aosp-main
대신 android-latest-release
를 사용하는 것이 좋습니다. 자세한 내용은 AOSP 변경사항을 참고하세요.
하드웨어 평가
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
하드웨어 평가는 햅틱을 호출하는 데 사용되는 일반적인 메서드로 샘플링된 세 가지 타겟 햅틱 효과의 정량적 특성을 제공합니다. 평가가 끝나면 각 타겟 햅틱 효과에 대한 각 기기의 성능을 성능 맵에 적용하여 결론을 내릴 수 있습니다.
성능 맵에는 현재 사용 중인 여러 Android 기기의 하드웨어 평가 결과가 표시됩니다. 목표는 통과 또는 실패 판단이 아닌 문맥상 상대적인 비교를 사용하여 대상 기기를 평가하는 것입니다. 이 개념을 중심으로 구성된 구체적인 질문은 다음과 같습니다. 내 휴대전화의 가격 등급 및 액추에이터 유형을 고려할 때 경쟁업체와 비교해 성능이 어떤가요? 결과가 기대에 부합하나요? 그렇지 않다면 어떤 점을 개선해야 하나요?
그림 1. 햅틱 하드웨어 평가 프로세스 개요
평가는 Android 햅틱 프레임워크의 세 가지 메서드의 결과를 관찰합니다.
효과 1: 사전 정의된 짧은 햅틱 상수
VibrationEffect.EFFECT_CLICK
이 상수는 HAL과 API 간의 상수 매핑에 제공된 HAL-API 매핑의 기준 효과 또는 공통분모입니다.
가장 일반적으로 사용되는 효과인 HapticFeedbackConstants.KEYBOARD_PRESS
로 매핑됩니다.
이 효과를 평가하면 명확한 햅틱을 위한 대상 기기의 준비 상태를 판단하는 데 도움이 됩니다.
효과 2: 짧은 맞춤 햅틱 효과
VibrationEffect.createOneShot(20,255)
짧은 단일 맞춤 임펄스의 경우 지속 시간을 정의하는 데 권장되는 최대 기준점은 20ms입니다. 20ms보다 긴 단일 임펄스는 윙윙거리는 진동으로 감지되기 때문에 권장되지 않습니다.
그림 2. 짧은 맞춤 햅틱 효과
효과 3: 진폭 변화가 있는 긴 맞춤 햅틱 효과
VibrationEffect.createWaveform(timings[], amplitudes[], int repeat)
맞춤 햅틱 효과를 위해 다양한 진폭을 생성하는 기능은 기기의 풍부한 햅틱 기능을 평가하는 지표 중 하나입니다.
권장되는 timings [ ]
및 amplitudes [ ]
는 각각 {500, 500}
및 {128, 255}
입니다. 이렇게 하면 진폭이 500ms 샘플링 레이트로 50% 에서 100% 로 증가하는 추세를 나타냅니다.
그림 3. 진폭 변화가 있는 긴 맞춤 햅틱 효과
효과 3의 진폭 제어에 관한 하드웨어 기능을 빠르게 확인하려면 Vibrator.hasAmplitudeControl()
을 사용해 보세요.
의도대로 다양한 진폭을 사용하여 VibrationEffect.createWaveform
을 실행하려면 결과가 true
여야 합니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-27(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-27(UTC)"],[],[],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."]]