如何生成Android項目的jar包以及jar包的混淆

1.在建立完Android項目後,選擇export ->java->JAR file
除了src中的代碼,其他的都不要勾上勾選如下圖然後一直next到finish

2.打開Android_SDK\tools\proguard\bin路徑下proguardgui.bat批處理文件,這是批處理界面,如果你有.cfg
文件那就直接load configuration,如果沒有可以編輯一個文檔,然後改後綴名,下面的配置參數是可以直接複製到你自己文件中的,這樣的好處就在於:你不需要一步一步的去配置下面的參數,直接導入cfg文件,然後點最後一步,process就可以生成混淆後的jar包了,cfg文件格式爲:

-injars testexport.jar【jar包所在地址】
-outjars out【輸出地址】
-libraryjars ‘D:\progream file\Android_SDK\platforms\android-10\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 *;
}

添加先前生成的testexport.jar添加先前生成的testexport.jar,和添加自己命名一個輸出的jar文件,添加library Android_SDK\platforms\android-10目錄下的Android.jar
3.點擊process,你可以將你自己新改掉的cfg文件重新save configuration,然後process,你將會在你output目錄下發現你的混淆後的jar包,
4,最後一步,就是使用java Decompiler進行查看一下你自己的jar是否混淆成功。
混淆後的代碼

另:
在點擊process混洗時可能會報出warning,如果報了,最直接的方法是先保持整個類的完整不混淆,然後再看是否可以。混淆過的jar包也可以重新新建一個library項目給別的Android項目使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章