androidå·¥ç¨ä¼çå°é¡¹ç®æ
project.properties è¿ä¸ªæ件就æ¯ç¨æ¥å¼å¯é¡¹ç®æ¯å¦æ··æ·
proguard-project.txt è¿ä¸ªæ件就æ¯è®°å½äºä»£ç æ··æ·çå±æ§
è¦å¼å¯æ··æ·,åªéè¦å°project.properties æ件ä¸ç
# proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txtâçâ#âå»æå°±å¯ä»¥äºã
å ³äºproguard-project.tx æ··æ·çå±æ§:
é常æ åµä¸ï¼æ们åªéè¦ä½ä»¥ä¸å æ¥æä½å°±è½æ»¡è¶³éæ±ï¼å¦ææä¸äºç¹æ®è¦æ±ï¼æäºç±»æè jarå ä¸éè¦æ··æ·ï¼è¿ä¸ªæ¶åå°±éè¦ä¿®æ¹proguard-project.txtæ件äºã以ä¸æ¯ç½ä¸æç´¢çç½åå享çç»éªï¼
1.å¨proguard-project.txtæ件ä¸æ·»å ä¸éè¦æ··æ·çç±»å第ä¸æ¹çjarå
è¿ä¸ªæ¯ä¿æèªå·±å ä¸ä¸éè¦æ··æ·çç±»ï¼å¦ææäºç±»è°ç¨äºjniä¹ä¸éè¦æ··æ·ï¼ä¸ç¶ä¼åºéãè¿æå¦æ项ç®ä¸æå ¶ä»é¡¹ç®ä½ä¸ºlibraryå¼å ¥ï¼é£è¿äºé¡¹ç®çä¸äºç±»ä¹ä¸è½æ··æ·ã
è¿ä¸ªæ¯ä¿æ项ç®ä¸ç第ä¸æ¹jarä¸æ··æ·
å¦å¤å ä¸ä¸é¢å å¥è¯ï¼ä¸ç¶ä¼å¨æ§å¶å°ä¸æ¥warningè¦å
2.å¦å¤è¿æå ¶ä»ä¸äºç»éªï¼
-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 * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keep public abstract interface com.asqw.android.Listener{
public protected <methods>; ãæææ¹æ³ä¸è¿è¡æ··æ·ã
}
-keep public class com.asqw.android{
public void Start(java.lang.String); ã对该æ¹æ³ä¸è¿è¡æ··æ·ã
}
-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);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {ãä¿æ¤æå®çç±»æ件åç±»çæåã
public static final android.os.Parcelable$Creator *;
}