Используйте панель DDMS (Служба для отслеживания процесса отладки в Dalvik) для отслеживания и контроля за виртуальными машинами Dalvik. Это мощный отладочный инструмент, позволяющий изучать активные процессы, просматривать стек и кучу, мониторить и останавливать рабочие потоки, исследовать файловую систему подключенного устройства.
Возможности
При использовании ADT утилита DDMS интегрируется в Eclipse и доступна из соответствующей панели (Window→Open Perspective→DDMS). В противном случае вы можете запускать DDMS из командной строки - ее исполняемый файл находится в папке Android SDK /tools.
На панели Devices перспективы DDMS можно увидеть список эмуляторов и телефонов, подключенных в текущий момент. Можно выбрать отдельные экземпляры, просмотреть текущие процессы и потоки. Чтобы просмотреть поток, щелкните мышью по нужному процессу устройства, затем на кнопке обновления потока.
Для просмотра файлов и папок в эмуляторе или на устройстве вы можете использовать панель File Explorer. Вы можете копировать файлы между системой Android и вашим компьютером с помощью кнопок перемещения. Также можно удалять файлы. При этом на экран не выводится сообщение о подверждении операции и отмены операции, поэтому будьте осторожны.
Панель Emulator Control позволяет выполнять голосовые вызовы, отправку и прием SMS, запрос геолокационных координат.
Входящие голосовых вызовов являются имитацией. Это не настоящий звонок, никакие данные не передаются.
Вы можете анализировать информацию по каждому процессу и его потокам. Достаточно выделить необходимый процесс нашего приложения и нажать кнопку Update Threads.
Справа вы можете увидеть вкладку
Таким образом, мы можем понять, какой поток больше всего расходует процессорного времени. Тут следует сказать несколько слов о некоторых потоках.
GC - это поток сборщика мусора. До Android 3 он недоступен для просмотра в потоках.
JDWP (Java Debug Wire Protocol) - протокол взаимодействия между дебагером и виртуальной машиной.
Это собственно его поток. Не стоит беспокоиться его появлению, он создается только при отладке приложения.
Вы также можете наблюдать за вашими действующими потоками и выявить утечку памяти, если какой-то из ваших потоков присутствует в списке в двух экземплярах (естественно, если так не задумано). Допустим, вы повернули экран, но при этом забыли грамотно обработать закрытие потока, после чего создали его копию. В списке вы увидите оба таких потока с одинаковыми именами.
Инструмент для отладки кучи. Следует выбрать необходимый процесс и выбрать кнопку Update Heap.
Вам будет доступна информация о распределении динамической памяти в нашем процессе. Запускаем сборку мусора (Cause GC) и смотрим что осталось.
Позволяет отследить, какие объекты были созданы у выбранного процесса за выбранный промежуток времени, где можно посмотреть какие объекты создавались чаще, их размер, поток который их создавал и стек вызова.
Нажимаем на кнопку Start tracking, после чего производим действия с приложением, которые хотим проанализировать, далее нажимаем кнопку Get Allocations. Появится список объектов, которые были созданы за этот период времени.
Доступная информация:
Вы можете выбрать любой объект и посмотреть весь его стек вызова. Таким образом, можно получить информацию о том, где создаются объекты, как часто, их размер и принять соответствующие меры. Создание объекта - это дорогостоящая операция и её следует избегать.
Данный инструмент позволяет анализировать время, которое было затрачено методами на свою работу. Тем самым, мы можем понять узкие места в нашем коде и оптимизировать их.
После завершения работы stopMethodTracing, trace будет доступен в /sdcard/trace_name.trace. Это бывает очень полезно, если мы хотим оптимизировать определенные участки кода, либо к примеру улучшить скорость старта приложения.
Источник: http://developer.alexanderklimov.ru