AAR库中的AndroidManifest.xml文件是否始终可读"?

时间:2015-07-30 11:31:09

标签: android android-manifest aar

所以,如果你曾经" poked"在Android APK存档中,您可能知道其中的清单(AndroidManifest.xml文件)不是以明文形式存储,而是以不可读的二进制格式存储。

但是今天我注意到在AAR档案(又名:Android库文件)中,清单不是"编码的"实际上是纯文本,完全可读。

我假设这是为了便于包含在项目和后续编译中?

但我真正的问题是:我可以指望吗?即:我可以指望AAR档案中的内容是可读的,而不是以二进制格式编码{ {1}}档案使用?

我之所以这样说:我有一个基于Gradle的自定义构建系统,它根据输入配置扫描并包含APK个库,如果我知道100个,我可以使它更简单我可以直接从AAR档案中读取清单,而不必像我现在那样使用AAR工具解析包。

1 个答案:

答案 0 :(得分:1)

是的,你可以信赖它。

如果您考虑编码格式包含的内容,您会发现这不适合图书馆。例如,编码格式用索引号替换文本字符串引用 - 但只有当您知道与apk中所有字符串关联的数字时才能这样做。根据定义,库不是完整的apk,因此在知道组合资源集之前,不能分配给资源项的数字。

如果查看许多aar文件中的清单文件,您会看到它们包含AOSP版权标题作为xml注释。注释是在转换为apks中使用的二进制编码格式时被丢弃的另一条信息,虽然较少的交易破坏者,但在图书馆中保留此信息可能是合法的。

请注意,不仅仅是在Android文件中仍然未编码的AndroidManifest文件 - 所有其他xml资源文件仍然未编码,原因与上述类似。