0

我有时会在 Android 源代码中看到这样的声明:

mContext.getString(2131361954);
Notification n = new Notification(2130837696, "123", System.currentTimeMillis());

// Example code - does not match together

我认为这些数字是该项目的一些资源,对吧?为什么有时人们使用这个数字而不是使用 R 类?是更快还是其他?

以及如何检查分配给该号码的资源?如果我只有文件或者这个数字是随机的,是否可以获得使用的数字?也许使用文件名或文件的 MD5 哈希值或其他内容?

4

1 回答 1

3

没有性能差异,因为 R 类的所有成员都是静态和最终的,并且在编译时直接交换。这等效于任何使用 Rxy 的代码,因此性能是相同的。

我强烈建议不要在您的项目中直接使用这些数字,因为它们可能会在添加、删除和修改资源时发生变化。

您可以检查该编号对应的资源,方法是将其转换为十六进制,打开 R.java 文件并搜索该十六进制编号并查看其分配的内容。

您还可以getResources().getResourceEntryName(int resid);在运行时使用 ID 并将其传递给它以检索文件名。

于 2013-08-24T23:46:41.457 回答