Caching remote data
We have seen previously how to load images and display them in our application. But what happens when we have to load a huge amount of images? Let's imagine a List or a RecyclerView and the end user scrolling back and forth. As RecyclerView is recycling the views and replacing the bitmap with another, we would have to download the same images from the Internet again and again. This is not only inefficient and slow, but it also drains the data plan and the user's battery. We can easily implement a cache to store the images so that we do not have to download them again and again. Let's see how we can do it.
Memory caches
The fastest way of accessing images is to store them in memory. We need to be careful as memory is a limited resource, and even more careful if we make assumptions, as every device has different amount of free memory. We will create a memory cache based on the amount of free memory and only use a small portion, leaving lots of memory for the app itself as...