
Former-commit-id: c2472d32726924a6f431c1fc5cf223e68e91045c Former-commit-id: 9afa79003e882347a41e1f187d13ef45c5113089
178 lines
6.8 KiB
XML
178 lines
6.8 KiB
XML
<?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>
|