Как я могу протестировать приложение на производительность в Android? Что поддержка оказывается в Android и как я использую его?
Если вы хотите профилировать ваше приложение, чтобы найти узкие места в производительности, вы можете использовать traceview
tool. Это даст вам графическое представление трасс производительности вашего приложения.
Для создания трассы добавьте в код, где вы хотите начать трассировку, следующее:
Debug.startMethodTracing("myapp");
а затем поместите следующее, когда вы хотите остановить трассировку:
Debug.stopMethodTracing();
Это создаст вызов файла трассировки myapp.trace
в корневом каталоге SD-карты. Как написано на карте SD:
Для записи на SD-карту необходимо дать разрешение приложения, добавив в Манифест:
После создания файла необходимо скопировать его на компьютер. Вы можете сделать это с помощью команды 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
использовать больше памяти.
Также, теоретически , СУБД может получить выделение памяти для Вашей программы, а затем проанализировать дамп с помощью профайлеров.
Ссылка на СУБД.
Причина, по которой я теоретически располагаю курсивом, заключается в том, что я сам еще не пробовал делать ничего подобного.