| # Quickstart: Heap profiling | 
 |  | 
 | ## Prerequisites | 
 |  | 
 | * [ADB](https://developer.android.com/studio/command-line/adb) installed. | 
 | * A device running Android 10+. | 
 | * A _Profileable_ or _Debuggable_ app. If you are running on a _"user"_ build of | 
 |   Android (as opposed to _"userdebug"_ or _"eng"_), your app needs to be marked | 
 |   as profileable or debuggable in its manifest. | 
 |   See the [heapprofd documentation][hdocs] for more details. | 
 |  | 
 | [hdocs]: /docs/data-sources/native-heap-profiler.md#heapprofd-targets | 
 |  | 
 | ## Capture a heap profile | 
 |  | 
 | ### Linux / macOS | 
 | Make sure adb is installed and in your PATH. | 
 |  | 
 | ```bash | 
 | adb devices -l | 
 | ``` | 
 |  | 
 | If more than one device or emulator is reported you must select one upfront as follows: | 
 |  | 
 | ```bash | 
 | export ANDROID_SERIAL=SER123456 | 
 | ``` | 
 |  | 
 | Download the `tools/heap_profile` (if you don't have a perfetto checkout): | 
 |  | 
 | ```bash | 
 | curl -LO https://raw.githubusercontent.com/google/perfetto/master/tools/heap_profile | 
 | chmod +x heap_profile | 
 | ``` | 
 |  | 
 | Then start the profile: | 
 |  | 
 | ```bash | 
 | ./heap_profile -n system_server | 
 | ``` | 
 |  | 
 | ### Windows | 
 |  | 
 | Make sure that the downloaded adb.exe is in the PATH. | 
 |  | 
 | ```bash | 
 | set PATH=%PATH%;%USERPROFILE%\Downloads\platform-tools | 
 |  | 
 | adb devices -l | 
 | ``` | 
 |  | 
 | If more than one device or emulator is reported you must select one upfront as follows: | 
 |  | 
 | ```bash | 
 | set ANDROID_SERIAL=SER123456 | 
 | ``` | 
 |  | 
 | Download the | 
 | [heap_profile](https://raw.githubusercontent.com/google/perfetto/master/tools/heap_profile) | 
 | script. Then start the profile: | 
 |  | 
 | ```bash | 
 | python /path/to/heap_profile -n system_server | 
 | ``` | 
 |  | 
 | ## View profile | 
 |  | 
 | Upload the `raw-trace` file from the output directory to the [Perfetto UI]( | 
 | https://ui.perfetto.dev) and click on diamond marker in the UI track labeled | 
 | _"Heap profile"_. | 
 |  | 
 |  | 
 |  | 
 |  | 
 | ## Next steps | 
 |  | 
 | Learn more about memory debugging in the [Memory Usage on Android Guide]( | 
 | /docs/case-studies/memory.md) and more about the [heapprofd data-source]( | 
 | /docs/data-sources/native-heap-profiler.md) |