Android 15 đặt tốc độ làm mới mặc định là 60 Hz cho trò chơi để tối ưu hoá mức tiêu thụ điện năng. Để mở khoá tốc độ khung hình cao hơn như 120 FPS, giờ đây, bạn phải yêu cầu rõ ràng các tốc độ khung hình đó bằng cách sử dụng Frame Rate API (API Tốc độ khung hình) hoặc thư viện Swappy.
Tuy nhiên, hệ thống có thể ghi đè yêu cầu này dựa trên các yếu tố như mức pin hoặc nhiệt độ thiết bị. Mặc dù tốc độ làm mới cao hơn giúp tăng độ mượt mà của hình ảnh, nhưng cũng đòi hỏi nhiều năng lượng hơn và tạo ra nhiều nhiệt hơn. Do đó, điều quan trọng là phải cung cấp cho người dùng lựa chọn tốc độ làm mới mà họ muốn và theo dõi kỹ hiệu suất để đảm bảo trải nghiệm người dùng cân bằng.
Sử dụng API setFrameRate()
API setFrameRate()
cho phép nhà phát triển trò chơi sử dụng một tốc độ làm mới màn hình cụ thể. Có hai bước để thực hiện việc này:
- Xác minh khả năng tương thích của thiết bị và phiên bản Android.
- Yêu cầu FPS cao bằng
setFrameRate()
.
Xác minh khả năng tương thích của thiết bị và phiên bản Android:
Sử dụng các phương thức Display.getSupportedModes()
để xác định xem thiết bị có hỗ trợ tốc độ làm mới 90Hz, 120Hz hay các tốc độ làm mới khác hay không. Nếu thiết bị bị giới hạn ở 60 Hz, bạn không thể vượt quá giới hạn này.
Kotlin
val display = windowManager.defaultDisplay
val supportedModes = display.supportedModes
for (mode in supportedModes) {
Log.d("DisplayInfo", "Supported mode: ${mode.physicalWidth}x${mode.physicalHeight}, ${mode.refreshRate}Hz")
}
Yêu cầu FPS cao
Gọi setFrameRate()
khi vòng lặp kết xuất bắt đầu, trong quá trình khởi chạy cửa sổ trò chơi hoặc khi FPS mục tiêu cần thay đổi tốc độ làm mới màn hình.
Ngay cả khi bạn yêu cầu tốc độ cao hơn, hệ thống vẫn có thể giới hạn tốc độ làm mới ở mức 60 Hz do các yếu tố như chế độ tiết kiệm pin hoặc điều tiết nhiệt. Nếu hiệu suất kết xuất của trò chơi không đạt được FPS mục tiêu, thì việc yêu cầu tốc độ làm mới cao hơn có thể làm tiêu hao điện năng không cần thiết và làm tăng nhiệt độ của thiết bị.
Đoạn mã sau đây minh hoạ cách tránh tốc độ làm mới quá cao bằng API setFrameRate()
.
Kotlin
val targetFps = 120f
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setFrameRate(
targetFps,
Window.FrameRateCompatibility.FRAME_RATE_COMPATIBILITY_FIXED_SOURCE,
0
)
}
Trang Tốc độ khung hình cung cấp thêm thông tin chi tiết để bạn tham khảo thêm.
Sử dụng thư viện Frame Pacing (Tốc độ khung hình)
Thư viện tốc độ khung hình (hay Swappy) là một thư viện nguồn mở được thiết kế để đơn giản hoá việc quản lý VSync và lên lịch khung hình trong các công cụ phát triển trò chơi Android C/C++.
Công cụ này đơn giản hoá quá trình tối ưu hoá tốc độ làm mới, đóng vai trò hiệu quả như một lớp trừu tượng cấp cao hơn so với các chức năng như setFrameRate()
. Ngoài ra, Swappy còn cung cấp các tính năng bổ sung có thể cải thiện hiệu suất và độ mượt mà tổng thể của trò chơi.
Trang Swappy cung cấp thêm thông tin chi tiết.
Các mẹo khác để đạt được kết quả tốt nhất
Phần sau đây trình bày một số mẹo hay nhất:
- Chuyển đổi tốc độ khung hình động.
- Giám sát hiệu suất.
- Cung cấp các tuỳ chọn FPS dựa trên tốc độ làm mới màn hình tối đa.
Chuyển đổi tốc độ khung hình động
Để tối ưu hoá cả hiệu suất và mức tiêu thụ điện năng, hãy cân nhắc triển khai tính năng chuyển đổi tốc độ khung hình động trong trò chơi. Kỹ thuật này cho phép bạn chuyển đổi liền mạch giữa các tốc độ làm mới cao hơn như 120Hz để có trải nghiệm chơi mượt mà hơn trong các cảnh đòi hỏi cao và tốc độ thấp hơn như 60Hz trong các khoảnh khắc ít đòi hỏi hơn hoặc khi bạn lo ngại về thời lượng pin hoặc nhắm đến tốc độ dưới 60 khung hình/giây. Việc liên tục chạy ở tốc độ 120 Hz có thể dẫn đến sự gia tăng nhiệt quá mức và tiêu hao pin nhanh chóng, có thể dẫn đến trải nghiệm người dùng không tốt. Bằng cách điều chỉnh tốc độ làm mới một cách thông minh dựa trên tải kết xuất hiện tại và điều kiện thiết bị, bạn có thể cân bằng giữa độ trung thực hình ảnh và hiệu suất năng lượng.
Giám sát hiệu suất
Để đảm bảo trò chơi của bạn hoạt động tối ưu ở tốc độ làm mới cao hơn, hãy tích hợp các công cụ theo dõi hiệu suất như bộ đếm khung hình hoặc lớp phủ hiệu suất. Các công cụ này cung cấp phản hồi theo thời gian thực về tốc độ khung hình thực tế của trò chơi, cho phép bạn xác minh xem liệu bạn có liên tục đạt được tốc độ khung hình mục tiêu 120 FPS hay không.
Nếu tốc độ khung hình của bạn biến động đáng kể, hãy cân nhắc nhắm đến tốc độ khung hình có thể đạt được thấp hơn trên thiết bị nhất định. Điều này có thể mang lại trải nghiệm mượt mà hơn mà không gặp phải sự cố về hiệu suất có thể xảy ra khi cố gắng đạt được tốc độ làm mới cao nhất.
Cung cấp các tuỳ chọn FPS dựa trên tốc độ làm mới màn hình tối đa
Trò chơi của bạn sẽ phát hiện tốc độ làm mới màn hình tối đa mà thiết bị hiện tại hỗ trợ, chẳng hạn như 60Hz, 90Hz hoặc 120Hz, đồng thời giới hạn chế độ cài đặt FPS cho phù hợp. Ví dụ: nếu thiết bị chỉ hỗ trợ tối đa 60 Hz, bạn nên tắt mọi tuỳ chọn cao hơn 60 FPS trong phần cài đặt trò chơi để tránh gây nhầm lẫn cho người chơi.