También quería hacer esto sin usar Ant o el comando enfoque de línea. Aquí es lo que funcionó (en Eclipse + sólo Windows):.
(es necesario descargar Proguard El script espera de encontrar aquí: C: \ android-sdk_r04-windows \ Proguard \ lib \ proguard.jar)
Crear un archivo por lotes de Windows, "C: \-sdk_r04-ventanas androide \ obfusc.bat":
DEL /S /Q obfuscated
MKDIR obfuscated
java -jar C:\android-sdk_r04-windows\proguard\lib\proguard.jar @android.pro
DEL /S /Q bin\com\
DEL /S /Q bin\org\
ROBOCOPY obfuscated\com bin\com /S
En Eclipse, que aparezca la página de propiedades de tu Android proyecto, seleccione el panel "Constructores" y agregue un nuevo generador de tipo "Programa". En el campo "Ubicación" de la pestaña principal, coloque la ruta absoluta de la secuencia de comandos en el paso anterior. En el campo "Directorio de trabajo", coloque la variable $ {build_project}. En la pestaña "Opciones de compilación", seleccione "Después de una limpieza" en "Ejecutar compilador".
Asegúrate de que esta herramienta de compilación sea la última, justo antes del creador de paquetes de Android.
Cree un archivo de configuración de proguard en la carpeta raíz del proyecto de Android. Los personalizo ligeramente y los incluyo en el control de revisiones, pero eso depende de usted. El archivo que uso se llama "android.pro", como se nombran en el guión, y es similar a la configuración en el blog dev pero incluye una cabecera con injar, outjar, y las declaraciones libraryjar, por ejemplo:
-injars bin(!.svn/**)
-outjars obfuscated
-libraryjars C:\android-sdk_r04-windows\android-sdk-windows\platforms\android-1.6\android.jar
-libraryjars C:\GoogleAnalyticsAndroid_0.7\libGoogleAnalytics.jar
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-printmapping proguard.map
-keepattributes SourceFile,LineNumberTable
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native ;
}
-keepclasseswithmembernames class * {
public (android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public (android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
- Querrá mantener este generador apagado la mayor parte del tiempo. Cuando sea el momento de probar o exportar un APK ofuscado, enciéndalo y luego haga un "Proyecto> Limpiar" desde Eclipse, incluido el proyecto y cualquier proyecto de biblioteca del que dependa.
Creo que eso es todo.
La respuesta a http://stackoverflow.com/a/11351168/2291 describe los cambios que se han actualizado a respetar los cambios en el SDK. –