2011-07-08 8 views
6

Tôi có một chế độ xem tùy chỉnh mà tôi đang cố gắng hiển thị, tuy nhiên tôi thấy một loạt các jitter trên đó. Mọi thứ cuộn chậm và không phản hồi như mong muốn.GLES20Canvas.nDrawDisplayList là chậm

tôi đã sử dụng traceview và thấy rằng

GLES20Canvas.nDrawDisplayList

dường như trách nhiệm thực hiện rất nhiều thời gian để thực thi.

Bất kỳ trợ giúp nào?

Trả lời

3

GLES20Canvas.nDrawDisplayList dự kiến ​​sẽ có một phần lớn thời gian nếu bạn vẽ nhiều, đặc biệt là các chế độ xem rất lớn. Nếu bạn thấy điều này trên tất cả các truy vấn của mình, câu trả lời là "BẢN V L LESS"

Trong vấn đề cụ thể của tôi, tôi đã vẽ một lớp alpha lớn trên các khung nhìn lớn. Tôi khuyên bạn nên đọc Do's và Dont's từ Android 3.0 Hardware Acceleration by Romain Guy

+5

Tôi đã chạy phân tích này trên các thiết bị khác nhau cho cùng hoạt động, phân đoạn và chế độ xem. Tôi chỉ thấy sự chậm trễ lớn trên nDrawDisplayList trên thiết bị HTC một (http://stackoverflow.com/a/21791909/546901). Những người trong các chủ đề khác báo cáo kết quả traceview này là thiết bị cụ thể (https://code.google.com/p/android/issues/detail?id=22514). Các thiết bị khác có kết quả traceview lành mạnh. Có vẻ như đó có thể là vấn đề về thiết bị hoặc hệ điều hành. Hầu hết mọi người dường như quan sát nó trên ScrollView hoặc ListView. –

+1

Tôi đang sử dụng Galaxy S4 để thử nghiệm, Tăng tốc phần cứng được bật theo mặc định (Target API Level 19), bằng cách đặt 'android: layerType =" software "' vào 'GridView' của tôi, việc hiển thị thực sự nhanh hơn. Lưu ý: không sử dụng điều này như là một giải pháp cuối cùng, cố gắng tìm nguyên nhân gốc rễ. – TWiStErRob