Я недавно начал работать над приложением, которое имеет и Java и собственные компоненты. Я пытаюсь генерировать трассировочную информацию для обоих использований компонентов Debug.startMethodTracing("myapp")
и Debug.startNativeTracing()
поочередно. Однако оба ведут себя неожиданно.
Когда я использую Debug.startMethodTracing("myapp")
, Я вижу файл /sdcard/myapp.trace
будучи созданным, но это всегда пусто, неважно, сколько времени я запускаю свое приложение. Когда я использую Debug.startNativeTracing()
и запустите эмулятор с -trace <tracename>
переключатель, я вижу, что в сообщении говорится "Трассировка, запущенная", но когда я пытаюсь запустить свое приложение, катастрофические отказы эмулятора.
Я пропускаю что-то очевидное здесь? Как я отлаживаю эту проблему?
Когда это случилось со мной, это потому, что у меня были несовпадающие пары старт / стоп.Например, если вы запускаете трассировку метода, но никогда не останавливаетесь, я думаю, что Android просто никогда не записывает буферизованную информацию трассировки в файл. Точно так же, если у вас есть дополнительная остановка посередине или никогда не запускается и т. Д., Вы не получите желаемых результатов.
Помимо этого метода, трассировка у меня отлично сработала.
С другой стороны, встроенная трассировка, похоже, не поддерживается (все еще), поскольку я получаю сообщение об ошибке «Файлы трассировки Qemu еще не поддерживаются», когда пытаюсь загрузить результаты встроенной трассировки в traceview. (Есть комментарии по этому поводу от Google?)