I have an RGB565 byte array which I display on my Canvas like this:
Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565);
ByteBuffer buf = ByteBuffer.wrap(data); // data is my array
bmp.copyPixelsFromBuffer(buf);
// then I display the bitmap on my SurfaceView
I can see this procedure is rather slow on my phone. Can I do faster than that, I just need to display this byte RGB565 array on my canvas. My phone doesn’t have graphic acelerator so openGL probably won’t help..
This isn’t a detailed answer, but if you need serious performance with the bitmaps, I’d look at doing it in the NDK. I’ve dabbled with this a bit and its pretty good.
http://developer.android.com/sdk/ndk/overview.html
Look at the plasma example. We basically started with that and built our solution.
Beyond that, I’d suggest not creating a new bitmap on each run.