如何在 android 中检测 activity 冻结和滞后原因?

How to detect activity freeze & lag cause in android?

我的一项活动非常卡顿和滞后。我尝试使用探查器但无法获得更多细节。有没有其他工具可以帮助我找出 activity 滞后的原因?

PS - activity 中有大量流程和代码,因此没有必要在此处发布代码

我认为你有两个滞后的原因:

  1. 您经常在 ViewGroup 或 RecyclerView 中重绘困难 UI。在开发人员选项中,您可以启用 Show layout bounds 来检查此问题。
  2. 你在主线程中做了一些长的东西,需要研究一下什么可以在主线程中长时间工作。

此外,如果您的滞后取决于 RecyclerView,您需要制作简单的 ViewHolder(使用一个 ViewGroup 制作简单的 UI,并从 ViewHolder 中删除所有逻辑,例如:字符串格式化、一些数学...)。也最好使用 ListAdapter 而不是 RecyclerViewAdapter。

也许如果你能提供更多的信息,我可以给你更多的建议。