最近搞了个网页解析Android APP 安装包 .apk 中的 AndroidManifest.xml 的小工具。

其中,整个项目最复杂的地方就是 axml 转换 xml 的实现。
因为 AndroidManifest.xml 并非是一个真正的 XML,而是一个 axml 格式的文件,需要借助特殊的工具解析、转换到 XML

在 npm 上找了半天,没找到符合我要求的库。

NPM 上 axml 那个库和 Android 的 XML 完全没有关系!

没办法,只能自己动手实现一下了!

借鉴了 https://github.com/xgouchet/AXML 的源代码,我迁移了一个 JavaScript 版本的 axml2xml。伸手党可以直接用下面的命令添加这个库:

1
npm install axml2xml --save

转换一个 axml 文件为 xml 文件的示例:

1
2
3
const Axml2Xml = require('axml2xml');
const buf = fs.readFileSync('./tests/AndroidManifest.xml');
console.log(Axml2Xml.convert(buf));

转换得到的 XML 可以用其他库去解析,非常方便。

更多的使用方法可以 查看项目的NPM 介绍,源代码参见 https://github.com/micblo/axml2xml

除非注明,麦麦小家文章均为原创,转载请以链接形式标明本文地址。

版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)

本文地址:https://blog.micblo.com/2022/06/14/%E7%94%A8JavaScript%E8%A7%A3%E6%9E%90Android-XML-axml/