android - API14 中的新 Property 类比内部 getter/setter 有何优势?

标签 android performance

在他们的 4.0 版本中,他们引入了一个新的 Property 类,可以帮助您一般地设置或获取对象的内部值。此处描述(向下滚动一点):http://developer.android.com/sdk/android-4.0.html#api并在此处定义:http://developer.android.com/reference/android/util/Property.html

同时,他们说要避免使用内部 getter/setter。 http://developer.android.com/guide/practices/design/performance.html#internal_get_set

关于 Property 类如何不违反此规则,我是否遗漏了什么?我知道这对编码有好处,但对性能没有好处。

想法?

最佳答案

Am I missing something as to how the Property class doesn't violate this rule?

它“违反”了规则。然而,这条规则并不普遍,因为你引用的文件一开始就煞费苦心地试图解释。该文件概述了“微优化”。正如文档所述,这些“几乎永远不会成就或破坏您的软件”。相反,它们是您可能希望在需要它的特定地方进行优化的东西。

您不需要避免使用内部 getter 和 setter,除非它们会导致特定的性能问题。您通常可以通过使用 Traceview 并查看在 getter 和 setter 中花费的大量时间来确定这一点。

因此,例如,在大型数据集的紧密循环中,尝试避免 getter 和 setter 可能是值得的。在这种情况之外,使用 getter 和 setter 不太可能对您或用户造成任何实质性的痛苦。同样,让 Traceview 等工具成为您的向导。

现在,奇怪的是,Property 的某些预期用途(例如,ObjectAnimator)似乎需要比普通代码块更多的微优化。我想您只需要查看动画是否如您所愿地流畅运行。我还没有直接使用过 ObjectAnimator,更不用说使用 ICS 的 Property 了,所以我只能希望一切顺利。

关于android - API14 中的新 Property 类比内部 getter/setter 有何优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8018729/

相关文章:

java - 字节码中 Switch 语句的表示和效率?

android - 谷歌眼镜将视频流式传输到服务器

java - 当一个可能为空时比较字符串

java - 我想以编程方式向我的 android 按钮添加多个字符串(不是通过 XML)

javascript - chromes "appendChild"真的那么慢吗?

c# - 生成集合的排列 - 高效且有区别

iphone - 在 iPhone 上使用 OpenGL ES 卷积图像 : possible?

android - 如何在另一个 VideoView B 正在播放时预缓冲 VideoView A - Android

android - 将常量文本放在 EditText 中,它应该是不可编辑的 - Android

c# - 迭代数组时,较新的 x64 比较旧的 x86 慢?