Theo dõi hiện tượng giật

Để đảm bảo ứng dụng hoạt động trơn tru, bạn nên nhắm đến tốc độ 60 khung hình/giây (16 mili giây/khung hình). Nếu ứng dụng không đáp ứng thời gian kết xuất khung hình bắt buộc, hệ thống buộc phải bỏ qua một số khung hình và người dùng coi như ứng dụng bị gián đoạn kết xuất. Vấn đề tương tác không suôn sẻ do thiếu khung hình trên màn hình này được gọi là hiện tượng giật. Để biết thêm thông tin về trải nghiệm này, hãy xem bài viết Kết xuất chậm.

Mối quan hệ giữa khung hình chậm, khung hình bị treo và lỗi ANR (ứng dụng không phản hồi)

Khung hình chậm, khung hình bị treo và lỗi ANR đều là các dạng giật khác nhau mà ứng dụng của bạn có thể gặp phải. Hãy xem bảng bên dưới để hiểu sự khác biệt.

Khung hình chậm Khung hình bị treo ANR
Thời gian kết xuất Từ 16 mili giây đến 700 mili giây Từ 700 mili giây đến 5 giây Hơn 5 giây
Vùng tác động rõ ràng của người dùng
  • RecyclerView bất ngờ cuộn
  • Trên các màn hình có ảnh động phức tạp hoạt động không đúng cách
  • Trong khi khởi động ứng dụng
  • Di chuyển từ màn hình này sang màn hình khác (ví dụ: chuyển đổi màn hình)
  • Khi hoạt động ở nền trước, ứng dụng của bạn không phản hồi một sự kiện đầu vào hoặc BroadcastReceiver (chẳng hạn như sự kiện nhấn phím hoặc chạm vào màn hình) trong vòng 5 giây.
  • Mặc dù bạn không có hoạt động nào trên nền trước, nhưng BroadcastReceiver của bạn chưa hoàn thành việc thực thi trong một khoảng thời gian đáng kể.

Theo dõi riêng khung hình chậm và khung hình bị treo

Khi ứng dụng của bạn đang khởi động hoặc chuyển sang một màn hình khác, thì việc khung ban đầu mất hơn 16 mili giây để vẽ là điều bình thường vì ứng dụng phải tăng cường khung hiển thị, bố trí màn hình và thực hiện bản vẽ ban đầu từ đầu.

Các phương pháp hay nhất để ưu tiên và giải quyết hiện tượng giật

Hãy lưu ý các phương pháp hay nhất sau đây khi tìm cách giải quyết hiện tượng giật trong ứng dụng:

  • Xác định và giải quyết các trường hợp giật dễ mô phỏng.
  • Ưu tiên lỗi ANR. Mặc dù khung hình chậm hoặc bị treo có thể khiến ứng dụng chạy chậm, nhưng lỗi ANR sẽ khiến ứng dụng của bạn bị treo.
  • Quá trình kết xuất chậm rất khó tái hiện, nhưng bạn có thể bắt đầu bằng cách tắt các khung hình bị treo 700 mili giây. Đây là trường hợp hay xảy ra nhất khi ứng dụng khởi động hoặc thay đổi màn hình.