Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/221.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 按整数获取资源_Android_Android Resources - Fatal编程技术网

Android 按整数获取资源

Android 按整数获取资源,android,android-resources,Android,Android Resources,我有时会在Android源代码中看到这样的声明: mContext.getString(2131361954); Notification n = new Notification(2130837696, "123", System.currentTimeMillis()); // Example code - does not match together 我认为这些数字是该项目的一些资源,对吗?为什么有时人们使用这个数字而不是使用R类?是更快还是别的什么 我如何检查分配给该编号的资源?如

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

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

// Example code - does not match together
我认为这些数字是该项目的一些资源,对吗?为什么有时人们使用这个数字而不是使用R类?是更快还是别的什么


我如何检查分配给该编号的资源?如果我只有文件,是否可能得到使用的数字,或者这个数字是随机的?可能与文件名或文件的MD5哈希或其他内容有关?

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

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

通过将该数字转换为十六进制,打开R.java文件,搜索该十六进制数字并查看其分配给什么,可以检查该数字对应的资源


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

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

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

通过将该数字转换为十六进制,打开R.java文件,搜索该十六进制数字并查看其分配给什么,可以检查该数字对应的资源


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

我有一个反编译的应用程序,其中所有资源都存储在
public.xml
中。如果我现在想添加png,添加这一行就足够了吗<代码>
当然,十六进制数必须随着最后一个数字的增加而增加。或者我必须再添加一些吗?@Cilenco我从来没有听说过任何应用程序使用public.xml,因此我无法建议如何继续,因为我不知道如何处理它。我有一个反编译的应用程序,其中所有资源都存储在
public.xml
中。如果我现在想添加png,添加这一行就足够了吗<代码>当然,十六进制数必须随着最后一个数字的增加而增加。或者我还需要添加一些吗?@Cilenco我从来没有听说过任何应用程序使用public.xml,因此我无法建议如何继续,因为我不知道如何处理它。这是来自实际的Android源代码,还是反编译应用程序的结果?如果这是反编译的结果,那么你看到的只是数字而不是标识符的原因是因为编译后的代码只有数值,无法重建原始源代码。这是来自实际的Android源代码,还是反编译应用程序的结果?如果它是反编译的结果,那么您看到的只是数字而不是标识符的原因是编译后的代码只有数值,并且无法重建原始源代码。