title: Locating and remedying cause of large heap size
body: <p>I'm trying to work out why my app is using so much memory. I often see it using between 15 and 18MB, which is substantially higher than I'd expect. I took a look at the heap size via DDMS and saw this:</p>
  
  <p><img src="https://i.stack.imgur.com/q5rWa.png" alt="enter image description here"></p>
  
  <p>That looked a tad suspicous because my app doesn't deal with large images at all. In fact the total sum of the drawables in my app is about 250KB. So I created a heap dump and used MAT to locate where all this memory was going. byte[] arrays were by far the greatest consumer, so I drilled down and noticed the following:</p>
  
  <p><img src="https://i.stack.imgur.com/8SUSr.png" alt="enter image description here"></p>
  
  <p>I have absolutely no idea why sPreloadedDrawables is responsible for such a high retained heap size. I also have no idea of how to identify the root cause, or how to 'fix' it.</p>
  
  <p>Where should I go from here? My app works mostly in the background via services which don't deal with image data at all. I do have Activities that the user may choose to use, but again, they use small drawables which don't explain such a large heap size. I also checked for any nasty occurrences of Activity leaks etc, but didn't locate any.</p>
  
  <p>EDIT: I noticed that the heap size is substantially lower when run in the emulator. This is quite confusing. :/</p>