Osc*_*dez 11 android layout-inflater systrace android-recyclerview
我正在查看systrace
我的应用程序生成的内容,并确定了一个耗时太长的框架.这是由引起RecyclerView
的onCreateViewHolder
膨胀我的项目视图时.项目视图与posible一样平坦ConstraintLayout
.但是下面的systrace
报告有很多VerifyClass
块,每个块需要17毫秒.
这是什么VerifyClass
块呢?
不是一个真正的C ++ / Android的运行时内部专家解释清楚什么该VerifyClass
定义方法/art/runtime/class_linker.h和实施/art/runtime/class_linker.cc手段,但我不会支付那么多注意它的CPU执行时间处理时间。
我要考虑的是您的RecyclerView
物品包含ConstraintLayout
并且其通货膨胀消耗CPU时间。
关于尝试发布版本的建议,它不会有任何区别 -VerifyClass
将针对调试和发布版本调用本机方法。
很难说到底VerifyClass
在做什么,因为它不是 Android Java SDK 或 ConstraintLayout 的一部分。我发现唯一提到的是 SDK 的 C 部分:
但我有几个建议:
1) 尝试在发布模式下构建您的应用程序,看看您是否仍然遇到 FPS 下降的问题。我的假设是,这个VerifyClass是为了调试构建而执行的,以对某些事情进行基准测试,但这只是一个猜测。
2) 虽然 ConstraintLayout 具有方便的 API 和扁平的层次结构(这对绘图遍历有积极影响),但它的 测量和布局过程仍然比其他 Android 布局慢得多。其原因是约束计算的复杂性。因此,在 RecyclerView 中使用它可能会导致 ViewHolder 创建期间的性能显着下降。如果列表单元格的层次结构足够简单,我建议切换到一些普通布局并检查行为。
归档时间: |
|
查看次数: |
712 次 |
最近记录: |