使用性能图比较结果

使用性能表中提供的数据填充生态系统的性能图。在填充性能图时,请遵循推荐的数据可视化方法指南。将从 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. 效果 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
#101 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 25.05 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 21.01 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%) 加速度比 增量
#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 对应的性能图(按通过/失败)