0% found this document useful (0 votes)
114 views2 pages

ProGuard Config for Android Devs

This document is a configuration file for ProGuard that provides instructions for optimizing and obfuscating an Android app's code. It specifies options to turn off certain optimizations that can cause issues, sets the number of optimization passes, and keeps specific parts of the code like public methods and parcelable classes to prevent breaking the app functionality.

Uploaded by

dilip kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
114 views2 pages

ProGuard Config for Android Devs

This document is a configuration file for ProGuard that provides instructions for optimizing and obfuscating an Android app's code. It specifies options to turn off certain optimizations that can cause issues, sets the number of optimization passes, and keeps specific parts of the code like public methods and parcelable classes to prevent breaking the app functionality.

Uploaded by

dilip kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

# This is a configuration file for ProGuard.

# [Link]
#
# This file is no longer maintained and is not used by new (2.2+) versions of the
# Android plugin for Gradle. Instead, the Android plugin for Gradle generates the
# default rules at build time and stores them in the build directory.

# Optimizations: If you don't want to optimize, use the


# [Link] configuration file instead of this one, which
# turns off the optimization flags. Adding optimization introduces
# certain risks, since for example not all optimizations performed by
# ProGuard works on all versions of Dalvik. The following flags turn
# off various optimizations known to have issues, but the list may not
# be complete or up to date. (The "arithmetic" optimization can be
# used if you are only targeting Android 2.0 or later.) Make sure you
# test thoroughly if you go this route.
-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!
class/merging/*
-optimizationpasses 5
-allowaccessmodification
-dontpreverify

# The remainder of this file is identical to the non-optimized version


# of the Proguard configuration file (except that the other file has
# flags to turn off optimization).

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose

-keepattributes *Annotation*
-keep public class [Link]
-keep public class [Link]

# For native methods, see


[Link]
-keepclasseswithmembernames class * {
native <methods>;
}

# keep setters in Views so that animations can still work.


# see [Link]
-keepclassmembers public class * extends [Link] {
void set*(***);
*** get*();
}

# We want to keep methods in Activity that could be used in the XML attribute
onClick
-keepclassmembers class * extends [Link] {
public void *([Link]);
}

# For enumeration classes, see


[Link]
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf([Link]);
}
-keepclassmembers class * implements [Link] {
public static final [Link]$Creator CREATOR;
}

-keepclassmembers class **.R$* {


public static <fields>;
}

# The support library contains references to newer platform versions.


# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontwarn [Link].**

# Understand the @Keep support annotation.


-keep class [Link]

-keep @[Link] class * {*;}

-keepclasseswithmembers class * {
@[Link] <methods>;
}

-keepclasseswithmembers class * {
@[Link] <fields>;
}

-keepclasseswithmembers class * {
@[Link] <init>(...);
}

You might also like