我有时会在Android源代码中看到此声明:
mContext.getString(2131361954);
Notification n = new Notification(2130837696, "123", System.currentTimeMillis());
// Example code - does not match together
我认为数字是该项目的一些资源,对吧?为什么有时人们使用这个数字而不是使用R类?它更快还是其他什么?
如何检查分配给这些数字的资源?如果我只有文件或这个数字是随机的,是否可以获得使用的数字?也许使用文件名或文件的MD5哈希值?
答案 0 :(得分:3)
没有性能差异,因为R类的所有成员都是静态的和final的,并且在编译期间直接交换。这相当于使用R.x.y的任何代码,因此性能相同。
我强烈建议不要直接在项目中使用这些数字,因为它们可能会在添加,删除和修改资源时发生变化。
您可以通过将该数字转换为十六进制来检查该数字所对应的资源,打开R.java文件并搜索该十六进制数并查看其分配的内容。
您还可以使用getResources().getResourceEntryName(int resid);
并在运行时将ID传递给它以检索文件名。