This column counts the total PSS of memory region [anon:libc_malloc] and [heap].
Please refer to Memory region for more information
Dalvik Heap
For KitKat: This column counts the total PSS of memory region /dev/ashmem/dalvik-heap and /dev/ashmem/dalvik-zygote
For Lollipop: This column counts the total PSS of memory region /dev/ashmem/dalvik-main space, /dev/ashmem/dalvik-allocspace, /dev/ashmem/dalvik-large object space, /dev/ashmem/dalvik-zygote space, /dev/ashmem/dalvik-non moving space
Please refer to Memory region for more information
Dalvik Other
The memory resions with prefix name /dev/ashmem/dalvik-* except the regions counted in Dalvik Heap.
The memory regions with prefix name /dev/* except the the regions listed in Dalvik Heap, Dalvik Other and ASHMEM
For KitKat and QCT platform, the major contributor of “Other dev” should be /dev/kgsl-3d0.
Since Lollipop 5.1, Google creates the “Gfx dev” column for counting the usage of /dev/kgsl-3d0
Gfx dev
Newly added since Lollipop 5.1
The PSS of /dev/kgsl-3d0 memory region
EGL memtrack
You will see this column when display driver’s memtrack module is enabled
Before Lollipop5.1, this column is named “Graphics”.
EGL memtrack memory is the summary of all surface buffers(the surface buffer increases to triple buffer after Android 4.1) and the size of the Atlas buffer. However, Atlas buffer is actually a shared memory and shouldn’t be accounted into each UI process’ memory usage to overcount the memory usage. Both surface buffer and Atlas buffer’s memory quota is reserved in project’s memory estimation, thus the memory usage of these buffers should be separately accounted from process’ memory usage. So when you measure process’ memory usage, you can ignore this column.
GL memtrack
You will see this column when display driver’s memtrack module is enabled
Before Lollipop5.1, this column is named “GL”.
HW acceleration memory is partially counted in process PSS. For example, for QCT platform the HW acceleration memory is partially counted in the PSS of /dev/kgsl-3d0 as we mentioned in the “Gfx dev” section. GL memtrack memory usage calculates the unaccounted /dev/kgsl-3d0 memory regions which PSS value equals 0.
Please be noticed that the summation of GL memtrack and Gfx dev doesn’t reflect the complete HW acceleration memory since the full HW acceleration memory usage should be counted with the VSS of /dev/kgsl-3d0. So the “TOTAL” value of dumpsys meminfo is smaller than actual physical memory usage.
Unknown
This column counts the total PSS of memory region [anonymous]
Please refer to Memory region for more information
Private (Clean and Dirty) RAM
This is memory that is being used by only your process. This is the amount of the RAM that the system can reclaim when your app’s process is destroyed. Generally, the most important portion of this is “private dirty” RAM, which is the most expensive because it is used by only your process. All Dalvik and native heap allocations you make will be private dirty RAM; Dalvik and native allocations you share with the Zygote process are shared dirty RAM.
ViewRootImpl
The number of root views that are active in your process. Each root view is associated with a window, so this can help you identify memory leaks involving dialogs or other windows.
AppContexts and Activities
The number of app Context and Activity objects that currently live in your process. This can be useful to quickly identify leaked Activity objects that can’t be garbage collected due to static references on them, which is common. These objects often have a lot of other allocations associated with them and so are a good way to track large memory leaks.