始终在Eclipse中使用Android dex'ing之前运行proguard

时间:2012-07-04 00:30:38

标签: java android eclipse proguard

有没有办法让Eclipse 总是在dex'ing尝试运行Android应用程序之前运行proguard?例如某种方式无缝插入它作为构建步骤?

默认情况下,它会在导出时运行,但我需要它始终运行,即使是只需从菜单/键盘进行正常的“运行”或“调试”。


对于上下文,这是相关的原因是我遇到了“太多的操作码/没有扩展的操作码”(http://code.google.com/p/android/issues/detail?id=26203 )我在Eclipse中构建的问题。这对于ant构建来说不是问题,因为它们运行proguard,它会删除所有未使用的代码。到目前为止,我一直在手动剥离我的第三方依赖项中未使用的东西,但这有点荒谬。

另外,作为一个附带好处,它应该大大加快我的构建速度,因为只有收缩的程序运行方式比dex'ing更快,它删除了大部分需要dex'ed的代码。 / p>

1 个答案:

答案 0 :(得分:7)

此行为在Android开发工具的Eclipse插件的构建器中进行了硬编码。您可以调整其源代码(Android Tools),以便构建器的行为更像导出向导(或者在内部,BuildHelper类的行为更像ExportHelper类)。尽管如此,这可能不是很有趣。

或者,您可以从Eclipse运行Ant。

另外,ProGuard的商业闭源兄弟DexGuard集成了ProGuard和dx(以及apkbuilder,jarsign,zipalign)的功能。它可以配置为缩小/混淆/优化Eclipse和Ant中的调试/发布版本。

(我是ProGuard和DexGuard的开发者)