AXML 即 Android Binary XML, 是 Android 应用程序 APK 包中保存 xml 文件数据的一种方式, 可以减小 xml 文件的大小.
本文章与我的另一篇文章手把手教你解析 resources.arsc 是相关联的, resources.arsc 文件是 apk 的资源索引文件, 而 xml 文件是 apk 的资源文件, resources.arsc 保存了 xml 中需要用到的资源的索引, 它们之间有非常强的依赖关系, apk在执行的时候缺一不可.
另外大家在用 AXMLPrinter 去解码 AXML 文件时会看见输出中有很多属性的值都是一串数字, 很难明白是什么意思, 实际上这串数字就是资源的索引 id 值, 需要用这个 id 去 resources.arsc 中查找才能得到具体的字符串, 知道这个属性的值是 @string/XXXX 或者 @drawable/XXXX 等等.
在上面的文章中我介绍了 resources.arsc 文件的解析方式, 本文我来介绍怎样来解析 AXML 文件.