1ï¼android studio 1.3ä¹åççæ¬å°±æ²¡æGenerate Signed APK âRun ProGuard è¿ä¸ªé项äºï¼
è¦å¨build.grandle æ minifyEnabled æ¹æTure å°±å¯ä»¥äºï¼
minifyEnabled true
ä¸é¢æ¯æ使ç¨ç代ç ï¼
#æå®ä»£ç çå缩级å«
-optimizationpasses 5
#å
æä¸æ··å大å°å
-dontusemixedcaseclassnames
#ä¸å»å¿½ç¥éå
Œ
±çåºç±»
-dontskipnonpubliclibraryclasses
#ä¼å ä¸ä¼åè¾å
¥çç±»æ件
-dontoptimize
#é¢æ ¡éª
-dontpreverify
#æ··æ·æ¶æ¯å¦è®°å½æ¥å¿
-verbose
# æ··æ·æ¶æéç¨çç®æ³
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
#ä¿æ¤æ³¨è§£
-keepattributes *Annotation*
# ä¿æåªäºç±»ä¸è¢«æ··æ·
#-keep public class * extends android.app.Fragment
#å¦ææå¼ç¨v4å
å¯ä»¥æ·»å ä¸é¢è¿è¡
-keep public class * extends android.support.v4.app.Fragment
#忽ç¥è¦å
-ignorewarning
#####################è®°å½çæçæ¥å¿æ°æ®,gradle buildæ¶å¨æ¬é¡¹ç®æ ¹ç®å½è¾åº################
#apk å
å
ææ class çå
é¨ç»æ
-dump class_files.txt
#æªæ··æ·çç±»åæå
-printseeds seeds.txt
#ååºä» apk ä¸å é¤ç代ç
-printusage unused.txt
#æ··æ·ååçæ å°
-printmapping mapping.txt
#####################è®°å½çæçæ¥å¿æ°æ®ï¼gradle buildæ¶ å¨æ¬é¡¹ç®æ ¹ç®å½è¾åº-end################
################æ··æ·ä¿æ¤èªå·±é¡¹ç®çé¨å代ç 以åå¼ç¨ç第ä¸æ¹jarå
library#########################
#-libraryjars libs/xUtils-2.6.14.jar
#-libraryjars libs/alipaysdk.jar
#-libraryjars libs/alipaysecsdk.jar
#-libraryjars libs/alipayutdid.jar
#-libraryjars libs/wup-1.0.0-SNAPSHOT.jar
#-libraryjars libs/weibosdkcore.jar
#ä¸æåºç¨å¸åºéè¦æ·»å :sdk-v1.0.0.jar,look-v1.0.1.jar
#-libraryjars libs/sdk-v1.0.0.jar
#-libraryjars libs/look-v1.0.1.jar
#ææ¯ä»¥libarayçå½¢å¼å¼ç¨äºä¸ä¸ªå¾çå è½½æ¡æ¶,å¦æä¸æ³æ··æ· keep æ
-keep class com.nostra13.universalimageloader.** { *; }
#忽ç¥è¦å
-dontwarn com.veidy.mobile.common.**
#ä¿çä¸ä¸ªå®æ´çå
-keep class com.veidy.mobile.common.** {
*;
}
#å¦æå¼ç¨äºv4æè
v7å
-dontwarn android.support.**
############æ··æ·ä¿æ¤èªå·±é¡¹ç®çé¨å代ç 以åå¼ç¨ç第ä¸æ¹jarå
library-end##################
#-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*(...);
#}
#ä¿æ native æ¹æ³ä¸è¢«æ··æ·
-keepclasseswithmembernames class * {
native <methods>;
}
#ä¿æèªå®ä¹æ§ä»¶ç±»ä¸è¢«æ··æ·
#-keepclasseswithmembers class * {
# public <init>(android.content.Context, android.util.AttributeSet);
#}
#ä¿æèªå®ä¹æ§ä»¶ç±»ä¸è¢«æ··æ·
#-keepclasseswithmembers class * {
# public <init>(android.content.Context, android.util.AttributeSet, int);
#}
#ä¿æèªå®ä¹æ§ä»¶ç±»ä¸è¢«æ··æ·
#-keepclassmembers class * extends android.app.Activity {
# public void *(android.view.View);
#}
#ä¿æ Parcelable ä¸è¢«æ··æ·
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
#ä¿æ Serializable ä¸è¢«æ··æ·
-keepnames class * implements java.io.Serializable
#ä¿æ Serializable ä¸è¢«æ··æ·å¹¶ä¸enum ç±»ä¹ä¸è¢«æ··æ·
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient <fields>;
!private <fields>;
!private <methods>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
#ä¿ææ举 enum ç±»ä¸è¢«æ··æ· å¦ææ··æ·æ¥éï¼å»ºè®®ç´æ¥ä½¿ç¨ä¸é¢ç -keepclassmembers class * implements java.io.Serializableå³å¯
#-keepclassmembers enum * {
# public static **[] values();
# public static ** valueOf(java.lang.String);
#}
-keepclassmembers class * {
public void *ButtonClicked(android.view.View);
}
#ä¸æ··æ·èµæºç±»
-keepclassmembers class **.R$* {
public static <fields>;
}
#é¿å
æ··æ·æ³å å¦ææ··æ·æ¥é建议å
³æ
#âkeepattributes Signature
#移é¤log æµè¯äºä¸æ²¡æç¨è¿æ¯å»ºè®®èªå·±å®ä¹ä¸ä¸ªå¼å
³æ§å¶æ¯å¦è¾åºæ¥å¿
-assumenosideeffects class android.util.Log {
public static boolean isLoggable(java.lang.String, int);
public static int v(...);
public static int i(...);
public static int w(...);
public static int d(...);
public static int e(...);
}
温馨提示:答案为网友推荐,仅供参考