diff options
author | Ying Wang <wangying@google.com> | 2012-02-27 10:21:35 -0800 |
---|---|---|
committer | Ying Wang <wangying@google.com> | 2012-02-27 11:54:51 -0800 |
commit | cfead78069f3dc32998dc118ee08cab3867acea2 (patch) | |
tree | 9600f15eed62fa9ba63ce5894d1f09fe686d5997 /examples/ant/android-8.xml | |
parent | 10aa7224f49abe49d123bde5d34346202d49aaca (diff) | |
download | android_external_proguard-cfead78069f3dc32998dc118ee08cab3867acea2.tar.gz android_external_proguard-cfead78069f3dc32998dc118ee08cab3867acea2.tar.bz2 android_external_proguard-cfead78069f3dc32998dc118ee08cab3867acea2.zip |
Upgrade from Progaurd 4.4 to 4.7.
Change-Id: Ie185d0be411a80cc6a330cafa8547252a7dc1d9c
You can find the changelog here
http://proguard.sourceforge.net/#downloads.html
Diffstat (limited to 'examples/ant/android-8.xml')
-rw-r--r-- | examples/ant/android-8.xml | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/examples/ant/android-8.xml b/examples/ant/android-8.xml new file mode 100644 index 0000000..3a4316b --- /dev/null +++ b/examples/ant/android-8.xml @@ -0,0 +1,177 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="MyAndroidApp" default="help"> + +<!-- The local.properties file is created and updated by the 'android' + tool. + It contains the path to the SDK. It should *NOT* be checked into + Version Control Systems. --> + <property file="local.properties" /> + + <!-- The build.properties file can be created by you and is never touched + by the 'android' tool. This is the place to change some of the + default property values used by the Ant rules. + Here are some properties you may want to change/update: + + source.dir + The name of the source directory. Default is 'src'. + out.dir + The name of the output directory. Default is 'bin'. + + Properties related to the SDK location or the project target should + be updated using the 'android' tool with the 'update' action. + + This file is an integral part of the build system for your + application and should be checked into Version Control Systems. + + --> + <property file="build.properties" /> + + <!-- The default.properties file is created and updated by the 'android' + tool, as well as ADT. + This file is an integral part of the build system for your + application and should be checked into Version Control Systems. --> + <property file="default.properties" /> + + <!-- Custom Android task to deal with the project target, and import the + proper rules. + This requires ant 1.6.0 or above. --> + <path id="android.antlibs"> + <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" /> + <pathelement path="${sdk.dir}/tools/lib/sdklib.jar" /> + <pathelement path="${sdk.dir}/tools/lib/androidprefs.jar" /> + </path> + + <taskdef name="setup" + classname="com.android.ant.SetupTask" + classpathref="android.antlibs" /> + +<!-- extension targets. Uncomment the ones where you want to do custom work + in between standard targets --> +<!-- + <target name="-pre-build"> + </target> + <target name="-pre-compile"> + </target> + + [This is typically used for code obfuscation. + Compiled code location: ${out.classes.absolute.dir} + If this is not done in place, override ${out.dex.input.absolute.dir}] + <target name="-post-compile"> + </target> +--> + + + <!-- Execute the Android Setup task that will setup some properties + specific to the target, and import the build rules files. + + The rules file is imported from + <SDK>/platforms/<target_platform>/ant/ant_rules_r#.xml + + To customize existing targets, there are two options: + - Customize only one target: + - copy/paste the target into this file, *before* the + <setup> task. + - customize it to your needs. + - Customize the whole script. + - copy/paste the content of the rules files (minus the top node) + into this file, *after* the <setup> task + - disable the import of the rules by changing the setup task + below to <setup import="false" />. + - customize to your needs. + --> + + <setup /> + + <!-- Define a place for the optimized classes. --> + <property name="out.proguard.absolute.jar" + location="${out.absolute.dir}/classes-processed.jar" /> + + <!-- Define a obfuscation mapping file. --> + <property name="out.proguard.absolute.map" + location="${out.absolute.dir}/classes-processed.map" /> + + <!-- Redefine the dex help macro, so it converts the optimized classes.. --> + <macrodef name="dex-helper"> + <element name="external-libs" optional="yes" /> + <element name="extra-parameters" optional="yes" /> + <sequential> + <echo>Converting optimized files into ${intermediate.dex.file}...</echo> + <apply executable="${dx}" failonerror="true" parallel="true"> + <arg value="--dex" /> + <arg value="--output=${intermediate.dex.file}" /> + <extra-parameters /> + <arg line="${verbose.option}" /> + <fileset file="${out.proguard.absolute.jar}" /> + <external-libs /> + </apply> + </sequential> + </macrodef> + + <!-- Define the optimization target. --> + <taskdef resource="proguard/ant/task.properties" + classpath="/home/eric/ProGuard/releases/proguard4.5.1/lib/proguard.jar" /> + + <target name="-post-compile"> + <echo>Optimizing compiled files and libraries into ${out.proguard.absolute.jar}...</echo> + <proguard printmapping="${out.proguard.absolute.map}"> + <injar path="${out.classes.absolute.dir}" /> + <injar path="${external.libs.absolute.dir}" /> + <outjar path="${out.proguard.absolute.jar}" /> + <libraryjar refid="android.target.classpath" /> + + -dontpreverify + -repackageclasses '' + -allowaccessmodification + -optimizations !code/simplification/arithmetic + + <!-- + -renamesourcefileattribute SourceFile + -keepattributes SourceFile,LineNumberTable + --> + + -keepattributes *Annotation* + + -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 * extends android.view.View { + public <init>(android.content.Context); + public <init>(android.content.Context, android.util.AttributeSet); + public <init>(android.content.Context, android.util.AttributeSet, int); + public void set*(...); + } + + -keepclasseswithmembers class * { + public <init>(android.content.Context, android.util.AttributeSet); + } + + -keepclasseswithmembers class * { + public <init>(android.content.Context, android.util.AttributeSet, int); + } + + -keepclassmembers class * implements android.os.Parcelable { + static android.os.Parcelable$Creator CREATOR; + } + + -keepclassmembers class **.R$* { + public static <fields>; + } + + -keep public interface com.android.vending.licensing.ILicensingService + -dontnote com.android.vending.licensing.ILicensingService + + -keepclasseswithmembernames class * { + native <methods>; + } + + -keepclassmembers class * extends java.lang.Enum { + public static **[] values(); + public static ** valueOf(java.lang.String); + } + </proguard> + </target> + +</project> |