Adobe AIR on the original Nexus 10: How I solved my framerate issue

6 Dec

It’s safe to say that there have been issues regarding AIR’s graphical performance on the original Nexus 10.

I have seen several examples where content works flawlessly everywhere else- or at least across the dozen or so iOS/Android phones & tablets I normally test with.  But when it comes to the Nexus 10, there have been issues– either with or without employing Stage3D.

I have had a long standing issue with one app in particular, where a short keyframed animation containing mostly bitmaps drags the app’s framerate down as low as 1fps.  It even slowed down the rate that frames were logged in Scout CC, which I’m not sure I’ve ever seen before.  At any rate (ha!), I wanted to share the one “dead-simple” thing I found that changed everything.

Short answer: there was a vector graphic in the mix.

It’s easy to hear that and think “ah, well of course that was the issue!”  But remember- this was a complete non-issue on every other device (including the original iPad, iPad 2, iPod4, iPhone 4, Android Nexus 7, Toshiba Thrive, Droid Incredible 1/2, Galaxy S3, etc.).  On those devices, the vector graphic animated as quickly as everything else- offering no clue that it might be a culprit.

On the Nexus 10, caching that one vector graphic as a bitmap solved everything instantly- causing the brief, single keyframed sequence in my app to go from 1 fps back up to the 60 fps range.

If I had to make a guess, it would be that the Nexus 10’s above average resolution may somehow be contributing to the fact that what would normally be a slightly cpu-taxing task- moving some vectors around via math- becomes a huge burden in the case of (only) the Nexus 10.  It’s a mystery, but I feel lucky to have been able to at least resolve it for my own apps & hope this helps someone else.


Comment Form