zh_cn:tutorial:mappings
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
zh_cn:tutorial:mappings [2020/11/17 03:47] – [使用映射] solidblock | zh_cn:tutorial:mappings [2023/08/16 02:30] – [混淆和反混淆] wjz_p | ||
---|---|---|---|
Line 7: | Line 7: | ||
在Loom中,映射定义了你在开发环境中使用的Minecraft类、字段和方法的名称。这些名称可能因开发环境而异,取决于你安装的映射。 | 在Loom中,映射定义了你在开发环境中使用的Minecraft类、字段和方法的名称。这些名称可能因开发环境而异,取决于你安装的映射。 | ||
- | Yarn是Loom使用的默认映射。随着对贡献的接受,Yarn逐渐改进并接受新的发布。Loom中的映射是使用buildcraft中的'' | + | Yarn是Loom使用的默认映射。随着对贡献的接受,Yarn逐渐改进并接受新的发布。Loom中的映射是使用buildcraft中的'' |
< | < | ||
Line 18: | Line 18: | ||
通过改变您的开发环境中的映射,Minecraft中类、方法和字段的名称和包括的模组都可能会改变,您的代码可能需要更新才能引用更改的名称。[[tutorial: | 通过改变您的开发环境中的映射,Minecraft中类、方法和字段的名称和包括的模组都可能会改变,您的代码可能需要更新才能引用更改的名称。[[tutorial: | ||
- | Loom的'' | + | Loom的'' |
- | * **' | + | * **' |
- | * **Yarn名称不仅应用于开发环境**。在开发环境之外,只存在中介名称,也就是说代码不会准确地匹配你看见和写的东西。Loom transparently可以为您处理这个转换,但是使用反射(reflection)时要谨慎。 | + | * **Yarn名称仅应用于开发环境**。在开发环境之外,只存在中间名,也就是说代码不会准确地匹配你看见和写的东西。Loom transparently可以为您处理这个转换,但是使用反射(reflection)时要谨慎。 |
=== Mojang的映射 === | === Mojang的映射 === | ||
Line 60: | Line 60: | ||
Minecraft Java Edition的发行版是混淆的jar文件,这意味着它们是已编译的二进制文件,其中剥离了任何有意义的命名信息,仅保留了裸露的逻辑。 模糊处理的动机是防止反向工程并减小文件大小。 像Minecraft这样的Java程序很容易反编译,但是混淆处理剥夺了很多对修改目的有用的信息。 也许有人会怀疑一开始如何为Minecraft进行开发。 | Minecraft Java Edition的发行版是混淆的jar文件,这意味着它们是已编译的二进制文件,其中剥离了任何有意义的命名信息,仅保留了裸露的逻辑。 模糊处理的动机是防止反向工程并减小文件大小。 像Minecraft这样的Java程序很容易反编译,但是混淆处理剥夺了很多对修改目的有用的信息。 也许有人会怀疑一开始如何为Minecraft进行开发。 | ||
- | 像Yarn这样的映射为开发提供了有意义的名称。 使用映射可以理解Minecraft代码并为其创建mod。 映射可以提供类,字段,方法,参数和局部变量的名称。 显然,这些映射并不完美。 绘制《我的世界》的整个地图需要来自多个贡献者的大量猜测。 映射可能不完整,有时会随着找到更准确的名称而更改。 | + | 像Yarn这样的映射为开发提供了有意义的名称。 使用映射可以理解Minecraft代码并为其创建mod。 映射可以提供类,字段,方法,参数和局部变量的名称。 显然,这些映射并不完美。 绘制《我的世界》的整个映射表需要来自多个贡献者的大量猜测。 映射可能不完整,有时会随着找到更准确的名称而更改。 |
==== 中间名 ==== | ==== 中间名 ==== |
zh_cn/tutorial/mappings.txt · Last modified: 2024/04/15 00:57 by solidblock