Как узнать, какие объекты создаются и выпускаются немедленно?
Шаг # 1: Временно измените ваш код (или создайте проект с использованием соответствующих частей вашего кода), где вы можете нажать кнопку или что-то еще, чтобы выполнить ровно один раз через логику обработки датчика.
Шаг # 2: Войдите в DDMS (автономно или в перспективе Eclipse).
Шаг # 3: выберите ваш эмулятор, затем нажмите на вкладку Allocation Tracker
Шаг № 4: Подведите приложение к точке, в которой оно ожидает нажатия кнопки, начиная с шага № 1, затем нажмите «Запустить отслеживание» на вкладке «Отслеживание распределения DDMS».
Шаг # 4: Нажмите кнопку, и после завершения обработки датчика нажмите кнопку Получить распределения на вкладке отслеживания распределения DDMS.
Это скажет вам, что было выделено во время этой части вашего кода. Он не говорит вам, что «выпущено», потому что это неопределенно, пока не будет запущен цикл GC.
EDIT
Я не уверен, но startAllocCounting()
в классе android.os.Debug
может иметь тот же эффект, что и нажатие кнопки «Начать отслеживание». Если это так, вы можете просто использовать свой код для отслеживания распределений за один проход цикла, а не возиться с изменениями кода, которые я обрисовал выше.
И, FWIW, , вот небольшая техническая статья о DDMS и отслеживании распределения.