# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt# Project target.target=android-10
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
以下则个是我们项目混淆的个性化配置文件proguard-project.txt# This is a configuration file for ProGuard. # http://proguard.sourceforge.net/index.html#manual/usage.html -dontusemixedcaseclassnames -dontskipnonpubliclibraryclasses -verbose # Optimization is turned off by default. Dex does not like code run # through the ProGuard optimize and preverify steps (and performs some # of these optimizations on its own). -dontoptimize -dontpreverify # Note that if you want to enable optimization, you cannot just # include optimization flags in your own project configuration file; # instead you will need to point to the # "proguard-android-optimize.txt" file instead of this one from your # project.properties file. -keepattributes *Annotation* -keep public class com.google.vending.licensing.ILicensingService -keep public class com.android.vending.licensing.ILicensingService # For native methods, see http://proguard.sourceforge.net/manual/examples.html#native -keepclasseswithmembernames class * { native <methods>; } # keep setters in Views so that animations can still work. # see http://proguard.sourceforge.net/manual/examples.html#beans -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } # We want to keep methods in Activity that could be used in the XML attribute onClick -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } # For enumeration classes, see http://proguard.sourceforge.net/manual/examples.html#enumerations -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$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 android.support.**
注:由于牵扯到保密的问题,一些关于项目的东西换成了edu.edut或edu.edut.robin# To enable ProGuard in your project, edit project.properties # to define the proguard.config property as described in that file. # # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in ${sdk.dir}/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the ProGuard # include property in project.properties. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} -dontwarn android.** -dontwarn edu.edut.lsf.payment.link.** -libraryjars ..\Download_Install\lib\classes.jar -keep class org.jboss.netty.util.internal.AtomicFieldUpdaterUtil -keep class org.jboss.netty.util.internal.AtomicFieldUpdaterUtil$Node -keep class org.jboss.netty.util.internal.LinkedTransferQueue$Node -keep class edu.edut.robin.activities.LeWebJsActivity$AppStoreInterface -keepclasseswithmembers class * { public static void main(java.lang.String[]); } -keepclasseswithmembers class org.jboss.netty.util.internal.AtomicFieldUpdaterUtil$Node { *; } -keepclasseswithmembers class edu.edut.robin.activities.LeWebActionActivity$AppstoreWebInterface { *; } -keepclasseswithmembers class edu.edut.robin.utils.SilentInstallAssistant$* { *; } -keepclasseswithmembers class edu.edut.robin.silentinstaller.utils.SilentInstallAssistant$* { *; } -keepclasseswithmembers class edu.edut.robin.utils.Pm$* { *; } -keepclasseswithmembers class org.jboss.netty.util.internal.LinkedTransferQueue { volatile transient org.jboss.netty.util.internal.LinkedTransferQueue$Node head; volatile transient org.jboss.netty.util.internal.LinkedTransferQueue$Node tail; volatile transient int sweepVotes; } -keepclasseswithmembers class org.jboss.netty.util.internal.LinkedTransferQueue$Node { *; } -keepclasseswithmembers class edu.edut.robin.activities.LeWebJsActivity$AppStoreInterface { *; } -keepclasseswithmembers class * extends edu.edut.lsf.payment.WebSubmitInterface { *; } -keepclasseswithmembers class edu.edut.lsf.payment.WebSubmitInterface { *; } -keep public class com.unionpay.** {*; } -keep public class edu.edut.lsf.** {*; }