Proguard是否删除未使用的代码(在Android上)

Chr*_*ert 10 java android proguard

我只是想知道,我正在设计一个与我的Android项目一起使用的库.现在我开始包含诸如apache FTP jar之类的东西来支持一些调试文件上传.

我知道并非所有项目都会使用库的所有部分(例如,某些项目根本不会有FTP上传,但是想要使用库中的UI工具).

现在我有三个问题:

  1. Proguard是否删除未使用的源(自己的代码),例如我的UI工具类,如果它们从不是主项目的引用 - 意味着在应用程序中没有使用.

  2. 如果从未使用过,Proguard会删除外部库(例如apache ftp jar).如果没有,我可以包括来源,如果选项1适用.

  3. 资源文件怎么样(不是真正的Proguards工作,更多的IntelliJ或Eclipse) - 示例:我使用默认标记编写了一个谷歌地图扩展,存储在库项目中.如果我还不需要地图,那么这些文件是否包含在每个android项目中 - 并且有一种简单的方法可以防止这种情况发生.

更多的背景:我尽可能地将所有库中的东西保存在一个项目中.我还不知道分割库的好处,所以我不想过分为一切创建单独的库(过去做过,大部分时间都是模块化的方式)......

谢谢你的任何见解,克里斯

Com*_*are 9

Proguard是否删除了未使用的来源

正确配置时,它会尝试.

如果从未使用过,Proguard会删除外部库(例如apache ftp jar).

正确配置时,它会尝试.

资源文件怎么样(不是真正的Proguards工作,更多的IntelliJ或Eclipse) - 示例:我使用默认标记编写了一个谷歌地图扩展,存储在库项目中.如果我还不需要地图,那么这些文件是否包含在每个android项目中 - 并且有一种简单的方法可以防止这种情况发生.

没有.

  • @Raghunandan:"我将从android.jar导入一些类.这是对的吗?" - 你将*从这些类的编译时`android.jar`存根中引用一些`android.*`类.**那些`android.*`类不属于您的APK文件,因此不受ProGuard**的影响.真正的类在运行时已经在您的过程中,由固件放在那里. (2认同)