Liên kết các hằng số giữa HAL và API

Trang này trình bày các mối liên kết được đề xuất giữa các hằng số HAL công khai và hằng số API. Nếu phần cứng được đánh giá không triển khai các hằng số HAL, thì hãy cập nhật các mẫu dự phòng được mô tả trong Triển khai hằng số và thành phần cơ bản trang để tạo ra các kết quả tương tự. Mối liên kết này được hỗ trợ bởi 2 mô hình mặc định khác nhau:

  • Mô hình rời rạc (đơn giản)

    • Biên độ là biến chính của mô hình này. Mỗi thực thể trong HAL đại diện cho một biên độ phản hồi xúc giác khác nhau.
    • Mô hình này là yêu cầu tối thiểu cần thiết để triển khai UX phản hồi xúc giác cơ bản.
    • UX phản hồi xúc giác nâng cao hơn đòi hỏi phần cứng nâng cao và mô hình nâng cao (mô hình liên tục).
  • Mô hình liên tục (nâng cao)

    • Kết cấu và biên độ là các biến chính của mô hình này. Mỗi thực thể trong HAL đại diện cho các kết cấu phản hồi xúc giác khác nhau. Biên độ của mỗi thực thể HAL được kiểm soát bởi hệ số tỷ lệ (S).
    • Mô hình này yêu cầu phần cứng nâng cao. Nếu các OEM muốn sử dụng UX phản hồi xúc giác nâng cao với VibrationEffect.Composition (để tận dụng tối đa các API phản hồi xúc giác mới nhất), thì bạn nên triển khai phần cứng của họ bằng mô hình này.

Mô hình rời rạc

Bạn nên liên kết tất cả các hằng số công khai được cung cấp trong API với các hằng số HAL thích hợp. Để bắt đầu quá trình này, hãy tìm hiểu xem thiết bị có thể xác định bao nhiêu dạng sóng phản hồi xúc giác với biên độ rời rạc trong HAL. Một câu hỏi cụ thể được cấu trúc xung quanh khái niệm đó sẽ có dạng như sau: Tôi có thể xác định bao nhiêu hiệu ứng phản hồi xúc giác xung đơn với sự khác biệt về biên độ mà con người có thể cảm nhận được trong điện thoại của mình? Câu trả lời cho câu hỏi này sẽ xác định mối liên kết.

Việc xác định các hằng số HAL là một quá trình phụ thuộc vào phần cứng. Ví dụ: một chiếc điện thoại cấp thấp có thể chỉ có các chức năng phần cứng để tạo ra một dạng sóng phản hồi xúc giác duy nhất. Các thiết bị có thành phần phần cứng nâng cao hơn sẽ tạo ra nhiều mức biên độ rời rạc hơn và có thể xác định nhiều dạng sóng phản hồi xúc giác trong HAL. Việc liên kết hằng số HAL-API sẽ lấy hằng số HAL (sử dụng biên độ trung bình làm đường cơ sở), sau đó sắp xếp các hiệu ứng mạnh hơn hoặc yếu hơn từ đó.

Sơ đồ về biên độ phản hồi và phạm vi hằng số HAL

Hình 1. Phạm vi hằng số HAL theo biên độ.

Khi số lượng hằng số HAL có biên độ rời rạc được xác định, đã đến lúc liên kết các hằng số HAL và API theo số lượng hằng số HAL. Quá trình liên kết này có thể phân đoạn một hằng số API xung đơn thành tối đa 3 nhóm biên độ rời rạc. Cách phân đoạn các hằng số API dựa trên các nguyên tắc UX cho các sự kiện đầu vào đi kèm. Để biết thêm thông tin, hãy xem bài viết Thiết kế UX phản hồi xúc giác.

Mô hình rời rạc để ánh xạ hằng số HAL-API

Hình 2. Liên kết hằng số HAL-API: Mô hình rời rạc.

Nếu thiết bị của bạn chỉ hỗ trợ 2 hằng số HAL có biên độ rời rạc, hãy cân nhắc việc hợp nhất các hằng số HAL ở mức biên độ Trung bình và Cao. Ví dụ về khái niệm này trong thực tế là liên kết EFFECT_CLICKEFFECT_HEAVY_CLICK với cùng một hằng số HAL, đó sẽ là hằng số HAL ở mức biên độ Trung bình. Nếu thiết bị của bạn chỉ hỗ trợ một hằng số HAL có biên độ rời rạc, hãy cân nhắc việc hợp nhất cả 3 cấp độ thành một.

Mô hình liên tục

Bạn có thể áp dụng mô hình liên tục có khả năng mở rộng biên độ để xác định các hằng số HAL. Bạn có thể áp dụng hệ số tỷ lệ (S) cho các hằng số HAL (ví dụ: HAL_H0, HAL_H1) để tạo ra HAL được chia tỷ lệ (HAL_H0 x S). Trong trường hợp này, HAL được chia tỷ lệ được liên kết để xác định các hằng số API (HAL_H0 x S1 = H0S1 = EFFECT_TICK) như minh hoạ trong hình 3. Bằng cách sử dụng khả năng mở rộng biên độ của mô hình liên tục, một thiết bị có thể lưu trữ một số lượng nhỏ hằng số HAL có kết cấu đặc biệt và thêm các biến thể biên độ bằng cách điều chỉnh hệ số tỷ lệ (S). Các nhà sản xuất thiết bị có thể xác định số lượng hằng số HAL dựa trên số lượng kết cấu phản hồi xúc giác khác nhau mà họ muốn cung cấp.

Phạm vi hằng số HAL theo hoạ tiết và biên độ

Hình 3. Phạm vi hằng số HAL theo kết cấu (HAL_H0) và tỷ lệ biên độ (S).

Mô hình liên tục để ánh xạ hằng số HAL-API

Hình 4. Liên kết hằng số HAL-API: Mô hình liên tục.

Trong mô hình liên tục, các hằng số HAL khác nhau đại diện cho các kết cấu phản hồi xúc giác khác nhau chứ không phải các biên độ khác nhau; hệ số tỷ lệ (S) có thể định cấu hình biên độ. Tuy nhiên, vì nhận thức về kết cấu (ví dụ: độ sắc nét) có liên quan đến nhận thức về thời lượng và biên độ, nên bạn nên kết hợp kết cấu và hệ số tỷ lệ (trong quá trình thiết kế liên kết HAL-API).

Hình 5 minh hoạ việc liên kết hằng số bằng cách tăng biến thể từ một HAL đến nhiều hằng số API có khả năng mở rộng biên độ.

Tăng biến thể 1

Tăng biến thể 2

Hình 5. Tăng biến thể bằng khả năng mở rộng biên độ.

Đối với tất cả các hằng số API có thể mở rộng như PRIMITIVE_TICKPRIMITIVE_CLICK trong VibrationEffect.Composition, mức năng lượng của hằng số API phụ thuộc vào tham số float scale khi hằng số API được khai báo thông qua addPrimitive(int primitiveID, float scale, int delay). Bạn có thể thiết kế PRIMITIVE_TICKPRIMITIVE_CLICK với sự khác biệt rõ ràng bằng cách sử dụng các hằng số HAL khác nhau. Bạn nên sử dụng phương pháp này nếu muốn thêm biến thể vào kết cấu.