java - 为什么proguard处理AndroidManifest.xml

标签 java android optimization broadcastreceiver proguard

我看到一些无法解释的 Proguard 行为。

AFAIK proguard 不关注 android list 。另外,在我的 proguard.cfg 中我没有提到 BroadcastReceiver 相关的类。所以我认为这些应该被删除。

但是我在 bin/proguard.txt 中看到了一些奇怪的东西:

# view AndroidManifest.xml #generated:784
-keep class com.fiksu.asotracking.InstallTracking { <init>(...); }

并且该类(BroadcastReceiver 的后代)不会被剥离。原因对我来说没有任何意义:

[proguard] com.fiksu.asotracking.InstallTracking
[proguard]   is kept by a directive in the configuration.

如果 list 中没有提到类,它将被删除。

很高兴知道为什么。

最佳答案

构建过程运行工具aapt自动创建配置文件bin/proguard.txt,基于AndroidManifest.xml等xml 文件。然后构建过程将配置文件传递给 ProGuard。所以 ProGuard 本身确实不考虑 AndroidManifest.xml,但 aapt+ProGuard 考虑。

关于java - 为什么proguard处理AndroidManifest.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19180434/

相关文章:

string - 优化 F# 字符串连接

java - 从信息模式中获取oracle中的表名列表

java - 在 Jackson 中指定特定通用集合字段的具体类型,无需注释

java - "conditional"是否被 "int i = flag ? 1 : 0;"中的 JIT 删除了?

android - 你将如何改进 Dalvik? Android的虚拟机

android - 如何更新 "onResume"上的 Activity ?

optimization - 生产 Web 应用程序每秒的 "average"个请求是多少?

Debian Linux 中的 JavaFX MediaPlayer 异常

java - 什么是数字促销?

android - 单击动画上的事件 ImageView 仅在开始位置触发