Memory managment was a pain in the butt when I was developing for Android. Mainly because apps (then) were limited to a 16MB heap and bitmaps would allocate memory automatically but need to "reminded" to release it afterwards. The only real way to know if you'd exceeded the limit when you tried to open a bitmap was to catch the OutOfMemory exception and retry with a lower sampling of the image. So the simple act of trying to read an image into memory and display it turns into a complex memory management scenario. Good times.