2012-07-04 14 views
6

¿Hay alguna manera de hacer que Eclipse siempre ejecute proguard antes de dexing cuando intente ejecutar una aplicación de Android? p.ej. alguna forma de insertarlo sin problemas como un paso de compilación?Siempre ejecutando proguard antes de Android dex'ing en Eclipse

De forma predeterminada, se ejecutará al exportar, pero necesito que se ejecute siempre, incluso cuando, p. simplemente haciendo un "Run" o "Debug" normal desde el menú/teclado.


Para el contexto, la razón de esto es relevante es que estoy corriendo en los "demasiados opcodes/códigos de operación no expandidos" (http://code.google.com/p/android/issues/detail ? id = 26203) problemas con mi compilación en Eclipse. No es un problema para compilaciones de antis porque corren proguard, que quita todo el código no utilizado. Hasta ahora he eliminado manualmente elementos no utilizados de mis dependencias de terceros, pero se está volviendo algo ridículo.

Además, como beneficio adicional, debería acelerar drásticamente mi construcción, ya que una ejecución de protección solo por contracción es mucho más rápida que la dexificación y elimina la mayor parte del código que debe dexar.

Respuesta

7

Este comportamiento está codificado de forma rígida en el generador del complemento Eclipse en las herramientas de desarrollo de Android. Puede adaptar su código fuente (Android Tools) para que el constructor se comporte más como el asistente de exportación (o internamente, la clase BuildHelper se comporta más como la clase ExportHelper). Aunque eso no sea muy divertido de mantener.

Alternativamente, puede ejecutar Ant desde Eclipse.

También alternativamente, el hermano comercial, de código cerrado de ProGuard, DexGuard, integra la funcionalidad de ProGuard y de dx (y apkbuilder, jarsign, zipalign). Se puede configurar para reducir/oscurecer/optimizar para compilaciones de depuración/liberación en Eclipse y en Ant.

(Yo soy el programador de ProGuard y DexGuard)

+0

¿Existe una prueba disponible para DexGuard? Me gustaría probarlo ... –

+0

ProGuard ya es una demostración de nuestro software, pero no dude en ponerse en contacto si tiene alguna pregunta. –

+1

Entonces, si usamos DexGuard, ¿podemos usarlo con solo un clic de un botón sin exportar la aplicación a la aplicación y transferirla al dispositivo? – frankish

Cuestiones relacionadas