2011-06-27 35 views
19

Tôi chỉ đọc một blogpost by Romain Guy về cách tăng tốc giao diện người dùng ứng dụng. Ông về cơ bản nói rằng nếu ứng dụng của bạn sử dụng quan điểm đục bạn có thể đặt nền để @null trong phong cách Activity của bạn sử dụng:android: windowBackground = "@ null" để cải thiện tốc độ ứng dụng

Liệu công việc này? Tôi đã sẵn sàng để kiểm tra này bằng cách sử dụng FPS như ông đã làm nhưng tôi đã không tìm thấy một cách rõ ràng nhận được thông tin đó.

Tôi đã đọc một số threads nói rằng bạn cần tự làm điều đó. Tôi sắp thêm chế độ xem tùy chỉnh để vẽ FPS theo phương pháp onDraw() và gọi số invalidate() để nhận cuộc gọi mọi lúc.

Mặc dù công trình này, tôi muốn biết nếu có cách nào tốt hơn để phân tích FPS trong một ứng dụng.

+1

Blogpost đó có mã nguồn mẫu. Kiểm tra 'FpsImageView.java'. – jamapag

+7

Tôi phân tích FPS trước tiên về phạm vi của vũ khí có sẵn. Trò chơi mà bạn có ít súng/dao/bất cứ điều gì và không có khả năng để có được những người khác có xu hướng để có được cũ tương đối nhanh chóng. Sau đó, tôi tập trung vào việc điều hướng dễ dàng - tôi có thể nhận được từ điểm này đến điểm khác mà không có tedium quá mức không? Cấu hình HUD là tốt đẹp, như tôi có xu hướng tìm thấy chúng một chút mất tập trung khi tung ra một cuộc tấn công tất cả ra ... Oh, chờ đợi. Bạn có thể có nghĩa là "khung hình mỗi giây", không phải "người đầu tiên bắn súng". Lỗi của tôi. :-) (và, FWIW, tôi không có một đầu mối làm thế nào bạn muốn tính toán FPS bên ngoài của một trò chơi hoặc tùy chỉnh 'View' như bạn mô tả). – CommonsWare

+0

@jamapag: Cảm ơn bạn đã chỉ ra điều đó. Tôi nhận được câu trả lời từ mã của anh ấy. Bạn có muốn đăng câu trả lời về nó để tôi có thể cung cấp cho bạn điểm đại diện không? – Macarse

Trả lời

3

Điều đó blogpost có mã nguồn mẫu. Kiểm tra FpsImageView.java.

3

Nếu giao diện người dùng của ứng dụng của bạn vẽ hoàn toàn nội dung cửa sổ, bạn luôn phải đặt windowBackground thành rỗng. Điều này ngăn cản khung làm đầy cửa sổ của bạn với màu nền mặc định, do đó, nó là một ít vượt qua đó là cần thiết để render mỗi khung có nghĩa là bạn có thể dành thời gian của riêng bạn vẽ số lượng điểm ảnh đó.

+1

Cảm ơn câu trả lời. Liên quan đến làm thế nào để có được FPS, tôi đã suy nghĩ của việc thêm mã 'hoạt động' Romain Guy vào một lớp và làm cho 'hoạt động' của tôi mở rộng từ nó trong khi phát triển để kiểm tra FPS của họ. Bạn có nghĩ rằng đó là chính xác? Nó có ý nghĩa không? Cảm ơn! – Macarse

0

trên một số trường hợp, tôi đã nhận thấy rằng việc đặt nền thành không tạo ra lỗi ổn định lạ, như được viết here.

tôi khuyên bạn nên thử nghiệm trên nhiều thiết bị khác nhau và trên trình mô phỏng trước khi quyết định có nó.

+1

Như tôi đã đọc, có vẻ như ổn định lạ xảy ra chỉ khi cả hai listView và cửa sổ có nền thiết lập để @null. Nếu bạn muốn tối ưu hóa ứng dụng, hãy chọn một trong hai ứng dụng đó. –

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