2011-07-08 19 views
6

Mam niestandardowy widok, który próbuję wyświetlić, jednak widzę kilka jitter na nim. Wszystko przewija się wolno i nie jest tak responsywne, jak powinno być.GLES20Canvas.nDrawDisplayList jest powolny

użyłem traceview i zobaczył, że

GLES20Canvas.nDrawDisplayList

wydaje odpowiedzialny za sobą dużo czasu na wykonanie.

Proszę o pomoc?

Odpowiedz

3

GLES20Canvas.nDrawDisplayList ma mieć dużą część czasu, jeśli dużo rysujesz, szczególnie bardzo duże widoki. Jeśli widzisz to po całym wyświetleniu, odpowiedź brzmi "DRAW MNIEJ"

W moim konkretnym numerze rysowałem dużą warstwę alfa na dużych widokach. Polecam przeczytanie Do i Dont z Android 3.0 Hardware Acceleration by Romain Guy

+5

Przeprowadziłem tę analizę na różnych urządzeniach dla tych samych działań, fragmentów i widoków. Widzę tylko duże opóźnienie na nDrawDisplayList na urządzeniu HTC One (http://stackoverflow.com/a/21791909/546901). Osoby w innych wątkach zgłaszają ten wynik śledzenia, który jest specyficzny dla urządzenia (https://code.google.com/p/android/issues/detail?id=22514). Inne urządzenia mają zdrowe wyniki śledzenia. Wygląda na to, że jest to prawdopodobnie problem na poziomie urządzenia lub systemu operacyjnego. Większość ludzi zdaje się obserwować to na ScrollView lub ListView. –

+1

Używam Galaxy S4 do testowania, Akceleracja sprzętowa jest domyślnie włączona (Target API Level 19), poprzez wstawienie 'android: layerType =" software "' na moim 'GridView' renderowanie jest teraz szybsze. Uwaga: nie używaj tego jako ostatecznego rozwiązania, spróbuj znaleźć główną przyczynę. – TWiStErRob