Auf dieser Seite finden Sie empfohlene Zuordnungen zwischen öffentlichen HAL-Konstanten und API-Konstanten. Wenn die HAL-Konstanten nicht von der geprüften Hardware implementiert werden, aktualisieren Sie die Fallback-Muster, die auf der Seite Konstanten und Primitive implementieren beschrieben werden, um ähnliche Ausgaben zu generieren. Bei der Zuordnung werden zwei verschiedene Standardmodelle verwendet:
Diskretes Modell (einfach)
- Die Amplitude ist die Schlüsselvariable dieses Modells. Jede Entität in der HAL steht für eine andere haptische Amplitude.
- Dieses Modell ist eine Mindestanforderung für die Implementierung der grundlegenden haptischen UX.
- Eine erweiterte haptische UX erfordert erweiterte Hardware und ein erweitertes Modell (kontinuierliches Modell).
Kontinuierliches Modell (erweitert)
- Textur und Amplitude sind die wichtigsten Variablen dieses Modells. Jede Entität in der HAL steht für unterschiedliche haptische Texturen. Die Amplitude jeder HAL-Entität wird durch den Skalierungsfaktor (
S
) gesteuert. - Für dieses Modell ist eine erweiterte Hardware erforderlich. Wenn OEMs eine erweiterte haptische UX mit
VibrationEffect.Composition
verwenden möchten (um die neuesten Haptik-APIs optimal zu nutzen), wird empfohlen, ihre Hardware mit diesem Modell zu implementieren.
- Textur und Amplitude sind die wichtigsten Variablen dieses Modells. Jede Entität in der HAL steht für unterschiedliche haptische Texturen. Die Amplitude jeder HAL-Entität wird durch den Skalierungsfaktor (
Diskretes Modell
Es wird empfohlen, alle in der API bereitgestellten öffentlichen Konstanten den entsprechenden HAL-Konstanten zuzuordnen. Ermitteln Sie zuerst, wie viele haptische Wellenformen mit diskreter Amplitude das Gerät in der HAL definieren kann. Eine konkrete Frage, die auf diesem Konzept basiert, könnte so lauten: Wie viele haptische Effekte mit einzelnen Impulsen und für Menschen wahrnehmbaren Amplitudenunterschieden können auf meinem Smartphone definiert werden? Die Antwort auf diese Frage bestimmt die Zuordnung.
Die Definition von HAL-Konstanten ist ein hardwareabhängiger Prozess. Ein Einsteiger-Smartphone hat beispielsweise möglicherweise nur die Hardwarekapazitäten, um eine einzelne haptische Wellenform zu erzeugen. Geräte mit erweiterten Hardwarekomponenten erzeugen einen breiteren Bereich diskreter Amplitudenebenen und können mehrere haptische Wellenformen in der HAL definieren. Bei der HAL-API-Konstantenzuordnung wird die HAL-Konstante (unter Verwendung der mittleren Amplitude als Baseline) verwendet, um dann stärkere oder schwächere Effekte anzuordnen.
Abbildung 14. HAL-konstanter Bereich nach Amplitude
Wenn die Anzahl der HAL-Konstanten mit diskreter Amplitude definiert ist, ist es an der Zeit, HAL- und API-Konstanten der Anzahl der HAL-Konstanten zuzuordnen. Bei diesem Zuordnungsprozess kann eine einzelne Impuls-API-Konstante in bis zu drei diskrete Gruppen von Amplitudenebenen segmentiert werden. Die Segmentierung von API-Konstanten basiert auf UX-Prinzipien für begleitende Eingabeereignisse. Weitere Informationen finden Sie unter Haptik im UX-Design.
Abbildung 15. HAL-API-Konstantenzuordnung: Diskretes Modell
Wenn Ihr Gerät nur zwei HAL-Konstanten mit diskreten Amplituden unterstützt, sollten Sie die HAL-Konstanten für die mittlere und hohe Amplitude zusammenführen. Ein Beispiel für diese Vorstellung in der Praxis wäre die Zuordnung von EFFECT_CLICK
und EFFECT_HEAVY_CLICK
zurselben HAL-Konstante, also der HAL-Konstante für die mittlere Amplitudenebene. Wenn Ihr Gerät nur eine HAL-Konstante mit diskreter Amplitude unterstützt, sollten Sie alle drei Ebenen in eine zusammenführen.
Kontinuierliches Modell
Das kontinuierliche Modell mit Amplitudenskalierung kann angewendet werden, um HAL-Konstanten zu definieren. Ein Skalierungsfaktor (S
) kann auf die HAL-Konstanten (z. B. HAL_H0
, HAL_H1
) angewendet werden, um die skalierte HAL (HAL_H0
× S
) zu erhalten. In diesem Fall wird die skalierte HAL zugeordnet, um API-Konstanten zu definieren (HAL_H0
× S1
= H0S1
= EFFECT_TICK
), wie in Abbildung 16 dargestellt. Durch die Amplitudenskalierung des kontinuierlichen Modells kann ein Gerät eine kleine Anzahl von HAL-Konstanten mit unterschiedlichen Texturen speichern und Amplitudenvariationen hinzufügen, indem der Skalierungsfaktor (S
) angepasst wird. Gerätehersteller können die Anzahl der HAL-Konstanten basierend darauf definieren, wie viele verschiedene haptische Texturen sie bereitstellen möchten.
Abbildung 16: Konstanter HAL-Bereich nach Textur (HAL_H0) und Amplitudenskala (S)
Abbildung 17. HAL-API-Konstantenzuordnung: Kontinuierliches Modell
Im kontinuierlichen Modell stehen unterschiedliche HAL-Konstanten nicht für unterschiedliche Amplituden, sondern für unterschiedliche haptische Texturen. Die Amplitude kann mit dem Skalierungsfaktor (S
) konfiguriert werden. Da die Wahrnehmung der Textur (z. B. Schärfe) jedoch mit der Wahrnehmung der Dauer und Amplitude zusammenhängt, wird empfohlen, die Textur und den Skalierungsfaktor (im Designprozess der HAL-API-Zuordnung) zu kombinieren.
Abbildung 18 veranschaulicht die konstante Zuordnung durch eine zunehmende Variation von einer HAL zu vielen API-Konstanten mit Amplitudenskalierung.
Abbildung 18 Variation mithilfe der Amplitudenskalierbarkeit erhöhen
Bei allen skalierbaren API-Konstanten wie PRIMITIVE_TICK
und PRIMITIVE_CLICK
in VibrationEffect.Composition
hängt das Energieniveau der API-Konstante vom Parameter float scale
ab, wenn die API-Konstante über addPrimitive(int primitiveID, float scale,
int delay)
deklariert wird. PRIMITIVE_TICK
und PRIMITIVE_CLICK
können durch Verwendung verschiedener HAL-Konstanten klar voneinander unterschieden werden. Dieser Ansatz wird empfohlen, wenn Sie der Textur mehr Variation verleihen möchten.