This document provides an overview of memory management in Android. It discusses the kernel's role in managing physical memory and virtual address spaces. It covers kernel interfaces like memory-mapped registers and DMA that drivers use. User-space interfaces like brk, mmap and munmap are also discussed. Low-memory conditions and the OOM killer are explained. Bionic and malloc/free are summarized. Considerations for app developers around measuring memory usage are provided. Finally, various tools for analyzing kernel, native, ART and framework memory are listed.