R
中的所有ID都是永久性的吗?最近我制作了一个游戏并使用声道ID保存到SharedPreferences
。我想知道这些ID(相同文件)是否会在下次构建时更改?你能指点我一下文件吗?
答案 0 :(得分:3)
每次更改资源时都会更改它们。您不应该依赖硬编码的值(例如将它们保存在SharedPreferences
中)。
似乎没有真实的文档说明这一点(请参阅the docs on resources),但您可以通过记录int
R.id.hello_world
的值来自行测试(例如),然后添加一个在XML文件中前后的整串字符串,然后重建它。 int
值将完全不同。
修改:我确实找到了您可能想要阅读的bit of documentation。它声明:“你永远不需要在那里发现资源ID ”;即使在您的情况下,您没有查看此文件,您也可以直接使用它。
此外,还有this answer讨论了如何生成ID,并详细说明每个生成的ID都有一个订单(包名,类型名,资源名),但这些是任意生成的。并且:“请注意,默认情况下,aapt不会尝试在构建之间保持这些标识符相同。”
您可能还想阅读this slideshow,了解有关AAPT和Android资源生成过程的更多详细信息。