3

I am looking for any kind of website, blogpost, wiki, discussion, book, magazine, scientific paper, which on good authority could explain the internals of memory management in Android. I know very well that a big part is Linux and this is where I should go first, but Android has dalvik, which is, as far as I understand, deeply integrated with the Kernel, also, Android is unloading apps if it runs out of memory, which is probably what Linux does not do. So, I am looking for an authoritative answer about memory management in Android. Topics include, but are not limited to:

  • How to interpret values from adb shell dumpsys meminfo, i.e. what is the meaning of each value: size, alloc, free, Pss, priv dirty, shared dirty, what kind of data is it stored there?
  • What would be the best metric to evaluate memory consumption on the device?
  • Where is each *.so loaded to? Or does Android have execution in place implemented?
  • Are there any limits on how much memory an application can consume?
  • Does OS assign a contiguous chunk of memory, which can grow as long as it is contiguous, or some kind of fragmentation is permitted?
  • Etc.

There is a great answer in this thread How do I discover memory usage of my application in Android?, but I want some more in-depth explanation, thus asking for an external resource.

Community
  • 1
  • 1
Ignas Limanauskas
  • 2,436
  • 7
  • 28
  • 32
  • 2
    "How to interpret values from adb shell dumpsys meminfo" -- that same information is provided through `ActivityManager.getProcessMemoryInfo()` and is documented in the StackOverflow answer you linked to. That answer is from Dianne Hackborn, a member of the core Android team. – CommonsWare Jan 18 '11 at 15:51

1 Answers1

0

Google IO official Conference about Memory Management: http://www.youtube.com/watch?v=_CruQY55HOk

neteinstein
  • 17,529
  • 11
  • 93
  • 123