使用效果地图比较结果

使用效果表中提供的数据填充生态系统的效果图。在填充效果地图时,请遵循推荐的数据可视化操作指南。将从 DUT 获取的数据与性能图对齐以进行比较。

在效果图中直观呈现数据

效果 1 和效果 2 的性能图是使用峰值时长、峰值振幅和锐度效果图 (FOMS = PRR / 峰值时长) 绘制的。将数据与性能图对齐时,请仔细跟随 x 轴(峰值时长)、y 轴(峰值振幅)和气泡大小 (FOMS) 中的数据。性能图分为几个类别,包括价格层级(低、中、高)和执行器类型(X-LRA、Z-LRA、ERM)。使用不同的颜色来表示不同的类别。

性能图有助于使用上下文相关的比较(而非通过“通过”或“失败”判断)来评估目标设备。在解读性能地图与 DUT 测量结果之间的比较结果时,请根据手机所属的类别建立预期,然后考虑以下问题:

  • 您设备的性能特征在地图上的什么位置?
  • 在考虑许多条件(例如价格层级或执行器类型)的情况下,您的设备在性能方面是优于、不逊于竞争对手还是不如竞争对手?
  • 结果是否符合您的预期?如果不是,哪个因素效果不佳?

例如,如果搭载 ERM 的低价手机的性能与高端 X-LRA 手机相当,那么与搭载 ERM 的类似低价手机相比,该低价手机的触感反馈质量出色。

EFFECT_CLICK(效果 1)和 createOneShot(效果 2)中,x 轴和 y 轴分别表示峰值时长和峰值振幅。气泡的大小表示锐度的依据 (FOMS = PRR / 峰值时长),图例中的颜色代码表示可进一步细分的类别(价格层级或执行器类型)。例如,在按价格层级(例如低/中/高)细分的效果图中,每个气泡的颜色代表价格层级。通过将气泡的颜色与手机的价格层级相匹配,您可以将手机与处于同一价格层级的竞争对手进行比较。

图 1 中的绿色气泡显示了 EFFECT_CLICK优质触感反馈(效果 1)。当持续时间很短、振幅较大且气泡大小较大时,效果通常清晰且强烈。

图 1 中的红色气泡显示了 EFFECT_CLICK(效果 1)的低质量触感反馈。当持续时间较长、振幅较低且气泡大小较小时,效果通常会发出嗡嗡声、柔和且微弱的信号。

红色虚线表示最小振幅阈值。如果振幅小于 0.1 g,用户无法感知触感反馈(失败情况 F03-2)。

特效使用方法指南 1

图 1. 效果 1 方法指南的性能图

特效方法指南 2

图 2. 效果 2 方法指南的性能图

createOneShot(效果 2)读取数据的过程与效果 1 数据几乎完全相同,但有一个例外。由于效果 2 的目标时长为 20 毫秒,因此接近 20 毫秒的峰值时长表示制动良好的输出。

createWaveform(效果 3)中的数据侧重于振幅控制功能。第一个加速度(加速度 1 = 50% 振幅 = 分组条形图中的左侧条柱)与第二个加速度(加速度 2 = 100% 振幅 = 分组条形图中的右侧条柱)之间的目标比率为 2。

特效方法指南 3

图 3. 效果图:Effect 3 方法指南

效果地图数据和插图

以下效果图会显示这些数据:

  • 测试日期:2020 年 4 月 12 日
  • 测试的设备型号数量:28
  • 接受测试的设备制造商数量:10
  • 设备发布期限:测试日期前最多 18 个月
  • 在性能地图中观察到的触感反馈效果:

    • VibrationEffect.EFFECT_CLICK(效果 1)
    • VibrationEffect.createOneShot(效果 2)
    • VibrationEffect.createWaveform(效果 3)
  • 价格层级细分

    • 高(600 美元或更高)
    • 中等(300 美元到 600 美元)
    • 低(最高 300 美元)
  • 失败案例

    • F01:未实现触感反馈常量。没有可分析的信号。
    • F02:信号幅度太弱,无法分析或无法被人感知。MATLAB 错误。
    • F03-1:信号幅度太弱,无法分析或无法被人感知。PRR 值小于零 (< 0)。
    • F03-2:信号幅度太弱,无法分析或无法被人感知。振幅值小于 0.1 (< 0.1)。
    • F04:缺少第一个加速阶段。前半部分没有信号。
    • F05:两个阶段之间没有加速度增加。加速度 1 和加速度 2 的最大振幅几乎相同。
  • 硬件评估所需的 Android 版本:Android 10.0(API 级别 29)或更高版本。

  • 用于填充性能映射的 Android 版本:Android 8.0(API 级别 26)或更高版本。对于效果 1,使用的是 HapticFeedbackConstants.KEYBOARD_PRESS(而不是 VibrationEffect.EFFECT_CLICK),因为数据采集是在推出触感反馈实现核对清单之前执行的。

EFFECT_CLICK(效果 1)的效果地图

关于 EFFECT_CLICK 效果图(效果 1)
效果定义 (Java)
Vibrator vibrator = getSystemService(Vibrator.class);
vibrator.vibrate(VibrationEffect.createPredefined(EFFECT_CLICK));
效果定义 (Kotlin)
val vibrator = getSystemService(Vibrator::class.java)
vibrator.vibrate(VibrationEffect.createPredefined(EFFECT_CLICK))
读取效果图所需的数据
  • 高峰时长(图表的 x 轴)
  • 峰值振幅(图表的 y 轴)
  • 用于计算 FOMS 的 PRR
  • FOMS = PRR / 峰值振幅(图表中气泡图的气泡大小)
  • 使用 MATLAB 提供的信号图作为视觉参考
通过率
  • 85.7% 的设备生成了效果 1
  • 14.3% 的设备因 F01(未实现触感反馈常量)而失败
用于为 EFFECT_CLICK 填充性能图的数据(效果 1)
设备 ID 价格层级 定位器类型 通过/失败 峰值时长(毫秒) 峰值振幅 (g) PRR FOMS
基础知识 X-LRA 通过 167.33 0.53 20.91 0.12
#102 X-LRA 通过 20.63 1.07 20.09 0.97
#103 X-LRA 通过 19.98 0.98 21.75 1.09
#104 X-LRA 通过 22.67 1.16 20.02 0.88
#105 X-LRA 通过 10.96 1.30 23.62 2.16
#106 Z-LRA 通过 20.13 1.11 24.15 1.20
#107 Z-LRA 通过 49.31 0.79 分 20.06 0.41
#108 X-LRA 通过 120.71 0.24 14.93 0.12 倍
#109 Z-LRA 通过 51.46 0.43 8.69 0.17
#110 X-LRA 通过 8.44 1.01 27.68 3.28
#111 企业风险管理 (ERM) 失败 (F01) 不适用 不可用 不可用 不适用
#112 Z-LRA 通过 25.85 0.51 岁 21.94 0.85
#113 Z-LRA 通过 58.35 0.29 25.10 0.43
#114 Z-LRA 通过 34.46 0.28 20.91 0.61
#115 Z-LRA 通过 23.67 0.31 26.46 1.12
#116 X-LRA 通过 8.40 0.44 29.82 3.55
#117 Z-LRA 通过 31.35 1.13 23.65 0.75
#118 Z-LRA 通过 26.42 0.42 5 月 25 日 0.95
#119 Z-LRA 通过 30.65 0.48 19.69 0.64
#120 Z-LRA 通过 170.65 0.97 20.16 0.12 倍
#121 Z-LRA 通过 51.69 0.55 17.14 0.33
#122 X-LRA 失败 (F01) 不适用 不可用 不可用 不适用
#123 企业风险管理 (ERM) 失败 (F01) 不适用 不可用 不可用 不适用
#124 企业风险管理 (ERM) 通过 68.33 0.93 7.40 0.11
#125 企业风险管理 (ERM) 失败 (F01) 不适用 不可用 不可用 不适用
#126 Z-LRA 通过 41.96 0.68 8.77 0.21
#127 Z-LRA 通过 9.63 0.43 4.55 0.47
#128 Z-LRA 通过 22.77 0.55 26.10 1.15

效果 1 效果地图 1

图 4. 效果 1 的效果图(按价格层级)

效果 1 效果图 2

图 5. 效果 1 的效果图(按致动器类型)

createOneShot 的效果图(影响 2)

createOneShot 的性能图(效果 2)简介
效果定义 (Java)
private static final long oneShotTiming = 20;
private static final int oneShotAmplitude = 255;

Vibrator vibrator = getSystemService(Vibrator.class); vibrator.vibrate(VibrationEffect.createOneShot(oneShotTiming, oneShotAmplitude));
效果定义 (Kotlin)
private val oneShotTiming: Long = 20
private val oneShotAmplitude = 255

val vibrator = getSystemService(Vibrator::class.java) vibrator.vibrate(VibrationEffect.createOneShot(oneShotTiming, oneShotAmplitude))
读取效果图所需的数据
  • 高峰时长(图表的 x 轴)
  • 峰值振幅(图表的 y 轴)
  • 用于计算 FOMS 的 PRR
  • FOMS = PRR / 峰值振幅(图表中气泡图的气泡大小)
  • 使用 MATLAB 提供的信号图作为视觉参考
通过率
  • 89.3% 的设备生成了效果 2
  • 10.7% 的设备因 F02 或 F03-2(信号振幅太弱,无法分析/无法被人感知)而失败
用于填充 createOneShot 性能表的数据(效果 2)
设备 ID 价格层级 定位器类型 通过/失败 峰值时长(毫秒) 峰值振幅 (g) PRR FOMS
#201 X-LRA 通过 168.81 0.98 20.62 0.12 倍
#202 X-LRA 通过 28.35 2.29 28.95 1.02
#203 X-LRA 通过 77.25 0.78 1 月 21 日 0.27
#204 X-LRA 通过 70.48 1.42 21.85 0.31
#205 X-LRA 通过 67.92 1.19 22.61 0.33
#206 Z-LRA 通过 33.44 1.34 25.19 0.75
#207 Z-LRA 通过 73.90 1.36 23.13 0.31
#208 X-LRA 通过 102.02 0.71 20.12 0.20
#209 Z-LRA 通过 63.71 0.14 3.70 0.06
#210 X-LRA 通过 8.46 1.01 28.77 3.40
#211 企业风险管理 (ERM) 失败 (F02、F03-1) 不适用 不可用 不可用 不适用
#212 Z-LRA 通过 43.71 1.03 23.14 0.53
#213 Z-LRA 通过 27.42 0.23 22.85 0.83
#214 Z-LRA 通过 45.29 0.72 19.99 0.44
#215 Z-LRA 通过 23.71 0.41 27.30 1.15
#216 X-LRA 通过 8.31 0.43 27.58 3.32
#217 Z-LRA 通过 42.19 1.03 26.97 0.64
#218 Z-LRA 通过 26.38 0.42 24.74 0.94
#219 Z-LRA 通过 46.77 1.01 24.64 0.53
#220 Z-LRA 通过 166.33 0.97 20.61 0.12 倍
#221 Z-LRA 通过 38.60 0.42 18.21 0.47
#222 X-LRA 通过 76.00 0.61 23.17 0.30
#223 ERM 失败 (F03-2) 55.27 日 0.08 1.95 0.04
#224 企业风险管理 (ERM) 通过 39.29 0.30 7.04 0.18
#225 企业风险管理 (ERM) 失败 (F03) 不适用 不可用 不可用 不适用
#226 Z-LRA 通过 34.31 0.53 30.23 0.88
#227 Z-LRA 通过 5.42 0.37 12.23 2.26
#228 Z-LRA 通过 22.65 0.90 24.23 1.07

效果 2 效果图 1

图 6. 效果 2 的效果图(按价格层级)

效果 2 效果图 1

图 7. 效果 2 的效果图(按致动器类型)

createWaveform 的性能图(效果 3)

createWaveform(效果 3)的性能地图简介
效果定义 (Java)
private static final long[] waveformTimings = {500, 500};
private static final int[] waveformAmplitudes = {128, 255};

Vibrator vibrator = getSystemService(Vibrator.class); vibrator.vibrate(VibrationEffect.createWaveform(waveformTimings, waveformAmplitudes, -1));
效果定义 (Kotlin)
private val waveformTimings = longArrayOf(500, 500)
private val waveformAmplitudes = intArrayOf(128, 255)

val vibrator = getSystemService(Vibrator::class.java) vibrator.vibrate(VibrationEffect.createWaveform(waveformTimings, waveformAmplitudes, -1))
读取效果图所需的数据
  • 加速度 1(图表中左侧分组条形的 y 轴)
  • 加速度 2(图表中右侧分组条的 y 轴)
  • 加速度 1(50% 振幅)与加速度 2(100% 振幅)之间的加速度比率:目标比率为 2。
  • MATLAB 中的信号图,可用作直观参考
通过率
  • 32.1% 的设备按预期生成了效果 3。
  • 67.9% 的设备因 F04(10.7%,没有加速度 1 的信号)或 F05(57.1%,与预期的加速度 1 和加速度 2 无差异)导致失败
用于为 createWaveform 填充性能表的数据(效果 3)
设备 ID 价格层级 定位器类型 通过/未通过 加速度 1 (50%) 加速度 2 (100%) 加速率 Delta
#301 X-LRA 通过 1.19 2.02 1.70 0.83
#302 X-LRA 通过 0.87 1.85 2.12 0.98
#303 X-LRA 通过 0.62 1.47 2.37 0.85
#304 X-LRA 通过 0.82 1.89 2.30 1.07
#305 X-LRA 通过 0.69 1.51 2.21 0.83
#306 Z-LRA 通过 1.02 1.50 1.46 0.47
#307 X-LRA 通过 0.59 1.37 2.32 0.78
#308 Z-LRA 通过 0.58 0.72 1.25 0.14
#309 Z-LRA 通过 0.39 1.43 3.66 1.04
#310 X-LRA 失败 (F04) 0.00 1.36 1.36 1.36
#311 X-LRA 失败 (F04) 0.00 0.56 0.56 0.56
#312 Z-LRA 失败 (F04) 0.00 0.71 0.71 0.71
#313 Z-LRA 失败 (F05) 0.60 0.61 1.02 0.01
#314 Z-LRA 失败 (F05) 0.64 0.65 分 1.01 0.01
#315 企业风险管理 (ERM) 失败 (F05) 0.96 0.95 0.99 -0.01
#316 Z-LRA 失败 (F05) 0.40 0.40 1.00 0.00
#317 Z-LRA 失败 (F05) 0.60 0.58 0.98 -0.01
#318 Z-LRA 失败 (F05) 0.30 0.30 1.00 0.00
#319 Z-LRA 失败 (F05) 0.57 0.56 0.99 0.00
#320 Z-LRA 失败 (F05) 0.67 0.67 1.00 0.00
#321 Z-LRA 失败 (F05) 0.67 0.66 0.99 -0.01
#322 X-LRA 失败 (F05) 0.95 1.02 1.07 0.06
#323 ERM 失败 (F05) 0.86 0.88 1.01 0.01
#324 ERM 失败 (F05) 1.46 1.45 0.99 -0.01
#325 ERM 失败 (F05) 0.95 0.96 1.01 0.01
#326 Z-LRA 失败 (F05) 0.90 0.92 1.02 0.02
#327 Z-LRA 失败 (F05) 0.47 0.47 1.00 0.00
#328 Z-LRA 失败 (F05) 0.51 0.56 1.09 0.04

效果 1 效果地图 3

图 8. 效果 3 的效果图(按通过/失败)