我们这边提到的 xml 并不是常见的文本格式的文件,而是在 APK 中的 xml 文件,它是二进制格式,如果你将它当成文本文件打开,那么将看到一堆乱码。
当你使用 MT 打开一个 xml 文件时,它将会弹出打开方式菜单,你可以选择**反编译**或者**字符常量池**,**字符常量池**只能编辑 xml 中的字符串常量,这边不做过多说明,下面主要还是介绍**反编译**功能。
![](../images/xml1.webp =270x)
虽然 xml 是二进制格式,但在开发时,开发者编写的仍然是文本格式,例如我们熟悉的 AndroidManifest.xml 文件。在编译打包成 APK 时,文本格式 xml 文件会经过 aapt 的编译优化,成为二进制格式,最后被打包到 APK 中。
通过 MT 管理器的**反编译**,你可以将单个 xml 文件反编译成文本格式,并且 MT 还支持修改后将它编译回去。(反编译 xml 是一个半收费功能,免费版限制了反编译速度、源码行数,无 ID 转名称,无资源值智能编辑。)
下面是某个 AndroidManifest.xml 文件的反编译结果
![](../images/xml2.webp =270x)
至于 xml 该怎么改,改什么,这边我没法直接告诉你。如果你了解安卓开发,自然就知道如何修改。
## 资源 ID 转名称 - VIP 功能
从上图中可以看到几个 @7FXXXXXX 之类的值,在前面的[资源索引](资源索引.md)有做过部分介绍。但在开发过程中,这些值是以 @style/AppTheme、@string/app_name 这样的形式出现的,如果你更喜欢这样,那么你可以使用** ID 转名称**功能。
![](../images/xml3.webp =270x)
要使用** ID 转名称**必须将一个 resources.arsc 文件和 xml 文件放在同一个目录下(如果是在 APK 中打开 xml 文件则不需要手动放置,MT 会自动把 xml 和 resources.arsc 一起解压),因为 MT 要通过查询 resources.arsc 文件才能把资源 ID 转成对应的名称。最后你还需要在编辑界面右上角的菜单中勾选开启该功能。
## 资源值智能编辑 - VIP 功能
该功能和**资源 ID 转名称**一样同样需要 resources.arsc 文件,开启方式看下图:
![](../images/xml4.webp =270x)
注意光标要在双引号内,多选时也不能超出引号范围,否则看不到“编辑”菜单。
![](../images/xml5.webp =270x)
考虑到手机屏幕小,不适合直接在编辑器做自动补全功能,所以放到了屏幕上方。
![](../images/xml6.webp =270x)
点击查询按钮,可以查看当前输入的值的相关信息。
![](../images/xml7.webp =270x)
当然这些信息你也可以手动在 resources.arsc 文件中查到。