This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Fast screenshots on OMAP4460 with Android

Hello to all,

I'm currently working on a system where an OMAP4460 based device with Android ICS 4.0.3 is controlled via VNC by a Linux based touchscreen device. It works, but is not very responsive (a response to a screen tap can take up to 500 ms, which feels slow). A significant part of this time is lost by getting a screenshot on the Android system. I currently use SurfaceFlinger's ScreenshotClient class (from native code), but this takes about 90 milliseconds to get an image. For comparison: reading a frame buffer on the same system takes 6 ms. Unfortunately this is not an option since Android no longer uses /dev/graphics/fb0 to compose/store the screen image in. And Android does not offer any other way to get the displayed image from code.

My question is as follows: can anyone suggest a fast(er) way of getting the image currently displayed on screen in native Android code?

Based on the overview of how Android's display system works (http://processors.wiki.ti.com/index.php/TI-Android-GingerBread-2.3.4-DevKit-2.1_PortingGuides#Display), I'm hoping to be able to access the complete image before it is put on screen via the Linux frame buffer driver or maybe DSS2. However, looking through the kernel code I'm at a loss as to how this works and where the best point is to (modify the code and) access the complete image.

Any other solution or suggestion is welcome too, however.

Thanks in advance,

Edwin.