【发布时间】:2010-06-22 04:16:08
【问题描述】:
在 Android SDK 中,有一条评论说通过标识符而不是名称来检索资源更有效。
这是不鼓励使用 getIdentifier() 的唯一原因吗?
我需要以编程方式访问数百个资源之一,到目前为止,我的设计使通过名称而不是标识符访问原始资源变得更加容易。
【问题讨论】:
标签: android
在 Android SDK 中,有一条评论说通过标识符而不是名称来检索资源更有效。
这是不鼓励使用 getIdentifier() 的唯一原因吗?
我需要以编程方式访问数百个资源之一,到目前为止,我的设计使通过名称而不是标识符访问原始资源变得更加容易。
【问题讨论】:
标签: android
因为比较整数比比较字符串要快得多,而且我猜资源是按其 ID 散列的,所以如果您按 ID 获取资源,它们只能抓取一小部分资源并执行快速搜索。如果您按名称搜索,他们必须遍历所有资源并进行慢速字符串比较。
【讨论】:
是的,getIdentifier() 比仅通过 ID 检索资源更慢/效率更低,我认为它使用反射从生成的 R 类中获取标识符。但我不知道有任何其他不使用它的原因...查看array resources,也许您可以使用它们。
【讨论】: