Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.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
视图ID的整数值在android中是否始终保持不变?_Android_Performance_Android Studio_Android Layout - Fatal编程技术网

视图ID的整数值在android中是否始终保持不变?

视图ID的整数值在android中是否始终保持不变?,android,performance,android-studio,android-layout,Android,Performance,Android Studio,Android Layout,R.id.view的int值是否始终相同 我试着用两台设备打印,结果是一样的 我还更改了id的名称,但值仍然相同 但是它在所有场景中都会保持不变吗?编译期间会生成一个视图ID,因此如果APK相同,则每个设备中的ID都会相同。请注意,“不同的编译可能会生成不同的ID”。编译过程中会生成视图ID,因此,如果APK相同,则每个设备中的ID都是相同的。请注意,“不同的编译可能会生成不同的ID”。对于任何特定的应用程序资源,特定的R类关联资源ID在运行时的所有场景中都是相同的,因为此资源ID是在编译

R.id.view的int值是否始终相同


  • 我试着用两台设备打印,结果是一样的
  • 我还更改了id的名称,但值仍然相同

但是它在所有场景中都会保持不变吗?

编译期间会生成一个视图ID,因此如果APK相同,则每个设备中的ID都会相同。请注意,“不同的编译可能会生成不同的ID”。

编译过程中会生成视图ID,因此,如果APK相同,则每个设备中的ID都是相同的。请注意,“不同的编译可能会生成不同的ID”。

对于任何特定的应用程序资源,特定的R类关联资源ID在运行时的所有场景中都是相同的,因为此资源ID是在编译时生成的

发件人:

在应用程序中提供资源后,可以通过引用其资源ID来应用它。所有资源ID都在项目的R类中定义,aapt工具会自动生成该类。编译应用程序时,aapt生成R类,该类包含res/目录中所有资源的资源ID

因此,如果使用相同的apk,在两个设备中打印它将产生相同的int值。还请注意,在相应的子类中

由此:

请注意,默认情况下,aapt不会尝试保留这些标识符 在构建之间也是如此。每次资源发生变化时,它们都可以 获取新的标识符。每次构建它们时,都会创建一个新的R.java 使用当前标识符,以便代码获得正确的值。 因此,您决不能将资源标识符保留在任何地方 它们可以跨应用程序的不同版本使用

对资源的任何更改都可能使资源获得新的R类资源ID


基于计算R类资源ID的方式,如中所述,我认为,因为您只更改了XML资源ID的名称,没有更改资源的类型,也没有更改相应XML文件中相应视图对象声明的位置,正在计算相同的R类资源ID。

对于任何特定的应用程序资源,特定的R类关联资源ID在运行时的所有场景中都是相同的,因为此资源ID是在编译时生成的

发件人:

在应用程序中提供资源后,可以通过引用其资源ID来应用它。所有资源ID都在项目的R类中定义,aapt工具会自动生成该类。编译应用程序时,aapt生成R类,该类包含res/目录中所有资源的资源ID

因此,如果使用相同的apk,在两个设备中打印它将产生相同的int值。还请注意,在相应的子类中

由此:

请注意,默认情况下,aapt不会尝试保留这些标识符 在构建之间也是如此。每次资源发生变化时,它们都可以 获取新的标识符。每次构建它们时,都会创建一个新的R.java 使用当前标识符,以便代码获得正确的值。 因此,您决不能将资源标识符保留在任何地方 它们可以跨应用程序的不同版本使用

对资源的任何更改都可能使资源获得新的R类资源ID

基于计算R类资源ID的方式,如中所述,我认为,因为您只更改了XML资源ID的名称,没有更改资源的类型,也没有更改相应XML文件中相应视图对象声明的位置,正在计算相同的R类资源ID