Save the date! Android Dev Summit is coming to Mountain View, CA on November 7-8, 2018.

Allocation Tracker walkthrough

This tool was removed in Android Studio 3.0.

You should get the latest version of Android Studio and use the new Memory Profiler instead.

This walkthrough shows the basic usage and workflow for the Allocation Tracker tool in Android Studio. Allocation Tracker records an app's memory allocations and lists all allocated objects for the profiling cycle with their call stack, size, and allocating code.

What it's good for:

  • Identifying where many similar object types, from roughly the same call stack, are allocated and deallocated over a very short period of time.
  • Finding the places in your code that may contribute to inefficient memory use.

Before using Allocation Tracker, profile your code with the Memory Monitor Tool. If you see many garbage collection events in a short amount of time, use Heap Viewer to identify candidate object types, and Allocation Tracker to determine where this is happening in your code.


Working with Allocation Tracker

Allocation Tracker records each memory allocation that your app performs during the profiling cycle. You tell Allocation Tracker to start recording and it logs allocations until you tell it to stop.

    1. Figure 1. Steps for starting Allocation Tracker in Android DDMS.

    2. Connect your mobile device to your computer.
    3. Open your application in Android Studio, build the source, and run it on your device or emulator.
    4. Click the Android button at the bottom of your Android Studio window.
    5. If you are using the Android Device Monitor, click the RECORD button (Start Allocation Tracking tooltip) in the Android DDMS tool bar. If you are using Android Monitor, click the icon in the Memory Monitor toolbar.
    6. Interact with your application.
    7. Click the (same) STOP button (Stop Allocation Tracking tooltip).

    1. Figure 2. Example of Allocation Tracker output in Android DDMS.

    2. After a few seconds, a pane with your recorded data opens.

      Note that allocations are logged on the device, and the data file is transferred to the host computer, parsed for information, and displayed.

    3. The pane populates with a table.
      • Each row represents a memory allocation event.
      • Each column represents information about the allocation, such as the object type, the thread, and its size.
      • The columns are movable, resizable, and sortable.

      Use the Filter to show only allocations from your app.

    4. Click on an object to see its full stack trace.