1

我正在优化我的 android 布局。include我得到的一个建议是在语句中重用布局。虽然我了解这个的实用性,有点像面向对象的视图,但它是否显着缩短了渲染时间?它会显着减少内存占用吗?它是否使视图层次结构更小?

我写这篇文章是假设对此有明确的答案,而不是讨论

感谢您的任何见解!

4

2 回答 2

1

单独使用include可能不足以对渲染时间产生任何明显的变化。它也不应该对视图层次结构产生影响:无论它的某些部分是否包含在单独膨胀的布局中,您都应该获得相同的层次结构。

(我LayoutInflater可能会缓存最近膨胀的资源,可能会更快地膨胀由最近使用的included部分组成的布局。但这似乎不太可能,除非您在应用程序中对其进行了基准测试,否则这将是不必要的微优化IMO。)

include 利于组织布局,特别是分解可重复使用的部分。Romain Guy,大部分 Android 布局系统的作者,几年前写了一篇博客文章,展示了一些可以使用 include 的提示/技巧,例如使用它来将方向敏感的布局与更通用的布局分开。

相比之下,ViewStub 旨在用于布局膨胀时间优化;它允许你的视图层次结构的一部分被懒惰地膨胀。

于 2013-08-02T20:41:47.123 回答
1

它会显着减少内存占用吗?

不,这是一个包含两个具有相同内容的视图的视图。虽然视图相同,但视图中的每个项目都必须作为单独的实例呈现,因为开发人员可能希望使用 R.id.identifier 选择它并更改其内容。实际上,假设您在 2 个不同的视图中包含应用程序的标题。标题的内容在每个视图中不必相同。由于实例不同,因此不会节省内存。

截屏

它是否显着提高了渲染时间?

不是我注意到的。您在这里获得的任何收益都可能微乎其微。

如果您还没有看到,这里有一个关于 Android 性能优化的相关链接 -> http://developer.android.com/training/articles/perf-tips.html

于 2013-08-02T20:58:15.810 回答