Android - 声明式与程序式 UI

标签 android performance

有没有人看到或编译过比较声明式 (XML) 与 Android 中以编程方式创建的 UI 的基准?

Google 已经采取了一些措施来加速声明式方法,但您仍然需要在运行时完成布局膨胀步骤。

您是否曾经因任何原因切换(或考虑过)将您的 UI 从声明式更改为程序式?

最佳答案

很少有布局膨胀是在运行时完成的。正如 LayoutInflator API 文档中所暗示的:

For performance reasons, view inflation relies heavily on pre-processing of XML files that is done at build time. Therefore, it is not currently possible to use LayoutInflater with an XmlPullParser over a plain XML file at runtime

如果您查看 source ,许多 View 都是从基于其 XML 标记的 HashMap 中提取的。

在回答您关于我是否对充气机进行基准测试的问题时,我不得不说不。就我个人而言,我发现为您的应用程序在 Android 中对布局充气器进行基准测试的想法等同于为您的网站在 Firefox 中对 DOM 解析器进行基准测试。我不认为这个练习没有意义,但你应该有一个比“我的 Activity 布局对于充气机来说太复杂”更好的理由......

如果您需要动态生成的布局,最好以编程方式创建它。如果您的 View 只是需要很长时间才能膨胀,您应该简化您的 View XML。

关于Android - 声明式与程序式 UI,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560950/

相关文章:

java - 如何快速滚动卡片 View

java - NumberFormatException Android Java

ruby - ruby 中的大数组操作非常慢

performance - 元素 : hover for many elements: is there a shortcut?

.net - 用于测量操作时间的最合适的性能计数器类型是什么?

android - 未调用 BroadcastReceiver (Kotlin)

android - Unicode 符号无法在移动设备中正确显示

android - 如果我只想在我的应用程序中横向放置,我应该删除纵向布局目录吗?

python - 在数组的两个不同部分中计算重复整数的最快方法

c# - 分配变量的成本