【问题标题】:Why is it discouraged to use Resources.getIdentifier()为什么不鼓励使用 Resources.getIdentifier()
【发布时间】:2010-06-22 04:16:08
【问题描述】:

在 Android SDK 中,有一条评论说通过标识符而不是名称来检索资源更有效。

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

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

【问题讨论】:

    标签: android


    【解决方案1】:

    因为比较整数比比较字符串要快得多,而且我猜资源是按其 ID 散列的,所以如果您按 ID 获取资源,它们只能抓取一小部分资源并执行快速搜索。如果您按名称搜索,他们必须遍历所有资源并进行慢速字符串比较。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2015-02-03
        • 1970-01-01
        • 2012-10-03
        • 2018-11-26
        • 1970-01-01
        • 2018-06-11
        相关资源
        最近更新 更多