首次运行时明显出现Android渲染延迟

时间:2018-09-18 01:17:46

标签: android gpu render android-view android-profiler

我的应用程序出现奇怪的行为,我有一个BottomSheetBehavior,并且当用户拖动底部工作表(或以编程方式将其设置为Expand时)中的View它与BottomSheetBehavior slide的数量成比例地逐渐变化。

因此,某些View缩小,其他扩展,其他淡入和其他淡出(与slide成比例的alpha变化)。

我有一个Button,它触发了Bottom Sheet展开,并且第一次按下按钮时,Bottom Sheet中的View s动画存在视觉滞后。 但是在再次折叠底部表格之后,在其他任何时候我触发一次exapand都没有视觉延迟。这仅在底部表格第一次扩展时发生。

即使我说的是“动画”,但这只是一个术语,我没有使用任何动画框架,ViewViewGroup s width,{ {1}和height在每次alpha值更新时都在变化,从而使用户感到动画效果。

我试图剖析Bottom Sheet扩展,这就是我得到的:

GPU Profile 1

第一个大峰值是第一个Bottom Sheet扩展。其他的则小得多,并且都是后续的扩展。

这是另一个例子:

GPU Profile 2

没有在第一次运行时运行的代码,也没有在随后运行的代码,第一次运行没有什么特别的,并且“底表”中的slide仅包含5个项目,这些项目在触发扩展之前已加载

我真的无法解释这种行为, Android框架是否在RecyclerView首次被操纵后对其进行优化?使它们与GPU渲染更兼容?

0 个答案:

没有答案