New*_*per 5 android automated-tests android-custom-view android-view
我想测试我的自定义组件 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;
}
Run Code Online (Sandbox Code Playgroud)
使用此代码我可以测试布局渲染时间。所以我改变了布局设计以获得更好的性能。现在我正在创建一个具有多个布局和组件(如图像、文本视图等)的自定义视图类。我将在运行时附加该类,组件将在运行时根据服务器响应创建。我不会在 XML 中附加此自定义组件。现在我想测试这个自定义视图的渲染性能。请建议我任何工具或任何方法来计算自定义视图的 UI 渲染时间。
小智 1
您可以使用 android studio 内置工具分析器(位于左下面板)轻松测量性能。重要:客户视图性能取决于正在运行的设备,这是我为 Redmi 7a 测试过的示例
设备:Redmi 7a 内存:2GB
private fun startTest() {
for (x in 0..10000) {
val textview = TextView(this)?.apply { text = "Dummy Text $x" }
mLinearLayout?.addView(textview)
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试用例结果:在线性布局中添加 textview 10000 次需要 32.411 秒(上面给出的设备信息)
归档时间: |
|
查看次数: |
546 次 |
最近记录: |