aboutsummaryrefslogtreecommitdiffstats
path: root/testapps
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2010-09-16 18:53:44 -0700
committerXavier Ducrohet <xav@android.com>2010-09-24 16:33:38 -0700
commita66ca8ad997527af0e7a07ba851da0a6d379fad0 (patch)
tree0827f8d51c3d55ecf4abc0f2b824feafdf211a4f /testapps
parent03dec99d1bc5fc418e58235c5e6dd0543b41413e (diff)
downloadsdk-a66ca8ad997527af0e7a07ba851da0a6d379fad0.zip
sdk-a66ca8ad997527af0e7a07ba851da0a6d379fad0.tar.gz
sdk-a66ca8ad997527af0e7a07ba851da0a6d379fad0.tar.bz2
Use proguard for release builds through Ant.
This is only activated if default.properties contains a property "proguard.config" with the name of a proguard config file. Some clean-up in the Ant tasks and in the name of the properties used by the rules and the custom tasks to make them clearer. Added a new test app with a project using a jar file as well as a library using a jar file. Change-Id: Ia8f4d873025993d454c0a484e61d47ae679ea79c
Diffstat (limited to 'testapps')
-rw-r--r--testapps/basicJar/build.xml10
-rw-r--r--testapps/basicJar/src/com/android/tests/basicjar/Foo.java16
-rw-r--r--testapps/basicLibWithJar/AndroidManifest.xml16
-rw-r--r--testapps/basicLibWithJar/build.properties17
-rw-r--r--testapps/basicLibWithJar/build.xml84
-rw-r--r--testapps/basicLibWithJar/default.properties12
-rw-r--r--testapps/basicLibWithJar/libs/basicJar.jarbin0 -> 2713 bytes
-rw-r--r--testapps/basicLibWithJar/res/drawable/icon.pngbin0 -> 2574 bytes
-rw-r--r--testapps/basicLibWithJar/res/layout/main.xml13
-rw-r--r--testapps/basicLibWithJar/res/values/strings.xml4
-rw-r--r--testapps/basicLibWithJar/src/com/android/tests/basiclibwithjar/Main.java21
-rw-r--r--testapps/basicProject/default.properties1
-rw-r--r--testapps/basicProjectWithJar/AndroidManifest.xml16
-rw-r--r--testapps/basicProjectWithJar/build.properties17
-rw-r--r--testapps/basicProjectWithJar/build.xml84
-rw-r--r--testapps/basicProjectWithJar/default.properties12
-rw-r--r--testapps/basicProjectWithJar/libs/basicJar.jarbin0 -> 2713 bytes
-rw-r--r--testapps/basicProjectWithJar/res/drawable/icon.pngbin0 -> 2574 bytes
-rw-r--r--testapps/basicProjectWithJar/res/layout/main.xml13
-rw-r--r--testapps/basicProjectWithJar/res/values/strings.xml4
-rw-r--r--testapps/basicProjectWithJar/src/com/android/tests/basicprojectwithjar/Main.java20
-rw-r--r--testapps/basicProjectWithLib/AndroidManifest.xml9
-rw-r--r--testapps/basicProjectWithLib/default.properties4
-rw-r--r--testapps/proguard.config31
24 files changed, 402 insertions, 2 deletions
diff --git a/testapps/basicJar/build.xml b/testapps/basicJar/build.xml
new file mode 100644
index 0000000..178e6b0
--- /dev/null
+++ b/testapps/basicJar/build.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicJar" default="compile">
+ <target name="compile">
+ <mkdir dir="${basedir}/bin" />
+ <mkdir dir="${basedir}/bin/classes" />
+ <javac encoding="ascii" target="1.5" debug="true" extdirs=""
+ srcdir="src" destdir="${basedir}/bin/classes" />
+ <jar basedir="${basedir}/bin/classes" destfile="${basedir}/bin/${ant.project.name}.jar" />
+ </target>
+</project> \ No newline at end of file
diff --git a/testapps/basicJar/src/com/android/tests/basicjar/Foo.java b/testapps/basicJar/src/com/android/tests/basicjar/Foo.java
new file mode 100644
index 0000000..6a9536f
--- /dev/null
+++ b/testapps/basicJar/src/com/android/tests/basicjar/Foo.java
@@ -0,0 +1,16 @@
+package com.android.tests.basicjar;
+
+import java.util.Random;
+
+public class Foo {
+ public static int FOO = 42;
+
+ public int getFoo() {
+ return FOO;
+ }
+
+ public int getRandomFoo() {
+ Random r = new Random(System.currentTimeMillis());
+ return r.nextInt(FOO);
+ }
+} \ No newline at end of file
diff --git a/testapps/basicLibWithJar/AndroidManifest.xml b/testapps/basicLibWithJar/AndroidManifest.xml
new file mode 100644
index 0000000..c8650f8
--- /dev/null
+++ b/testapps/basicLibWithJar/AndroidManifest.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.basiclibwithjar"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name" android:icon="@drawable/icon">
+ <activity android:name="Main"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+ <uses-sdk android:minSdkVersion="AOSP" />
+</manifest>
diff --git a/testapps/basicLibWithJar/build.properties b/testapps/basicLibWithJar/build.properties
new file mode 100644
index 0000000..ee52d86
--- /dev/null
+++ b/testapps/basicLibWithJar/build.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/basicLibWithJar/build.xml b/testapps/basicLibWithJar/build.xml
new file mode 100644
index 0000000..ea34e33
--- /dev/null
+++ b/testapps/basicLibWithJar/build.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicLib" 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 />
+
+</project>
diff --git a/testapps/basicLibWithJar/default.properties b/testapps/basicLibWithJar/default.properties
new file mode 100644
index 0000000..beef685
--- /dev/null
+++ b/testapps/basicLibWithJar/default.properties
@@ -0,0 +1,12 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-AOSP
+android.library=true
diff --git a/testapps/basicLibWithJar/libs/basicJar.jar b/testapps/basicLibWithJar/libs/basicJar.jar
new file mode 100644
index 0000000..8169064
--- /dev/null
+++ b/testapps/basicLibWithJar/libs/basicJar.jar
Binary files differ
diff --git a/testapps/basicLibWithJar/res/drawable/icon.png b/testapps/basicLibWithJar/res/drawable/icon.png
new file mode 100644
index 0000000..a07c69f
--- /dev/null
+++ b/testapps/basicLibWithJar/res/drawable/icon.png
Binary files differ
diff --git a/testapps/basicLibWithJar/res/layout/main.xml b/testapps/basicLibWithJar/res/layout/main.xml
new file mode 100644
index 0000000..b79cddb
--- /dev/null
+++ b/testapps/basicLibWithJar/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, Main"
+ />
+</LinearLayout>
+
diff --git a/testapps/basicLibWithJar/res/values/strings.xml b/testapps/basicLibWithJar/res/values/strings.xml
new file mode 100644
index 0000000..549e4ea
--- /dev/null
+++ b/testapps/basicLibWithJar/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Main</string>
+</resources>
diff --git a/testapps/basicLibWithJar/src/com/android/tests/basiclibwithjar/Main.java b/testapps/basicLibWithJar/src/com/android/tests/basiclibwithjar/Main.java
new file mode 100644
index 0000000..f973cc2
--- /dev/null
+++ b/testapps/basicLibWithJar/src/com/android/tests/basiclibwithjar/Main.java
@@ -0,0 +1,21 @@
+package com.android.tests.basiclibwithjar;
+
+import com.android.tests.basicjar.Foo;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class Main extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ Foo foo = new Foo();
+ int a = foo.getRandomFoo();
+
+ }
+}
diff --git a/testapps/basicProject/default.properties b/testapps/basicProject/default.properties
index 8ee25b8..6bd3afc 100644
--- a/testapps/basicProject/default.properties
+++ b/testapps/basicProject/default.properties
@@ -9,3 +9,4 @@
# Project target.
target=android-AOSP
+proguard.config=../proguard.config \ No newline at end of file
diff --git a/testapps/basicProjectWithJar/AndroidManifest.xml b/testapps/basicProjectWithJar/AndroidManifest.xml
new file mode 100644
index 0000000..1a2b54c
--- /dev/null
+++ b/testapps/basicProjectWithJar/AndroidManifest.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+ package="com.android.tests.basicprojectwithjar"
+ android:versionCode="1"
+ android:versionName="1.0">
+ <application android:label="@string/app_name" android:icon="@drawable/icon">
+ <activity android:name="Main"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
+ </application>
+ <uses-sdk android:minSdkVersion="AOSP" />
+</manifest>
diff --git a/testapps/basicProjectWithJar/build.properties b/testapps/basicProjectWithJar/build.properties
new file mode 100644
index 0000000..ee52d86
--- /dev/null
+++ b/testapps/basicProjectWithJar/build.properties
@@ -0,0 +1,17 @@
+# This file is used to override default values used by the Ant build system.
+#
+# This file must be checked in Version Control Systems, as it is
+# integral to the build system of your project.
+
+# This file is only used by the Ant script.
+
+# You can use this to override default values such as
+# 'source.dir' for the location of your java source folder and
+# 'out.dir' for the location of your output folder.
+
+# You can also use it define how the release builds are signed by declaring
+# the following properties:
+# 'key.store' for the location of your keystore and
+# 'key.alias' for the name of the key to use.
+# The password will be asked during the build when you use the 'release' target.
+
diff --git a/testapps/basicProjectWithJar/build.xml b/testapps/basicProjectWithJar/build.xml
new file mode 100644
index 0000000..3503448
--- /dev/null
+++ b/testapps/basicProjectWithJar/build.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project name="basicProjectWithJar" 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 />
+
+</project>
diff --git a/testapps/basicProjectWithJar/default.properties b/testapps/basicProjectWithJar/default.properties
new file mode 100644
index 0000000..38db660
--- /dev/null
+++ b/testapps/basicProjectWithJar/default.properties
@@ -0,0 +1,12 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system use,
+# "build.properties", and override values to adapt the script to your
+# project structure.
+
+# Project target.
+target=android-AOSP
+proguard.config=../proguard.config
diff --git a/testapps/basicProjectWithJar/libs/basicJar.jar b/testapps/basicProjectWithJar/libs/basicJar.jar
new file mode 100644
index 0000000..8169064
--- /dev/null
+++ b/testapps/basicProjectWithJar/libs/basicJar.jar
Binary files differ
diff --git a/testapps/basicProjectWithJar/res/drawable/icon.png b/testapps/basicProjectWithJar/res/drawable/icon.png
new file mode 100644
index 0000000..a07c69f
--- /dev/null
+++ b/testapps/basicProjectWithJar/res/drawable/icon.png
Binary files differ
diff --git a/testapps/basicProjectWithJar/res/layout/main.xml b/testapps/basicProjectWithJar/res/layout/main.xml
new file mode 100644
index 0000000..b79cddb
--- /dev/null
+++ b/testapps/basicProjectWithJar/res/layout/main.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="vertical"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ >
+<TextView
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:text="Hello World, Main"
+ />
+</LinearLayout>
+
diff --git a/testapps/basicProjectWithJar/res/values/strings.xml b/testapps/basicProjectWithJar/res/values/strings.xml
new file mode 100644
index 0000000..549e4ea
--- /dev/null
+++ b/testapps/basicProjectWithJar/res/values/strings.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="app_name">Main</string>
+</resources>
diff --git a/testapps/basicProjectWithJar/src/com/android/tests/basicprojectwithjar/Main.java b/testapps/basicProjectWithJar/src/com/android/tests/basicprojectwithjar/Main.java
new file mode 100644
index 0000000..fdcc019
--- /dev/null
+++ b/testapps/basicProjectWithJar/src/com/android/tests/basicprojectwithjar/Main.java
@@ -0,0 +1,20 @@
+package com.android.tests.basicprojectwithjar;
+
+import com.android.tests.basicjar.Foo;
+
+import android.app.Activity;
+import android.os.Bundle;
+
+public class Main extends Activity
+{
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ Foo foo = new Foo();
+ int a = foo.getRandomFoo();
+ }
+}
diff --git a/testapps/basicProjectWithLib/AndroidManifest.xml b/testapps/basicProjectWithLib/AndroidManifest.xml
index fe394f2..052d387 100644
--- a/testapps/basicProjectWithLib/AndroidManifest.xml
+++ b/testapps/basicProjectWithLib/AndroidManifest.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.tests.basicProjectWithLib"
+ package="com.android.tests.basicprojectwithlib"
android:versionCode="1"
android:versionName="1.0">
<application android:label="@string/app_name" android:icon="@drawable/icon">
@@ -11,6 +11,13 @@
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
+ <activity android:name="com.android.tests.basiclibwithjar.Main"
+ android:label="@string/app_name">
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+ </activity>
</application>
<uses-sdk android:minSdkVersion="AOSP" />
</manifest>
diff --git a/testapps/basicProjectWithLib/default.properties b/testapps/basicProjectWithLib/default.properties
index eb80ff8..60423bf 100644
--- a/testapps/basicProjectWithLib/default.properties
+++ b/testapps/basicProjectWithLib/default.properties
@@ -9,4 +9,6 @@
# Project target.
target=android-AOSP
-android.library.reference.1=../basicLib \ No newline at end of file
+proguard.config=../proguard.config
+android.library.reference.1=../basicLib
+android.library.reference.2=../basicLibWithJar \ No newline at end of file
diff --git a/testapps/proguard.config b/testapps/proguard.config
new file mode 100644
index 0000000..b9dab40
--- /dev/null
+++ b/testapps/proguard.config
@@ -0,0 +1,31 @@
+-optimizationpasses 5
+-dontusemixedcaseclassnames
+-dontskipnonpubliclibraryclasses
+-dontpreverify
+-verbose
+-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
+
+-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 <methods>;
+}
+
+-keepclasseswithmembernames class * {
+ public <init>(android.content.Context, android.util.AttributeSet);
+}
+
+-keepclasseswithmembernames class * {
+ public <init>(android.content.Context, android.util.AttributeSet, int);
+}
+
+-keepclassmembers enum * {
+ public static **[] values();
+ public static ** valueOf(java.lang.String);
+}
+