📋 支持的格式
指南 参考ClassyShark 支持浏览多种 Android 相关二进制格式。下表列出每种格式的处理路径。
归档与可执行格式
| 格式 | 扩展名 | ContentReader | Translator | 底层库 | 说明 |
|---|---|---|---|---|---|
| 📦 APK | .apk | ApkReader | ApkTranslator → ApkDashboard | dexlib2 + ASM + asmdex | 完整应用包,含依赖检查仪表盘 |
| 🧩 DEX | .dex | DexReader | DexInfoTranslator | dexlib2 | Dalvik 字节码,单/多 dex |
| ☕ JAR | .jar | JarReader | JarInfoTranslator | java.util.jar | Java 库摘要 |
| 📦 AAR | .aar | AarReader | JavaTranslator | java.util.jar | Android 库,提取内嵌 classes.jar |
| 🐚 SO | .so | (组件) | ElfTranslator | java-binutils + 自研 ElfReader | native 共享库,动态符号 |
| ☕ CLASS | .class | ClazzReader | JavaTranslator | ASM | 单个 Java 类文件 |
二进制 XML 格式
| 格式 | 来源 | Translator | 说明 |
|---|---|---|---|
| 📄 AndroidManifest.xml | APK 内 | AndroidXmlTranslator | 应用清单 |
| 📄 布局 XML | APK 内 res/ | AndroidXmlTranslator | 编译后的布局 |
| 📄 资源 XML | APK 内 | AndroidXmlTranslator | 编译后的资源 |
二进制 XML 经独立的 XmlDecompressor 解码——这是 ClassyShark 不依赖 AOSP aapt 的自研实现。
⚠️ 已知限制
.zip格式:FileChooserUtils的文件选择器与拖放接受.zip,但TranslatorFactory没有.zip分支,.zip会落入默认JavaTranslator,行为可能不符合预期。详见 TranslatorFactory 已知问题。- ELF 64 位:
ElfReader仅支持ELFCLASS32,遇 64 位会抛ELFCLASS64。Androidarmeabi-v7a的.so是 32 位;arm64-v8a的.so是 64 位。