Nhà sản xuất thiết bị thường được coi là chủ sở hữu của các thành phần riêng tư được tạo cho từng thiết bị. Do đó, các nỗ lực kỹ thuật của họ thường tập trung vào mỗi thiết bị; ít hoặc không có nỗ lực nào nhằm đảm bảo tính nhất quán của các thiết bị khác trong hệ sinh thái.
Ngược lại, nhà phát triển luôn cố gắng xây dựng ứng dụng hoạt động trên tất cả điện thoại Android trong hệ sinh thái, bất kể thông số kỹ thuật của từng thiết bị. Sự khác biệt về phương pháp này có thể gây ra sự phân mảnh, ví dụ: khả năng phần cứng của một số điện thoại không khớp với kỳ vọng của nhà phát triển ứng dụng. Vì vậy, nếu API haptics hoạt động trên một số điện thoại Android nhưng không hoạt động trên các điện thoại khác, thì hệ sinh thái sẽ không nhất quán. Đó là lý do cấu hình phần cứng đóng vai trò quan trọng trong việc đảm bảo rằng nhà sản xuất có thể triển khai API haptics của Android trên mọi thiết bị.
Trang này cung cấp danh sách kiểm tra từng bước để thiết lập khả năng tuân thủ phần cứng nhằm sử dụng hiệu quả nhất các API haptics của Android.
Hình sau đây minh hoạ việc xây dựng kiến thức chung giữa nhà sản xuất thiết bị và nhà phát triển. Đây là một bước quan trọng trong việc tạo ra một hệ sinh thái gắn kết:
Hình 1. Xây dựng kiến thức giữa nhà sản xuất thiết bị và nhà phát triển
Danh sách kiểm tra việc triển khai tính năng xúc giác
-
- Danh sách hằng số để triển khai tính năng phản hồi xúc giác.
-
- Hướng dẫn triển khai cho các thành phần gốc của cấu trúc HAL.
Liên kết các hằng số giữa HAL và API
- Đề xuất liên kết giữa các hằng số API công khai (được đặt tên là phần giữ chỗ trong khung) và các hằng số HAL triển khai phần giữ chỗ.
- Hãy xem phần Nguyên tắc thiết kế để hướng dẫn việc liên kết được đề xuất để tìm hiểu thêm về quy trình này.
-
- Hướng dẫn về hiệu ứng xúc giác mục tiêu. Hãy làm theo hướng dẫn sau để kiểm tra nhanh phần cứng.
Chúng ta sẽ tìm hiểu chi tiết hơn về từng bước trong phần dưới đây.
Bước 1: Triển khai hằng số
Hãy thực hiện các bước kiểm tra sau để xác định xem thiết bị của bạn có đáp ứng các yêu cầu tối thiểu để triển khai tính năng phản hồi xúc giác hay không:
Hình 2. Triển khai hiệu ứng
Hình 3. Triển khai dữ liệu gốc
Kiểm tra trạng thái triển khai của các hằng số phản hồi xúc giác sau.
Hằng số xúc giác | Vị trí và bản tóm tắt |
---|---|
EFFECT_TICK , EFFECT_CLICK ,
EFFECT_HEAVY_CLICK ,
EFFECT_DOUBLE_CLICK |
Lớp
VibrationEffect Hằng số xúc giác trong VibrationEffect không bao gồm bất kỳ khái niệm nào về sự kiện đầu vào và không có phần tử giao diện người dùng. Các hằng số bao gồm khái niệm về mức năng lượng, chẳng hạn như EFFECT_CLICK và EFFECT_HEAVY_CLICK , được gọi bởi
createPredefined() . |
Các chế độ rung thay thế được mô tả dưới đây được thực hiện trên các thiết bị không triển khai hằng số VibrationEffect
. Bạn nên cập nhật các cấu hình này để đạt được hiệu suất tốt nhất trên các thiết bị như vậy.
EFFECT_CLICK
Độ rung dạng sóng được tạo bằng
VibrationEffect.createWaveform
và thời gian được định cấu hình tạiframeworks/base/core/res/res/values/config.xml##config_virtualKeyVibePattern
.EFFECT_HEAVY_CLICK
Độ rung dạng sóng được tạo bằng
VibrationEffect.createWaveform
và thời gian được định cấu hình tạiframeworks/base/core/res/res/values/config.xml##config_longPressVibePattern
.EFFECT_DOUBLE_CLICK
Độ rung dạng sóng được tạo bằng
VibrationEffect.createWaveform
và thời gian (0, 30, 100, 30).EFFECT_TICK
Độ rung dạng sóng được tạo bằng
VibrationEffect.createWaveform
và thời gian được định cấu hình tạiframeworks/base/core/res/res/values/config.xml##config_clockTickVibePattern
.
Hình 4. Triển khai hằng số phản hồi
Kiểm tra trạng thái của các hằng số phản hồi công khai sau.
Hằng số xúc giác | Vị trí và bản tóm tắt |
---|---|
CLOCK_TICK , CONTEXT_CLICK , KEYBOARD_PRESS ,
KEYBOARD_RELEASE , KEYBOARD_TAP , LONG_PRESS ,
TEXT_HANDLE_MOVE , VIRTUAL_KEY ,
VIRTUAL_KEY_RELEASE , CONFIRM , REJECT ,
GESTURE_START , GESTURE_END |
Lớp HapticFeedbackConstants Hằng số xúc giác trong HapticFeedbackConstants hỗ trợ các sự kiện đầu vào bằng một số thành phần giao diện người dùng nhất định, chẳng hạn như KEYBOARD_PRESS và KEYBOARD_RELEASE , được gọi bởi performHapticFeedback() . |
Bước 2: Triển khai các dữ liệu gốc
Các nguyên hàm xúc giác trong VibrationEffect.Composition
có cường độ có thể mở rộng mà nhà phát triển có thể sử dụng thông qua addPrimitive(int primitiveId, float scale, int delay)
.
Các đối tượng gốc có thể được chia thành hai loại:
Đơn vị gốc ngắn: Đơn vị gốc có thời lượng ngắn, thường dưới 20 ms. Đó là
CLICK
,TICK
vàLOW_TICK
.Tính năng gốc chirp: Các tính năng gốc có biên độ và tần số khác nhau, thường có thời lượng dài hơn so với các tính năng gốc ngắn. Đó là
SLOW_RISE
,QUICK_RISE
,QUCK_FALL
,THUD
vàSPIN
.
Nguyên hàm ngắn
Bạn có thể mô tả các nguyên hàm ngắn bằng hồ sơ gia tốc đầu ra của động cơ rung. Tần số tuyệt đối được sử dụng sẽ khác nhau tuỳ theo mỗi đối tượng gốc, tuỳ thuộc vào tần số cộng hưởng của bộ truyền động. Hãy xem phần Thiết lập thiết bị kiểm thử để biết thêm thông tin về cách thiết lập phần cứng và công cụ đo lường đầu ra.
Một chỉ số chất lượng có giá trị đối với các rung động ngắn là tỷ lệ xung/đổ chuông (PRR), như trong Hình 5. PRR được xác định là tỷ lệ giữa điện xung chính, do tín hiệu bên trong cửa sổ thời lượng xác định, trong đó biên độ giảm xuống còn 10% biên độ đỉnh và điện xung vòng, do tín hiệu xác định, trong đó biên độ giảm từ 10% biên độ đỉnh xuống dưới 1% biên độ đỉnh. Để biết thêm thông tin về PRR, hãy xem bài viết Phân tích dạng sóng. Để biết thêm thông tin về cách phân tích và so sánh kết quả, hãy xem bài viết So sánh kết quả bằng bản đồ hiệu suất.
Hình 5. Định nghĩa về tỷ lệ xung nhịp/đổ chuông
Áp dụng các đối tượng gốc ngắn làm phản hồi đầu vào của người dùng hoặc phát trong các thành phần dài hơn để tạo kết cấu mềm. Điều này có nghĩa là các hiệu ứng này thường được kích hoạt thường xuyên và phát liên tiếp nhanh chóng. Cường độ được cảm nhận của một nguyên mẫu ngắn có thể kết hợp với cường độ hiệu ứng lớn hơn. Vì lý do này, hãy điều chỉnh một kim đánh dấu nhịp độ khung hình hoặc kim đánh dấu nhịp độ khung hình thấp nguyên gốc bằng một thành phần lớn hơn, ví dụ: 100 kim đánh dấu nhịp độ khung hình liên tiếp.
Lượt nhấp gốc
Lớp gốc của âm thanh nhấp chuột là một hiệu ứng mạnh mẽ, sắc nét thường hoạt động gần với tần số cộng hưởng của thiết bị để đạt được đầu ra tối đa trong một khoảng thời gian ngắn. Nó mạnh và sâu hơn các đối tượng gốc khác, hoạt động ở cường độ tối đa.
Nếu có, hãy sử dụng chế độ tăng tốc động cơ ở đầu và chế độ phanh chủ động ở cuối để đạt được thời gian tăng và giảm động cơ ngắn. Đối với một số động cơ, việc sử dụng sóng vuông thay vì sóng sin có thể giúp tăng tốc nhanh hơn. Hình 6 cho thấy một hồ sơ tăng tốc đầu ra mẫu cho nguyên hàm nhấp:
Hình 6. Ví dụ về hồ sơ tăng tốc đầu ra cho thao tác nhấp gốc
Thông số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 12 mili giây Giới hạn: < 30 mili giây |
Gia tốc đầu ra cực đại |
Mục tiêu: 2 G Giới hạn: > 1 GB |
Tần suất sao lưu | Gần tần số cộng hưởng |
Dấu đánh dấu gốc (dấu đánh dấu sáng)
Hiệu ứng kim đánh dấu nhịp độ khung hình là một hiệu ứng ngắn, sắc nét thường hoạt động ở phạm vi tần số cao hơn. Kiểu gốc này cũng có thể được mô tả là một lượt nhấp có cường độ trung bình ở tần suất cao hơn với đuôi ngắn. Hướng dẫn tương tự cũng áp dụng để đạt được thời gian tăng ngắn bằng cách sử dụng chế độ tăng tốc động cơ hoặc sóng vuông cho thời điểm bắt đầu ban đầu và phanh chủ động ở độ dời. Hình 7 cho thấy một hồ sơ tăng tốc đầu ra mẫu cho dấu thời gian gốc:
Hình 7. Ví dụ về hồ sơ tăng tốc đầu ra cho tick nguyên thuỷ
Thông số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 5 mili giây Giới hạn: < 20 ms |
Gia tốc đầu ra cực đại |
Mục tiêu: Một nửa Giới hạn: Từ 0,5 GB đến 1 GB |
Tần suất sao lưu |
Mục tiêu: 2x tần số cộng hưởng Giới hạn: < 500 Hz |
Dấu kiểm thấp
Kiểu gốc tick thấp là phiên bản tick sáng mềm hơn, yếu hơn, hoạt động ở phạm vi tần số thấp hơn để tạo thêm hiệu ứng. Kiểu gốc này cũng có thể được mô tả là một lượt nhấp có cường độ trung bình ở tần suất thấp hơn, nhằm mục đích sử dụng lặp lại cho phản hồi động. Hướng dẫn tương tự cũng áp dụng để đạt được thời gian tăng ngắn bằng cách sử dụng chế độ tăng tốc động cơ hoặc sóng vuông cho thời điểm bắt đầu ban đầu. Hình 8 cho thấy một hồ sơ tăng tốc đầu ra mẫu cho nguyên hàm kim đánh dấu nhịp độ khung hình thấp:
Hình 8. Ví dụ về hồ sơ gia tốc đầu ra cho giá trị gốc có tốc độ đánh dấu thấp
Thông số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 12 mili giây Giới hạn: < 30 mili giây |
Gia tốc đầu ra cực đại |
Mục tiêu: 1/4 Giới hạn: Từ 0,2 G đến 0,5 G |
Tần suất sao lưu |
Mục tiêu: 2/3 tần số cộng hưởng Giới hạn: < 100 Hz |
Các nguyên hàm Chirp
Các tín hiệu gốc của tiếng rít có thể được mô tả bằng tín hiệu đầu vào cho mức điện áp và tần số rung. Gia tốc mà động cơ có thể xuất ra ở các dải tần số khác nhau sẽ thay đổi tuỳ thuộc vào đường cong đáp ứng tần số của bộ truyền động. Bạn cần điều chỉnh dải tần số và mức điện áp trên cơ sở từng thiết bị.
Hàm tăng chậm
Tăng chậm là độ biên và tần số quét lên từ từ với thời gian bắt đầu nhẹ nhàng và cường độ rung tăng lên liên tục trong quá trình quét. Bạn có thể triển khai bằng cách quét nhất quán cả biên độ và tần số, sử dụng một dải tần số thấp hơn hoạt động ngoài cộng hưởng. Hình 9 cho thấy các tham số đầu vào và hồ sơ tăng tốc đầu ra mẫu cho cách triển khai này. (Dòng màu đỏ khớp với nhãn biên độ ở bên trái và thể hiện cách biên độ dao động thay đổi theo thời gian. Đường màu xanh dương khớp với nhãn tần số ở bên phải và thể hiện tần số dao động thay đổi theo thời gian.)
Hình 9. Tham số đầu vào và ví dụ về hồ sơ tăng tốc đầu ra cho nguyên hàm tăng chậm
Nếu đáp ứng tần số của động cơ bị hạn chế (không đủ mạnh ở tần số cộng hưởng), thì phương thức triển khai thay thế là quét sin từ 1/2x đến 1x tần số cộng hưởng. Sự cộng hưởng của động cơ góp phần đạt đến đỉnh tín hiệu ở cuối.
Thông số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 500 mili giây Dung sai: 20 ms |
Gia tốc đầu ra cực đại |
Mục tiêu: 0,5 G Giới hạn: Từ 0,5 GB đến 1 GB |
Tần suất sao lưu |
Mục tiêu: 1/2 đến 2/3 tần số cộng hưởng Phương án thay thế: 1/2 đến tần số cộng hưởng |
Phần tử gốc tăng nhanh
Sự tăng nhanh là một biên độ và tần số quét lên nhanh hơn với sự khởi đầu nhẹ nhàng và cường độ rung tăng lên liên tục trong quá trình quét. Mục tiêu tần số rung và gia tốc đầu ra phải giống với mục tiêu tăng chậm, đạt được trong thời lượng ngắn hơn. Hình 10 cho thấy các tham số đầu vào rung và hồ sơ gia tốc đầu ra mẫu cho nguyên hàm tăng chậm. (Dòng màu đỏ khớp với nhãn biên độ ở bên trái và thể hiện cách biên độ dao động thay đổi theo thời gian. Đường màu xanh dương khớp với nhãn tần số ở bên phải và thể hiện tần số dao động thay đổi theo thời gian.)
Hình 10. Tham số đầu vào và ví dụ về hồ sơ gia tốc đầu ra cho nguyên hàm tăng nhanh
Thông số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 150 mili giây Dung sai: 20 ms |
Gia tốc đầu ra cực đại |
Mục tiêu: Tương tự như Giới hạn: Tương tự như |
Tần suất sao lưu |
Mục tiêu: Tương tự như Phương án thay thế: Tương tự như |
Nguyên hàm rơi nhanh
Sự giảm nhanh là một biên độ và tần số quét xuống nhanh với thời điểm bắt đầu âm thanh nhẹ. Bạn có thể sử dụng tần số cao hơn làm điểm bắt đầu trong khi động cơ đang tăng tốc để đạt được gia tốc đầu ra cực đại. Tần số phải giảm liên tục trong quá trình quét, ngay cả trong thời gian tăng. Hình 11 cho thấy các tham số đầu vào và hồ sơ tăng tốc đầu ra mẫu cho quá trình triển khai này. (Dòng màu đỏ khớp với nhãn biên độ ở bên trái và thể hiện cách biên độ dao động thay đổi theo thời gian. Đường màu xanh dương khớp với nhãn tần số ở bên phải và thể hiện tần số dao động thay đổi theo thời gian.)
Hình 11. Tham số đầu vào và ví dụ về hồ sơ tăng tốc đầu ra cho nguyên mẫu rơi nhanh
Thông số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 100 mili giây Dung sai: 20 ms |
Gia tốc đầu ra cực đại |
Mục tiêu: 1 GB Giới hạn: Từ 0,5 GB đến 2 GB |
Tần suất sao lưu |
Mục tiêu: 2x đến 1x tần số cộng hưởng |
Thud nguyên thuỷ
Tiếng ầm là một hiệu ứng âm thanh gõ, thấp, bộ gõ mô phỏng cảm giác thực tế khi gõ vào gỗ rỗng. Kiểu gốc này hoạt động trong phạm vi tần số thấp, tương tự như kiểu gốc tick thấp, để cung cấp thêm nội dung cho hiệu ứng. Bạn có thể triển khai âm thanh thud nguyên thuỷ dưới dạng một biên độ và tần số quét xuống ở một dải tần số thấp hơn (tốt nhất là dưới 100 Hz). Hình 12 cho thấy các tham số đầu vào và hồ sơ tăng tốc đầu ra mẫu cho quá trình triển khai này. (Dòng màu đỏ khớp với nhãn biên độ ở bên trái và thể hiện cách biên độ dao động thay đổi theo thời gian. Đường màu xanh dương khớp với nhãn tần số ở bên phải và thể hiện tần số dao động thay đổi theo thời gian.)
Hình 12. Tham số đầu vào và ví dụ về hồ sơ tăng tốc đầu ra cho nguyên hàm thud
Nếu đáp ứng tần số của động cơ bị giới hạn, thì một phương thức triển khai thay thế là bắt đầu bằng tín hiệu truyền động cường độ đầy đủ ở tần số cộng hưởng và giảm xuống tần số thấp nhất có thể vẫn có thể nhận biết được. Phương pháp này có thể yêu cầu tăng cường độ tín hiệu truyền động ở tần số thấp hơn để cảm nhận được độ rung.
Thông số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 300 mili giây Dung sai: 20 ms |
Gia tốc đầu ra cực đại |
Mục tiêu: 0,25 G Giới hạn: Từ 0,2 G đến 0,5 G |
Tần suất sao lưu |
Mục tiêu: 1/2 đến 1/3 tần số cộng hưởng Phương án thay thế: 1x đến 1/2 tần số cộng hưởng |
Phần tử gốc Spin
Hiệu ứng xoay mô phỏng động lượng xoay của vòng quay lên và xuống nhanh với một điểm nhấn nhẹ ở giữa. Bạn có thể triển khai hiệu ứng xoay bằng cách quét biên độ và tần số một cách độc lập, theo hướng ngược lại và theo sau là chuyển động đảo ngược. Điều quan trọng là bạn phải sử dụng phạm vi tần số thấp hơn (tốt nhất là dưới 100 Hz). Hình 13 cho thấy các tham số đầu vào và hồ sơ tăng tốc đầu ra mẫu cho cách triển khai này. (Dòng màu đỏ khớp với nhãn biên độ ở bên trái và thể hiện cách biên độ dao động thay đổi theo thời gian. Đường màu xanh dương khớp với nhãn tần số ở bên phải và thể hiện tần số dao động thay đổi theo thời gian.)
Bạn nên gọi nguyên hàm xoay hai lần liên tiếp hoặc ba lần trong các thành phần để tạo cảm giác xoay và không ổn định.
Nếu đáp ứng tần số của động cơ bị hạn chế, bạn có thể triển khai một phương án thay thế là quét sin nhanh từ 1/2x đến 1x tần số cộng hưởng và quay lại. Độ cộng hưởng của động cơ tự động tạo ra một điểm nhấn ở giữa tín hiệu.
Hình 13. Thông số đầu vào và ví dụ về hồ sơ tăng tốc đầu ra cho nguyên hàm xoay
Thông số | Nguyên tắc |
---|---|
Thời lượng |
Mục tiêu: 150 mili giây Dung sai: 20 ms |
Gia tốc đầu ra cực đại |
Mục tiêu: 0,5 G Giới hạn: Từ 0,25 G đến 0,75 G |
Tần suất sao lưu |
Mục tiêu: 2/3 đến 1/3, sau đó quay lại 1/2 tần số cộng hưởng Phương án thay thế: 2/3 đến 1x, sau đó quay lại 1/2 tần số cộng hưởng |
Bước 3: Liên kết các hằng số giữa HAL và API
Bước 3 trình bày các mối liên kết được đề xuất giữa hằng số HAL công khai và hằng số API. Nếu phần cứng được đánh giá ở Bước 1 không triển khai hằng số HAL, hãy sử dụng Bước 3 để cập nhật các mẫu dự phòng được mô tả ở Bước 1 nhằm tạo ra các kết quả tương tự. Việc ánh xạ được hỗ trợ bởi hai mô hình mặc định khác nhau:
Mô hình rời (đơ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 độ 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 trải nghiệm người dùng haptics cơ bản.
- Để có trải nghiệm người dùng xúc giác nâng cao hơn, bạn cần có 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 xúc giác khác nhau. Độ lớn của mỗi thực thể HAL được kiểm soát bằng hệ số tỷ lệ (
S
). - Mô hình này yêu cầu phần cứng nâng cao. Nếu OEM muốn sử dụng trải nghiệm người dùng haptics nâng cao với
VibrationEffect.Composition
(để sử dụng hiệu quả nhất các API haptics mới nhất), bạn nên triển khai phần cứng bằng mô hình này.
- 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 xúc giác khác nhau. Độ lớn của mỗi thực thể HAL được kiểm soát bằng hệ số tỷ lệ (
Mô hình rời rạc
Bạn nên liên kết tất 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 quy trình này, hãy tìm hiểu số lượng sóng haptics có biên độ rời rạc mà thiết bị có thể xác định trong HAL. Một câu hỏi cụ thể được xây dựng xung quanh khái niệm đó có dạng như sau: Tôi có thể xác định được bao nhiêu hiệu ứng xúc giác xung kích đơ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 hằng số HAL là một quá trình phụ thuộc vào phần cứng. Ví dụ: điện thoại cấp thấp có thể chỉ có khả năng phần cứng để tạo một dạng sóng haptics 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 phạm vi rộng hơn về các mức biên độ rời rạc và có thể xác định nhiều dạng sóng xúc giác trong HAL. Việc ánh xạ 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ừ đó.
Hình 14. 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 ánh xạ hằng số HAL và API theo số lượng hằng số HAL. Quy trình ánh xạ này có thể phân đoạn một hằng số API xung duy nhất thành tối đa ba nhóm mức độ biên độ riêng biệt. Cách phân đoạn hằng số API dựa trên các nguyên tắc về trải nghiệm người dùng cho các sự kiện đầu vào đi kèm. Để biết thêm thông tin, hãy xem phần Thiết kế trải nghiệm người dùng haptics.
Hình 15. Ánh xạ hằng số HAL-API: Mô hình rời rạc
Nếu thiết bị của bạn chỉ hỗ trợ hai hằng số HAL có biên độ riêng biệt, hãy cân nhắc hợp nhất hằng số HAL cấp độ 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_CLICK
và EFFECT_HEAVY_CLICK
với cùng một hằng số HAL, đó sẽ là hằng số HAL cấp độ 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 hợp nhất cả ba 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 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 HAL theo tỷ lệ (HAL_H0
x S
). Trong trường hợp này, HAL theo 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 16. Bằng cách sử dụng khả năng mở rộng biên độ của mô hình liên tục, thiết bị có thể lưu trữ một số ít hằng số HAL có kết cấu riêng 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
). 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 xúc giác khác nhau mà họ muốn cung cấp.
Hình 16. Phạm vi hằng số HAL theo hoạ tiết (HAL_H0) và tỷ lệ biên độ (S)
Hình 17. Ánh xạ 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 hiệu ứng xúc giác khác nhau thay vì 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ì cảm nhận về hoạ tiết (ví dụ: độ sắc nét) liên quan đến cảm nhận về thời lượng và biên độ, nên bạn nên kết hợp hoạ tiết và hệ số tỷ lệ (trong quá trình thiết kế ánh xạ HAL-API).
Hình 18 minh hoạ việc ánh xạ hằng số bằng cách tăng độ biến thiên từ một HAL đến nhiều hằng số API có khả năng mở rộng biên độ.
Hình 18. Tăng độ biến thiên bằng khả năng mở rộng theo biên độ
Đối với tất cả các hằng số API có thể mở rộng như PRIMITIVE_TICK
và PRIMITIVE_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_TICK
và PRIMITIVE_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 hiệu ứng kết cấu.
Bước 4: Đánh giá phần cứng
Đánh giá phần cứng bao gồm việc xác định 3 hiệu ứng xúc giác, được gắn nhãn là Hiệu ứng 1, 2 và 3 cho quy trình đánh giá cụ thể này.
Hiệu ứng 1: Hằng số xúc giác ngắn được xác định trước
Hằng số VibrationEffect.EFFECT_CLICK
là hiệu ứng cơ sở hoặc mẫu số chung trong ánh xạ HAL-API được cung cấp ở Bước 2. Nó được liên kết với hiệu ứng được sử dụng nhiều nhất, HapticFeedbackConstants.KEYBOARD_PRESS
.
Việc đánh giá hiệu ứng này giúp xác định mức độ sẵn sàng của thiết bị mục tiêu để sử dụng tính năng hiệu ứng xúc giác rõ ràng.
Hiệu ứng 2: Hiệu ứng xúc giác tuỳ chỉnh ngắn
Hằng số VibrationEffect.createOneShot(20,255)
là dành cho hiệu ứng xúc giác tuỳ chỉnh. Đối với các xung tuỳ chỉnh ngắn, đơn lẻ, ngưỡng tối đa đề xuất để xác định thời lượng là 20 ms. Bạn không nên sử dụng một xung duy nhất dài hơn 20 ms vì người dùng sẽ cảm nhận được đó là một cảm giác rung ồn ào.
Hình 19. Hiệu ứng xúc giác tuỳ chỉnh ngắn
Hiệu ứng 3: Hiệu ứng xúc giác tuỳ chỉnh dài với độ biến thiên biên độ
Hằng số VibrationEffect.createWaveform(timings[], amplitudes[], int
repeat)
là dành cho các hiệu ứng tuỳ chỉnh dài có độ biến thiên biên độ. Khả năng tạo ra các biên độ khác nhau cho hiệu ứng xúc giác tuỳ chỉnh là một trong những chỉ báo để đánh giá khả năng của thiết bị đối với hiệu ứng xúc giác phong phú. timings []
và amplitudes []
được đề xuất lần lượt là {500, 500}
và {128, 255}
, cho thấy xu hướng tăng biên độ từ 50% đến 100%, với tốc độ lấy mẫu 500 ms.
Hình 20. Hiệu ứng xúc giác tuỳ chỉnh dài với độ biến thiên biên độ
Để kiểm tra khả năng phần cứng của tính năng kiểm soát biên độ cho Hiệu ứng 3, hãy sử dụng phương thức Vibrator.hasAmplitudeControl()
. Kết quả phải là true
để thực thi
VibrationEffect.createWaveform
với biên độ thay đổi như dự kiến.
Hình 21. Đánh giá của đối tượng về hiệu ứng xúc giác 1, 2 và 3
Thực hiện đánh giá chủ quan
Để kiểm tra nhanh tính nhất quán, trước tiên, hãy thực hiện đánh giá chủ quan. Mục tiêu của việc đánh giá chủ quan là quan sát biên độ của hiệu ứng xúc giác để xác định xem thiết bị có thể tạo ra hiệu ứng xúc giác với biên độ mà con người có thể cảm nhận được hay không.
Một câu hỏi cụ thể được xây dựng xung quanh khái niệm này có dạng như sau: Thiết bị có thể tạo ra hiệu ứng xúc giác dễ nhận biết cho người dùng như mong đợi không? Việc trả lời câu hỏi này giúp bạn tránh tình trạng phản hồi xúc giác không thành công, bao gồm cả phản hồi xúc giác không thể nhận biết mà người dùng không thể cảm nhận được hoặc phản hồi xúc giác ngoài ý muốn, trong đó dạng sóng không tạo ra các mẫu như dự kiến.
Thực hiện đánh giá nâng cao
Bạn nên thực hiện các quy trình đánh giá chất lượng nâng cao. Các phương pháp đánh giá chất lượng nâng cao mô tả các thuộc tính có thể định lượng của hiệu ứng xúc giác để triển khai hiệu ứng xúc giác chất lượng. Khi hoàn tất, nhà sản xuất thiết bị có thể chẩn đoán trạng thái hiện tại của phản hồi xúc giác, tức là họ có thể đặt mục tiêu để cải thiện chất lượng tổng thể. Xem phần Đánh giá phần cứng.