2010-06-21 85 views
1

在Android SDK中,有一条评论说,通过标识符而不是按名称检索资源会更高效。为什么不鼓励使用Resources.getIdentifier()

这是不鼓励使用getIdentifier()的唯一原因吗?

我需要以编程方式访问几百个资源之一,到目前为止,我的设计使得通过名称而不是标识符访问原始资源变得更加容易。

回答

4

由于比较整数比比较字符串要快得多,我猜测资源会被其ID所哈希,所以如果您通过ID获取资源,他们只能获取一小部分资源并执行快速搜索。如果您按名称搜索,则必须遍历所有资源并进行较慢的字符串比较。

2

是的,getIdentifier()比通过ID检索资源的效率更低/效率更低,我认为它使用反射从生成的R类中获取标识符。但我不知道有任何其他原因不使用它...调查array resources,也许你可以使用它们。

相关问题