3

My app, which has a list view with some scrolling, is performing very well (scrolling at 60fps) on all phones I have tested it with, Nexus One, Nexus 4 and Galaxy S3/4. But the performance is terrible on the Nexus 10, probably around 15fps or so.

I have analysed it to be the Execute part of the graphics pipeline. I have attached a screenshot of a Nexus 10 and a Nexus 4, which are running Android 4.3 and no funny stuff.

The UI is even drawn at the same size, with approx the same amount of pixels. So it is just covering some 20% of the surface on the Nexus 10 and 90% of the surface on the phones. This means that it's not the number of pixels that's the problem. Also, I have checked so that when I scroll, it is only the scrolling area that are updated, not the entire screen.

What I am wondering is, how do I find out what is causing the show Execute phase on the Nexus 10?

Cheers, Mikael Nexus 10 Nexus 4

genpfault
  • 51,148
  • 11
  • 85
  • 139
Mikael Grev
  • 587
  • 4
  • 12
  • 1
    I can fix it with mainView.setLayerType(View.LAYER_TYPE_HARDWARE, null); Which makes everything smooth also on the nexus 10. But the question remains, how do I analyse the original problem in case it resurfaces? It's of course a given now that hardware support wasn't enabled on Nexus 10, which is kind of strange.. – Mikael Grev Nov 08 '13 at 10:57
  • Are you using a custom ListAdapter for the ListView? If so, you should try to use a custom ViewHolder as suggested here: http://developer.android.com/training/improving-layouts/smooth-scrolling.html#ViewHolder – koesie10 Nov 08 '13 at 16:20

1 Answers1

0

I had troubles with scrolling when a lot of NumberPickers where on the screen. So slow!! "Mihael Grev" advice mainView.setLayerType(View.LAYER_TYPE_HARDWARE, null);

StepanM
  • 4,222
  • 1
  • 21
  • 25