title: Caching Layer in Android
body: <p>I'm looking for a solution (possibly implementing it) that would allow me to create a cache on my SD card (say, 25G) which would be used by some "caching layer" to store media on demand.  The issue being that all of my media doesnt fit on a 32G SD card, so I want to be able to transparently have my missing data downloaded (ie: I dont want to have to download using another app) while I am attempting to play it in the stock media player or the Gallery or whatever.  Does anyone know of an existing solution like this?  I'm already familiar with the various dedicated apps out there which do this for music, but I'm looking more for a generic cache which caches anything that passes through it on an LRU basis.  I want my NAS at home (or on S3, dropbox, Ubuntu One, whatever) to be an extension of my Android device(s).</p>
  
  <p>If one doesnt exist, is it possible to chain ContentProviders?  Could I create a CacheProvider which keeps track of what is currently in my cache and what isnt, and use the URIs from the CacheProvider to populate the MediaStore?  All examples I can find so far show that what comes out of the MediaStore is always a URI to a file, so I suspect its not currently possible.</p>