安卓效率 - 视图(Views)

4

在IT技术方面,是更好的做法将findViewById(<resource-id>)查找控件一次并存储在活动范围内(类范围内),还是每次使用时调用它,以便在退出当前作用域/方法时回收资源呢?

我想这归结于findViewById()的开销与将视图对象存储在类范围内的开销相比较。

2个回答

5

您只是存储视图的引用,储存成本是最小的。我看到的大部分高质量代码每个活动都会寻找一次视图,所以我认为这是最佳实践。可读性和可维护性只是额外的好处。


0

我认为性能差异是难以察觉的。比这更重要的是你的代码外观... 当你使用findViewById来填充活动类时,它是否易读?


是的,易读性很重要,但在移动设备上,特别是在像Android这样由不可预测的硬件驱动的平台上,关注性能细节似乎更为重要。 - jondavidjohn
1
是的... 这还不是太重要。过度优化有时并不好。当然,你可能在谈论硬件资源有限的设备等问题... 但你最好关注不要创建太多对象,以高效的方式管理位图等。http://developer.android.com/guide/practices/design/performance.html - Cristian
非常同意,那么,调用findViewById多次会创建多个对象吗? - jondavidjohn
完全不是...它只是检索对现有对象的引用。这就是为什么我说性能差异必须是无法察觉或不存在的原因。 - Cristian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接