From a66ca8ad997527af0e7a07ba851da0a6d379fad0 Mon Sep 17 00:00:00 2001 From: Xavier Ducrohet Date: Thu, 16 Sep 2010 18:53:44 -0700 Subject: 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 --- testapps/basicJar/build.xml | 10 +++ .../src/com/android/tests/basicjar/Foo.java | 16 ++++ testapps/basicLibWithJar/AndroidManifest.xml | 16 ++++ testapps/basicLibWithJar/build.properties | 17 +++++ testapps/basicLibWithJar/build.xml | 84 +++++++++++++++++++++ testapps/basicLibWithJar/default.properties | 12 +++ testapps/basicLibWithJar/libs/basicJar.jar | Bin 0 -> 2713 bytes testapps/basicLibWithJar/res/drawable/icon.png | Bin 0 -> 2574 bytes testapps/basicLibWithJar/res/layout/main.xml | 13 ++++ testapps/basicLibWithJar/res/values/strings.xml | 4 + .../com/android/tests/basiclibwithjar/Main.java | 21 ++++++ testapps/basicProject/default.properties | 1 + testapps/basicProjectWithJar/AndroidManifest.xml | 16 ++++ testapps/basicProjectWithJar/build.properties | 17 +++++ testapps/basicProjectWithJar/build.xml | 84 +++++++++++++++++++++ testapps/basicProjectWithJar/default.properties | 12 +++ testapps/basicProjectWithJar/libs/basicJar.jar | Bin 0 -> 2713 bytes testapps/basicProjectWithJar/res/drawable/icon.png | Bin 0 -> 2574 bytes testapps/basicProjectWithJar/res/layout/main.xml | 13 ++++ .../basicProjectWithJar/res/values/strings.xml | 4 + .../android/tests/basicprojectwithjar/Main.java | 20 +++++ testapps/basicProjectWithLib/AndroidManifest.xml | 9 ++- testapps/basicProjectWithLib/default.properties | 4 +- testapps/proguard.config | 31 ++++++++ 24 files changed, 402 insertions(+), 2 deletions(-) create mode 100644 testapps/basicJar/build.xml create mode 100644 testapps/basicJar/src/com/android/tests/basicjar/Foo.java create mode 100644 testapps/basicLibWithJar/AndroidManifest.xml create mode 100644 testapps/basicLibWithJar/build.properties create mode 100644 testapps/basicLibWithJar/build.xml create mode 100644 testapps/basicLibWithJar/default.properties create mode 100644 testapps/basicLibWithJar/libs/basicJar.jar create mode 100644 testapps/basicLibWithJar/res/drawable/icon.png create mode 100644 testapps/basicLibWithJar/res/layout/main.xml create mode 100644 testapps/basicLibWithJar/res/values/strings.xml create mode 100644 testapps/basicLibWithJar/src/com/android/tests/basiclibwithjar/Main.java create mode 100644 testapps/basicProjectWithJar/AndroidManifest.xml create mode 100644 testapps/basicProjectWithJar/build.properties create mode 100644 testapps/basicProjectWithJar/build.xml create mode 100644 testapps/basicProjectWithJar/default.properties create mode 100644 testapps/basicProjectWithJar/libs/basicJar.jar create mode 100644 testapps/basicProjectWithJar/res/drawable/icon.png create mode 100644 testapps/basicProjectWithJar/res/layout/main.xml create mode 100644 testapps/basicProjectWithJar/res/values/strings.xml create mode 100644 testapps/basicProjectWithJar/src/com/android/tests/basicprojectwithjar/Main.java create mode 100644 testapps/proguard.config (limited to 'testapps') 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 @@ + + + + + + + + + \ 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 @@ + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 Binary files /dev/null and b/testapps/basicLibWithJar/libs/basicJar.jar differ diff --git a/testapps/basicLibWithJar/res/drawable/icon.png b/testapps/basicLibWithJar/res/drawable/icon.png new file mode 100644 index 0000000..a07c69f Binary files /dev/null and b/testapps/basicLibWithJar/res/drawable/icon.png 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 @@ + + + + + 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 @@ + + + Main + 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 @@ + + + + + + + + + + + + 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 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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 Binary files /dev/null and b/testapps/basicProjectWithJar/libs/basicJar.jar differ diff --git a/testapps/basicProjectWithJar/res/drawable/icon.png b/testapps/basicProjectWithJar/res/drawable/icon.png new file mode 100644 index 0000000..a07c69f Binary files /dev/null and b/testapps/basicProjectWithJar/res/drawable/icon.png 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 @@ + + + + + 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 @@ + + + Main + 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 @@ @@ -11,6 +11,13 @@ + + + + + + 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 ; +} + +-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); +} + -- cgit v1.1