Понимание файла .trace приложения Android - PullRequest
0 голосов
/ 01 ноября 2019

Мое приложение выдает ANR всплывающее окно. Чтобы выяснить причину, я сгенерировал файл sample.trace, используя эту строку:

Debug.startMethodTracing("sample");

в onCreate методе моей деятельности, и я добавил эту строку, чтобы остановить трассировку в методе onDestroyдействия:

Debug.stopMethodTracing();

Я получаю файл sample.trace после уничтожения действия. Но когда я просматриваю файл, я не понимаю его. Как я узнал, есть онлайн-инструмент, который Perfetto.

Однако, когда я открываю там файл, он показывает пустую страницу, в то время как я ожидаю некоторый пользовательский интерфейс.

В результате мне нужно понять файл и выяснить проблемы, которые вызывают проблему ANR, но я не знаю, как это сделать.

Это часть моего sample.trace файла:

*version
3
data-file-overflow=true
clock=dual
elapsed-time-usec=165959496
num-method-calls=599184
clock-call-overhead-nsec=3338
vm=art
pid=13695
*threads
14436   RxIoScheduler-2
14460   Okio Watchdog
14589   AsyncTask #5
14612   Timer-0
15013   AsyncTask #6
15014   AsyncTask #7
15015   AsyncTask #8
15049   Timer-4
13695   main
13718   Jit thread pool worker thread 0
13724   Signal Catcher
13726   ADB-JDWP Connection Control Thread
13728   FinalizerDaemon
13729   FinalizerWatchdogDaemon
13727   ReferenceQueueDaemon
13730   HeapTaskDaemon
13732   Binder:13695_1
13733   Binder:13695_2
13736   Binder:13695_3
13895   Profile Saver
13909   Queue
13910   Queue
13911   Queue
13912   Queue
13913   Queue
13914   Queue
13916   Queue
13917   Queue
13915   Queue
13936   Answers Events Handler1
13937   queued-work-looper
13941   Crashlytics Exception Handler1
13950   StethoListener-main
13970   OkHttp ConnectionPool
13977   Binder:13695_4
13978   process reaper
13980   process reaper
14016   RenderThread
14023   Binder:13695_5
14026   Binder:13695_6
14021   Thread-16
14152   Thread-17
14153   Thread-18
14156   Studio:InputCon
14165   magnifier pixel copy result handler
14151   Thread-19
14435   RxIoScheduler-1 (Evictor)
14459   OkHttp ConnectionPool
14476   RealmFinalizingDaemon
14480   pool-3-thread-1
14481   pool-3-thread-2
14482   pool-3-thread-3
14483   pool-3-thread-4
14484   pool-3-thread-5
14487   pool-3-thread-6
14489   pool-3-thread-7
14490   pool-3-thread-8
14491   pool-3-thread-9
14602   glide-disk-cache-thread-0
14604   glide-source-thread-0
14614   Timer-1
14615   IntentService[]
14628   glide-source-thread-1
14630   OkHttp ConnectionPool
14633   glide-active-resources
14780   pool-3-thread-10
14788   Picasso-Stats
14789   Picasso-Dispatcher
14790   Picasso-refQueue
14805   Timer-3
14973   SpotScheduleThread
14974   PlaylistScheduleThread
14980   pool-3-thread-11
15000   pool-3-thread-12
15021   RxComputationScheduler-1
15025   RxComputationScheduler-2
15028   OkHttp ConnectionPool
15050   Timer-5
15052   pool-3-thread-13
15053   pool-3-thread-14
15767   pool-3-thread-15
15771   pool-3-thread-16
15772   pool-3-thread-17
*methods
0x18c8  java.lang.BootClassLoader   getInstance ()Ljava/lang/BootClassLoader;   ClassLoader.java
0x6ba0  java.lang.BootClassLoader   findClass   (Ljava/lang/String;)Ljava/lang/Class;   ClassLoader.java
0x6b9c  java.lang.BootClassLoader   loadClass   (Ljava/lang/String;Z)Ljava/lang/Class;  ClassLoader.java
0x7878  java.lang.ClassLoader   <init>  (Ljava/lang/ClassLoader;)V  ClassLoader.java
0x7880  java.lang.ClassLoader   <init>  (Ljava/lang/Void;Ljava/lang/ClassLoader;)V  ClassLoader.java

Заранее спасибо.

1 Ответ

0 голосов
/ 05 ноября 2019

Как я узнал, я могу использовать Android Studio , чтобы увидеть, какой процесс занимает больше места на процессоре и т. Д.

Единственное, что мне нужно сделать, это открыть окно Profiler, затем нажатькнопка + и загрузка из файла. Затем он покажет статистику файла .trace .

Спасибо!

...