Minimize image resolution
Request different images based on screen resolution, screen density and device memory Update trade-off logic between quality & performance regularly per individual session
Consider using WebP format () Compressed image size decreased by at least 30% with no visible quality difference
Bitmap Heap Caching
In-memory Level 1 Bitmap cache for smooth scrolling and effeciency. Because decoding an image from disk is CPU intensive Large Bitmap cache when dealing lot of images 50% of Runtime.maxMemory() & android:largeHeap=true Empty cache when application in background
Use RGB 565 on small thumbs
Only 2 bytes of heap per pixel, instead of 4
Sharing large buffer between C++ & Java
Limit bitrate depend on processor, resolution & memory capabilities