2010-05-20 11 views
5

Niedawno zacząłem pracować nad aplikacją, która ma zarówno składniki macierzyste Java, jak i . Próbuję generować dane śledzenia dla obu komponentów na przemian z wykorzystaniem Debug.startMethodTracing("myapp") i Debug.startNativeTracing(). Jednak obie zachowują się nieoczekiwanie.Jak korzystać z interfejsów API startMethodTracing na Androida?

Gdy używam Debug.startMethodTracing("myapp") widzę plik /sdcard/myapp.trace tworzonego ale zawsze jest pusta bez względu na to jak długo mogę uruchomić moją aplikację. Kiedy używam Debug.startNativeTracing() i uruchamiam emulator z przełącznikiem -trace <tracename>, widzę komunikat o nazwie "Trace started", ale kiedy próbuję uruchomić moją aplikację, emulator ulega awarii.

Czy brakuje tu czegoś oczywistego? Jak mogę debugować ten problem?

Odpowiedz

5

Kiedy mnie to spotkało, to dlatego, że miałem niedopasowane pary start/stop. Na przykład, jeśli zaczniesz śledzić metody, ale nigdy się nie zatrzymasz, myślę, że Android po prostu nigdy nie zapisuje buforowanych informacji śledzenia do pliku. Podobnie, jeśli masz dodatkowy postój w środku lub nigdy się nie uruchamiasz, itp., Nie uzyskasz pożądanych rezultatów.

Poza tym metoda śledzenia działała dobrze dla mnie.

Z drugiej strony, natywne śledzenie wydaje się nieobsługiwane (nieruchome), ponieważ pojawia się błąd "Pliki śledzenia Qemu nie są jeszcze obsługiwane", gdy próbuję wczytać macierzyste wyniki śledzenia do podglądu. (Wszelkie komentarze na tym od Google?)

  • Kris
+0

najważniejsze, moim zdaniem, jest to, że jeśli po prostu zakończyć() swoją aktywność przed wywołaniem przystanku, śledzenie nie zatrzyma i nie będzie otrzymasz kompletny plik. –

Powiązane problemy