2012-01-18 50 views
16

Có cách nào (có thể một số ứng dụng, hack, libs) đo khung hình trên giây (FPS) trong khi phát triển ứng dụng cho Android không?Cách đo FPS trên Android trong quá trình phát triển ứng dụng

+0

Đoán câu hỏi của bạn hơi quá chung chung. Bạn đang nói về một số công cụ giao diện người dùng cổ phiếu bạn đang sử dụng hoặc bạn đang chạy ngữ cảnh OpenGL hoặc một cái gì đó tương tự? Trong trường hợp sau, tôi chỉ tự mình đếm các khung hình. – Mario

Trả lời

14

Lưu ý rằng hiệu suất sẽ khủng khiếp với trình gỡ lỗi được đính kèm.

Từ trò chơi Android của riêng tôi, thời gian khung có thể được đo bằng android.os.SystemClock. Tức là, bạn gọi SystemClock.elapsedRealtime() một lần cho mỗi khung và trừ giá trị khỏi khung trước đó. Vì elapsedRealtime() được đo bằng mili giây, tính tốc độ khung hình đơn giản là 1000.0/frametime.

Bạn có thể đăng mã của mình vào khung đang diễn ra bằng cách sử dụng Choreographer#postFrameCallback nếu nhắm mục tiêu API cấp 16 trở lên (Jelly Bean).

Cũng lưu ý rằng frametime thường là thước đo hiệu suất tốt hơn tốc độ khung hình. Sự khác biệt giữa 1000fps và 1200fps là khoảng thời gian tương tự như sự khác biệt giữa 60fps và 61fps (khoảng, có thể ít hơn mặc dù)

+0

Oh và nếu bạn đang cố gắng làm nội suy/hoạt hình, bạn có thể sử dụng cùng một thời gian như một cách để có được chuyển động trơn tru dựa trên thời gian. –

+4

Sự khác biệt giữa 1000-1200 là khoảng 0,17 giây, chênh lệch giữa 60 và 61 khung hình/giây là khoảng 0,017 giây. Vì vậy, đó chắc chắn là một sự khác biệt rất lớn. – Sietse

+1

tính toán thời gian trôi qua của bạn bằng mili giây như bạn đã nói. Vì vậy, không nên tính toán tốc độ khung hình là 1000.0/frametime? Tôi đoán nó không rõ ràng những gì đơn vị câu trả lời của bạn được xác định, nhưng kể từ khi OP được đề cập đến khung hình mỗi giây, tôi nghĩ rằng bạn cần phải làm 1000.0 –

3

apps trong cửa hàng play có thể đo FPS của phiên chơi. Hãy nhìn vào GameBench. Nó có thể đo lường hiệu suất của bất kỳ trò chơi trong khi nó đang được chơi và bạn có thể tương quan FPS giảm xuống những gì đã được trả lại trên màn hình.

15

Bạn có thể sử dụng thư viện TinyDancer.

Đơn giản chỉ cần thêm mã như:

public class DebugApplication extends Application { 

    @Override public void onCreate() { 

    // default config 
    TinyDancer.create().show(this); 

    //or customazed config 
    TinyDancer.create() 
     .redFlagPercentage(.1f) // set red indicator for 10% 
     .startingGravity(Gravity.TOP) 
     .startingXPosition(200) 
     .startingYPosition(600) 
     .show(this); 
    } 
} 

Và bạn sẽ thấy cái nhìn tương tác với thông tin về FPS hiện trên màn hình của bạn.

enter image description here

+0

nó thực sự dễ sử dụng, nhanh chóng để thực hiện trong một mã hiện có và hoạt động như một sự quyến rũ. Tốt nhất! – SMalpica

+0

Đây là giải pháp tốt nhất. Kết quả rất tuyệt vời! –

2

Tôi đã sử dụng GameBench Phân tích FPS của một ứng dụng Android (nó không phải là một trò chơi, tôi muốn kiểm tra FPS khi một hình ảnh động của ứng dụng của tôi bắt đầu chạy). GameBench nắm bắt các chỉ số tốc độ khung hình chính (FPS), là chỉ số khách quan tốt nhất về tính lưu động của UX.

Yêu cầu của tôi là xác minh FPS là 30FPS khi hoạt ảnh của ứng dụng Android của tôi bắt đầu.

Tôi đã xác minh những điều sau đây với báo cáo Graph được cung cấp bởi các công cụ GameBench,

  • Khi các hình ảnh động khởi động, FPS chuyển từ 0 FPS 30FPS.
  • Khi hoạt ảnh kết thúc FPS được chuyển từ 30FPS thành 0 FPS

Xem ảnh chụp màn hình.

enter image description here

Để sử dụng công cụ này, bạn phải cài đặt một ứng dụng Android và một phóng desktop.

  1. Cài đặt ứng dụng GameBench trong thiết bị Android của bạn.
  2. Đăng ký GameBench bằng địa chỉ email và cài đặt ứng dụng dành cho máy tính để bàn.
  3. Tải xuống và cài đặt Trình khởi chạy dành cho máy tính để bàn GameBench.
  4. Kết nối thiết bị với máy tính để bàn. Bạn có thể nhận được cửa sổ bật lên trên thiết bị yêu cầu bạn cho phép USB Debugging
  5. Trong ứng dụng Android GameBench, bạn có thể chọn ứng dụng (mà tôi đã cài đặt trên máy tính bảng) để phân tích.
  6. Sau đó, bạn có thể ghi lại khung hình mỗi giây và tạo báo cáo (có sẵn trong trang tổng quan web, FPS, ảnh chụp màn hình, hiệu suất, pin, v.v.).

tham khảo:

  1. https://play.google.com/store/apps/details?id=com.gamebench.metricscollector
  2. https://www.gamebench.net/
  3. https://docs.gamebench.net/web-dashboard/getting-started

Là một mặt lưu ý,

Tôi đã sử dụng FPS Meter app cũng có, nhưng có vẻ như tôi không chính xác trong trường hợp của tôi. Có 29FPS đến 31 FPS khi hoạt ảnh của tôi trong ứng dụng Android bắt đầu. FPS dự kiến ​​là 30FPS.

https://play.google.com/store/apps/details?id=com.ftpie.fpsmeter&hl=en

Các vấn đề liên quan