Я пытаюсь создать файлы трассировки для приложений, используя Debug.startMethodTracing (по активности onCreate) и Debug.stopMethodTracing (по активности onDestroy) в соответствии со следующей документацией http://developer.android.com/tools/debugging/debugging-tracing.html#creatingtracefiles.Отслеживаемые трассировки Android не содержат вызовов метода приложения
Я запускаю приложение на физическом устройстве и успешно создает файл трассировки. Позже я запускаю dmtracedump для их создания диаграммы столбцов вызовов, но он не содержит никаких вызовов моего метода приложения.
Чтобы проверить это, я создал простое приложение для Android, добавлена debbuggable в манифест:
<application
...
android:debuggable="true">
Создано два тестовых классов А и В. Класс A имеет два метода Ь() и С():
public class A {
private int _i;
public A(){_i=0;}
public void b(){c();}
public void c(){for(int k=0;k<20;k++)_i++;}}
Класс B имеет один метод с():
public class B {
public void c(){
(new A()).b();
A d = new A();
d.c();
}}
Наконец, в основной деятельности на уплотнительное nCreate и OnDestroy методы, которые я начал трассировку:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Debug.startMethodTracing("debugtest");
A a;
for (int i = 0; i < 20; i++) {
a = new A();
a.b();
a.c();
}
(new B()).c();
}
@Override
public void onDestroy() {
super.onDestroy();
Debug.stopMethodTracing();
}
Я надеялся получить, по крайней мере, Ab() и Ас() метод вызывает в схеме стека вызовов, но после запуска:
adb pull sdcard/debugtest.trace . ; dmtracedump debugtest.trace -g tree.png
Сформированный граф вызовов выглядит следующим образом:
является ли это, как он должен работать, то есть просто показать андроид вызовы, а не метод приложения вызовов, о Я что-то упустил?
Обратите внимание, что меня больше всего интересует извлечение исключительного и включающего времени выполнения метода.
Спасибо за ответ, но меня больше интересуют включительно/исключительные времена (даже с накладными расходами) и график вызовов. Кроме того, я бы предпочел не изменять какой-либо код, кроме вызовов функций отладки. – 4knahs