2011-07-25 46 views
10

我只是想知道,我正在设计一个库,以便与我的Android项目一起使用。现在我开始包含诸如apache FTP jar之类的东西来支持一些调试文件上传。我知道不是所有的项目都会使用库的所有部分(例如,某些项目根本没有FTP上传,但想要使用库中的UI工具)。Proguard是否会删除未使用的代码(在Android上)

现在我有三个问题:

  1. 不Proguard的去除unsused源(自己的代码),例如像我的UI工具类,如果它们永远不是来自主项目的引用 - 这意味着不在应用程序中使用。

  2. 如果从未使用过,Proguard会删除外部库(例如apache ftp jar)。如果没有,我可以包括来源,如果选项1适用。例如:我使用存储在库项目中的默认标记编写谷歌地图扩展插件。如果我不需要地图,那么这些文件会包含在每个Android项目中 - 并且有一种简单的方法可以防止这种情况发生。

更多背景:我试图尽可能长时间地将所有图书馆资料保存在一个项目中。我不知道分割图库的好处,所以我不想过分地为所有东西创建独立的库(过去是这样做的,而且大部分时间都是模块化的方式)...

感谢您的任何见解, 克里斯

+1

“Desinging”听起来像:-) –

+0

该死的德国人...我们得到了很多-ing和一个有趣的过程,通常没有-ign - 校正orthograpic爱好者:-) –

回答

9

不Proguard的去除unsused来源

它尝试,在正确配置。

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

它试图,如果配置正确。

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

+0

所以在我的库中包含源代码和jar包没有区别。大多数罐子都提供了源代码,但如果我正确理解你的答案,只要我弄清楚如何正确使用Proguard,就没有什么好处。包括Apache公共资源与罐子。 –

+0

@Christian:对。在任何情况下,Proguard都无法使用源代码AFAIK - 它不依赖于.class文件。 – CommonsWare

+0

@CommonsWare如果你已经添加了一个基本的例子如何正确配置它将是很好的。 – rekire

相关问题