GoogleËÆºõÒ²·¢ÏÖÁËÕâ¸öÎÊÌ⣬´ÓSDK2.3¿ªÊ¼ÎÒÃÇ¿ÉÒÔ¿´µ½ÔÚandroid-sdk-windows\tools\ÏÂÃæ¶àÁËÒ»¸öproguardÎļþ¼Ð
proguardÊÇÒ»¸öjava´úÂë»ìÏýµÄ¹¤¾ß£¬Í¨¹ýproguard£¬±ðÈ˼´Ê¹·´±àÒëÄãµÄapk°ü£¬Ò²Ö»»á¿´µ½Ò»Ð©ÈÃÈ˺ÜÄÑ¿´¶®µÄ´úÂ룬´Ó¶ø´ïµ½±£»¤´úÂëµÄ×÷Óá£
ÔÚ¹¤³ÌµÄ"default.properties"ÖÐÌí¼ÓÕâÑùÒ»¾ä»°¡°proguard.config=proguard.cfg¡±
´ò°üÇ©ÃûºóµÄ.apk¾ÍÊÇ»ìÏýµÄ£¬ÆäʵÎÒÃÇÖ»Òª×öÒ»²½¾Í¿ÉÒÔÁ˾ÍÊÇÔÚ"default.properties"ÖÐÌí¼ÓÕâÑùÒ»¾ä»°¡°proguard.config=proguard.cfg¡±¾Í¿ÉÒÔÁË¡£
Èç¹ûÏëÒª¸ü¼Ó¸´ÔӵػìÏý´úÂ룬¿ÉÒÔÏêϸµØ¶Ô¸ÃÎļþ½øÐÐÅäÖÃ.
ÓÉÓÚapkÊÇAndroidÐéÄâ»ú¼ÓÔØµÄ£¬ËüÓÐÒ»¶¨µÄ¹æ·¶£¬¼ÓÃÜapkºóDalvikÎÞ·¨Ê¶±ðapkÁË¡£ÍêÈ«±ÜÃâÊDz»¿ÉÄܵģ¬×ÜÓÐÈËÄܹ»ÆÆ½âÄãµÄ´úÂë¡£µ«ÊÇÓм¸ÖÖ·½Ê½À´Ìá¸ß±»·´±àÒëÈ¡´úÂëµÄÄѶÈ:
1 ¹Ø¼ü´úÂëʹÓÃjniµ÷Óñ¾µØ´úÂ룬ÓÃc»òÕßc++±àд£¬Òò´ËÏà¶Ô±È½ÏÄÑÓÚ·´±àÒë
2 »ìÏýjava´úÂë¡£»ìÏýÊDz»¸Ä±ä´úÂëÂß¼µÄÇé¿öÏ£¬Ôö¼ÓÎÞÓôúÂ룬»òÕßÖØÃüÃû£¬Ê¹·´±àÒëºóµÄÔ´´úÂëÄÑÓÚ¿´¶®¡£
ÍøÉÏ¿ªÔ´µÄjava´úÂë»ìÏý¹¤¾ß½Ï¶à£¬Ò»°ãÊÇÓÃantµÄ·½Ê½À´±àÒëµÄ
android »ìÏýÎļþproguard.cfgÏê½â:
-injars androidtest.jar¡¾jar°üËùÔÚµØÖ·¡¿
-outjars out¡¾Êä³öµØÖ·¡¿
-libraryjars 'D:\android-sdk-windows\platforms\android-9\android.jar' ¡¾ÒýÓõĿâµÄjar£¬ÓÃÓÚ½âÎöinjarsËùÖ¸¶¨µÄjarÀà¡¿
-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 ; ¡¾ËùÓз½·¨²»½øÐлìÏý¡¿
}
-keep public class com.asqw.android{
public void Start(java.lang.String); ¡¾¶Ô¸Ã·½·¨²»½øÐлìÏý¡¿
}
-keepclasseswithmembernames class * { ¡¾±£»¤Ö¸¶¨µÄÀàºÍÀàµÄ³ÉÔ±µÄÃû³Æ£¬Èç¹ûËùÓÐÖ¸¶¨µÄÀà³ÉÔ±³öϯ£¨ÔÚѹËõ²½ÖèÖ®ºó£©¡¿
native ;
}
-keepclasseswithmembers class * { ¡¾±£»¤Ö¸¶¨µÄÀàºÍÀàµÄ³ÉÔ±£¬µ«Ìõ¼þÊÇËùÓÐÖ¸¶¨µÄÀàºÍÀà³ÉÔ±ÊÇÒª´æÔÚ¡£¡¿
public (android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembers class * {
public (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 *;
}