我正在查看由我的应用程序生成的systrace,发现一个框架花费的时间太长。
这是由我的商品 View 膨胀时RecyclerViewonCreateViewHolder引起的。项目 View 与ConstraintLayout一样平。但是下面的systrace报告包含许多VerifyClass块,每个块需要17毫秒。
VerifyClass块是什么意思?

android - Systrace中的VerifyClass是什么意思?-LMLPHP

最佳答案

很难说VerifyClass在做什么,因为它不是Android Java SDK或ConstraintLayout的一部分。我发现的唯一提及是在SDK的C部分:

http://www.androidpolice.com/android_aosp_changelogs/android-m-preview-2-to-android-7.0.0_r1-AOSP-changelog.html

但是我有一些建议:

1)尝试在 Release模式下构建您的应用,然后查看是否仍然存在FPS下降的问题。我的假设是执行此VerifyClass用于调试构建,以对某些事情进行基准测试,但这只是一个猜测。

2)虽然ConstraintLayout具有便捷的API和平坦的层次结构(这对图形遍历有积极影响),但它的仍然比其他Android Layout的ozt_rstrong度量和布局过程更慢。其原因是约束计算的复杂性。因此,在RecyclerView中使用它可能会导致ViewHolder创建期间的性能显着下降。
如果列表单元的层次结构足够简单,我建议切换到一些常规布局并检查其行为。

10-08 05:43