Если вы хотите профилировать свое приложение, чтобы найти узкие места производительности, вы можете использовать traceview
инструмент . Это дает вам графическое представление следов производительности вашего приложения.
Чтобы создать трассировку, добавьте в код следующий код, с которого вы хотите начать трассировку:
Debug.startMethodTracing("myapp");
и затем добавьте следующее, когда вы хотите прекратить трассировку:
Debug.stopMethodTracing();
Это создаст вызов файла трассировки myapp.trace
в корневом каталоге SD-карты. Как написано на SD-карте:
- Если вы используете эмулятор, вам нужно добавить SD-карту в AVD .
Вам потребуется дать разрешение на запись в SD-карту, добавив в манифест следующее:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
Как только файл будет создан, вам нужно будет скопировать его на ваш компьютер. Вы можете сделать это с помощью команды adb
:
adb pull /sdcard/myapp.trace c:/my/dir/myapp.trace
Наконец, запустите traceview
, указав полный путь к файлу трассировки:
traceview c:/my/dir/myapp.trace
У меня были некоторые проблемы с traceview
, с ошибками OutOfMemory
. Я исправил это в Windows, изменив последнюю строку traceview.bat
с:
call java -Djava.ext.dirs=%javaextdirs% -Dcom.android.traceview.toolsdir= -jar %jarpath% %*
до:
call java -Xmx1g -Djava.ext.dirs=%javaextdirs% -Dcom.android.traceview.toolsdir= -jar %jarpath% %*
Добавление опции -Xmx1g
позволяет traceview
использовать больше памяти.