字符串的硬编码会影响性能吗?

Sha*_*yaz 17 performance android

每当我创建任何应用程序时,我总是对字符串进行硬编码,而不是从XML中的字符串资源引用它.应用程序工作正常,但让我警告使用@string资源

示例按钮:

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="click here" />
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果我这样做或者它(@string资源)仅用于国际化,它是否会影响我的应用程序性能.

Rag*_*ood 42

这是一个Android lint警告,可以帮助您进行本地化.

从技术上讲,硬编码字符串会使您的应用程序执行得更好,因为它不必R每次都从相应的int中查找字符串.但是,这种性能差异可以忽略不计,没有人能够注意到它.

但是,您应始终将String资源保留在values文件夹中,因为它使本地化非常容易.

  • @deworde我查看了源代码,并没有涉及到任何缓存,至少是Java方面的问题.所有getString()和getText()调用都在AssetManager.getResourceText()处调用,然后将执行传递给本机代码.至少在此之前没有任何缓存或临时存储. (9认同)
  • 只是出于兴趣,关于"每次查找字符串......"; 它不会在每个应用程序运行时从缓存中查找字符串一次吗?或者这被认为是不成熟的优化? (3认同)