gpt4 book ai didi

android - 如何测试自定义 View 性能

转载 作者:行者123 更新时间:2023-12-04 13:33:44 30 4
gpt4 key购买 nike

我想测试我的自定义组件 UI 渲染性能。我使用以下测试用例来检查渲染性能。

private long getLayoutTime(int layoutRes) {
final Context targetContext = getInstrumentation().getTargetContext();
final LayoutInflater layoutInflater = LayoutInflater.from(targetContext);

final long startTime = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
final View view = layoutInflater.inflate(layoutRes, null);
view.setLayoutParams(new ViewGroup.LayoutParams(0, 0));

view.measure(View.MeasureSpec.makeMeasureSpec(1000, View.MeasureSpec.EXACTLY), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
final int measuredHeight = view.getMeasuredHeight();
final int measuredWidth = view.getMeasuredWidth();

view.layout(0, 0, measuredWidth, measuredHeight);
}
return System.currentTimeMillis() - startTime;
}
使用此代码,我可以测试布局渲染时间。所以我改变了布局设计以获得更好的性能。现在我正在创建一个具有多个布局和组件(如图像、 TextView 等)的自定义 View 类。我将在运行时附加该类,组件将根据服务器响应在运行时创建。我不会在 XML 中附加这个自定义组件。现在我想测试这个自定义 View 的渲染性能。请向我建议任何工具或任何方法来计算自定义 View 的 UI 渲染时间。
我的 Profiler 图像。 enter image description here

最佳答案

您可以使用 android studio 内置的工具分析器(位于左下方面板)轻松测量性能。
重要:客户 View 性能取决于正在运行的设备这是我为 Redmi 7a 测试过的示例
设备:红米7a
内存:2GB

 private fun startTest() {
for (x in 0..10000) {
val textview = TextView(this)?.apply { text = "Dummy Text $x" }
mLinearLayout?.addView(textview)
}
}
  • 运行项目
  • 启动分析器,等到图形恢复正常
  • on button 点击​​ startTest() ,你会看到图形从正常到高
  • 选择覆盖图形高区域的区域并查看开始时间和结束时间
  • 使用简单的计算器并测量差异

  • 我的测试用例结果:
    在线性布局中添加 textview 10000 次需要 32.411 秒(上面给出的设备信息)
    enter image description here

    关于android - 如何测试自定义 View 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63481456/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com