Android R - 生成的 ID 在构建之间是否相同?

Android R - Are the generated IDs identical between build?

Android R ID 由 IDE(Android Studio 或 Eclipse ADT)生成。

它们在构建之间是否相同?

如果是,在不同的机器上生成的会一样吗?

首先,Android ID 不是由 IDE 生成的,而是由 aapt 生成的,aapt 是一个在构建过程中 运行 的命令行工具。是的,IDE 最终会触发它,但严格来说它不是 Android Studio 的一部分,它是构建工具包的一部分。

这些编号基本上是按字母顺序分配的,因此同一项目的资源 ID 将是相同的 - 但如果您修改资源文件树则不同。我只准备保证在相同的文件系统、操作系统和版本的构建工具上。如果您更改其中任何一个,则所有赌注都将取消。

归根结底,依赖于此将是一个非常糟糕的主意,因为总有一天有人会通过修改项目来破坏它,可能早不宜晚。

几年前,当我为了修补资源而编写 APK 反编译器时,我对此进行了相当广泛的研究。