如何在 android 中检测 activity 冻结和滞后原因?
How to detect activity freeze & lag cause in android?
我的一项活动非常卡顿和滞后。我尝试使用探查器但无法获得更多细节。有没有其他工具可以帮助我找出 activity 滞后的原因?
PS - activity 中有大量流程和代码,因此没有必要在此处发布代码
我认为你有两个滞后的原因:
- 您经常在 ViewGroup 或 RecyclerView 中重绘困难 UI。在开发人员选项中,您可以启用
Show layout bounds
来检查此问题。
- 你在主线程中做了一些长的东西,需要研究一下什么可以在主线程中长时间工作。
此外,如果您的滞后取决于 RecyclerView,您需要制作简单的 ViewHolder(使用一个 ViewGroup 制作简单的 UI,并从 ViewHolder 中删除所有逻辑,例如:字符串格式化、一些数学...)。也最好使用 ListAdapter 而不是 RecyclerViewAdapter。
也许如果你能提供更多的信息,我可以给你更多的建议。
我的一项活动非常卡顿和滞后。我尝试使用探查器但无法获得更多细节。有没有其他工具可以帮助我找出 activity 滞后的原因?
PS - activity 中有大量流程和代码,因此没有必要在此处发布代码
我认为你有两个滞后的原因:
- 您经常在 ViewGroup 或 RecyclerView 中重绘困难 UI。在开发人员选项中,您可以启用
Show layout bounds
来检查此问题。 - 你在主线程中做了一些长的东西,需要研究一下什么可以在主线程中长时间工作。
此外,如果您的滞后取决于 RecyclerView,您需要制作简单的 ViewHolder(使用一个 ViewGroup 制作简单的 UI,并从 ViewHolder 中删除所有逻辑,例如:字符串格式化、一些数学...)。也最好使用 ListAdapter 而不是 RecyclerViewAdapter。
也许如果你能提供更多的信息,我可以给你更多的建议。