一个 Android 应用的绝大部分资源配置,例如字符串、主题、图片文件索引、布局文件索引等信息,都保存在 arsc 文件中。当你使用 MT 打开一个 arsc 文件时,它将会弹出打开方式菜单,你可以选择** Arsc 编辑器**、**翻译模式**、**资源查询**。
![](../images/arsc1.webp =270x)
** Arsc 编辑器**功能可以对 arsc 文件中的任意内容进行添加、删除、修改,本章内容会进行详细说明。
**翻译模式**将会在后面统一进行介绍。
**资源查询**功能和 [Xml](XML编辑.md) 的**资源值智能编辑**基本差不多,不过单独提取了出来,以悬浮窗的方式,可以随时在任何地方查询资源,该功能同样需要 VIP。
## Arsc 层次结构
在介绍** Arsc 编辑器**功能之前,要先了解一下 arsc 的结构,从外层到内层依次是:
- 包(Package)
- 类型(Type)
- 配置(Config)
- 条目(Entry)
- 值(Value)
### 包(Package)
一般一个 arsc 文件只有一个包,进入 Arsc 编辑器后,在** ID 搜索资源**下面的项就是该文件的包。
![](../images/arsc2.webp =270x)
### 类型(Type)
进入包之后,看到的列表就是类型,其中最左边是**包 ID + 类型 ID **,例如 **7F01**,紧接着的是类型名称,例如 attr、string、style 等。
![](../images/arsc3.webp =270x)
至于各个类型分别代表什么意思,其实只要你做过 Android 开发,就会发现它和你在 res 目录中定义的资源基本一致。例如 strings.xml 中的字符串数据都可以在 string 类型里面找到,在 drawable 中放置的图片也可以在 drawable 类型里面找到,不过 drawable 类型里面存储的是图片的路径。
### 配置(Config)
进入类型之后,看到的列表就是配置。
![](../images/arsc4.webp =270x)
所谓配置,就是一个资源在不同环境下对应不同的数据,例如你在 string 类型中就可能看 string、string-zh-rCN 等配置,不带后缀表示默认配置,-zh-rCN 后缀表示简体中文,所以 string-zh-rCN 中的资源会在简体中文环境下使用。
同个类型下的配置,它们的条目数量不一定完全一致。在上面例子中,当应用要使用一个 string 资源时,会先给定一个资源 ID,系统会根据这个 ID 优先在 -zh-rCN 配置中寻找,如果找不到,那么系统就会去默认配置中寻找,如果都找不到呢?那肯定就会报错了。
更多资料请查看[ Android 官方文档](https://developer.android.com/guide/topics/resources/providing-resources.html?#AlternativeResources)。
### 条目(Entry)
进入配置之后,看到的列表就是条目,其中最左边是**条目 ID **,例如 **0000**,紧接着的是资源名称,还可能显示资源值。
补充:一个完整的**资源 ID **就是**包 ID + 类型 ID + 条目 ID **,例如 7F010000。
![](../images/arsc5.webp =270x)
### 值(Value)
上图中,你点击任意条目后是不会进入值列表的,而是直接编辑它的值。
![](../images/arsc7.webp =270x)
只有那些存在零或多个值的复杂(Complex)条目,点击后会进入值列表。一般在 attr、style、array、plurals 类型中的都是复杂条目,而其它类型中的基本都是简单条目。
你可以返回后进入一个 style 类型的配置,点击里面的任意条目,就可以进入它的值列表了。
![](../images/arsc6.webp =270x)
## 添加配置
添加配置的方式有两种:
- 第一种是长按已有的配置,在弹出菜单种点击**复制**,然后输入新的配置名,新添加的配置会自动把被复制的配置的所有条目全部复制过去。
- 第二种是在配置列表中,点击右上角菜单中的**添加**,然后输入新的配置名,完成后会增加一个没有任何条目的新配置。
例如当你为一个应用添加简体中文语言包时,你可以长按复制 string 类型的默认配置,输入 -zh-rCN 然后保存,此时该配置下的文字还不是中文的,然后你还需要使用 Arsc 翻译模式把 -zh-rCN 下的文字翻译成中文。
## 添加条目
在条目列表中,点击右上角菜单中的添加,然后 MT 会自动从其它配置中查找那些条目是当前配置还没有的,并显示出来。
![](../images/arsc8.webp =270x)
选择相应的配置,然后就可以直接导入其中的条目了。或者你也可以手动新建条目,当其它配置中没有可导入的条目时,也会直接显示新建界面。
![](../images/arsc9.webp =270x)
----
其它的操作很简单,这里不多做说明,只需要**点击、长按、右上角菜单**,你就能发现各个功能。