gpt4 book ai didi

android - 诊断 ANR 的一般指南

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:06:52 25 4
gpt4 key购买 nike

<分区>

包含的 ANR 跟踪文件有很多问题,答案总是“哦,问题出在你的线程 76 中,修复你的 http 调用”之类的 :) 但我找不到任何关于如何阅读的一般指南或教程这一步一步地跟踪任何 ANR。有没有?我有几个特别的问题:

  1. 是否总是可以从我在 Google 控制台中看到的真实 ANR 线程跟踪中看到问题?或者可能只是没有相关信息,如果我不能在本地重现 ANR,我运气不好?

  2. 此信息中包含哪些线程?我想我的应用程序进程中有所有线程,但其余线程呢?它们都在某种程度上与我相关吗? (例如我的一些线程正在等待的线程等)或者还有完全不相关的进程?

  3. google play console 如何确定 ANR 发生的“位置”——然后显示在 ANR 列表中,例如:

ANR keyDispatchingTimedOut

miesto: com.sample.myapp/myapp.activities.SplashActivity

因为在提供的线程跟踪文本中找不到 SplashActivity。

  1. 我知道我应该寻找处于 WAIT 状态的线程以防止潜在的死锁等。线程“等待自己”的情况如何?

"AsyncTask #1" prio=5 tid=15 WAIT | group="main" sCount=1 dsCount=0 obj=0x41bb50c0 self=0x5529a868 | sysTid=2448 nice=0 sched=0/0 cgrp=apps handle=1429609576 | state=S schedstat=( 18097077 39273309 41 ) utm=1 stm=0 core=1 at java.lang.Object.wait(Native Method) - waiting on <0x41bb5258> (a java.lang.VMThread) held by tid=15 (AsyncTask #1)

这是否总是正常,我可以假设这不是原因?如果我只有 NATIVE 中的一堆线程(包括主线程)和 WAIT 中的一堆线程像这样等待自己,情况会怎样?这怎么会是 ANR?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com