android 混淆jar 或者library混淆

时间:2022-07-17 16:44:19
</pre><pre>

1.到你的sdk目录找一个.pro文件(我的目录

D:\eclipse_google\adt-bundle-windows-x86-20131030\sdk\tools\proguard\examples)随便

复制到一个目录我将复制的.pro名称修改为test.pro(我桌面的test\before\text.pro

android 混淆jar 或者library混淆

解释下四个文件夹:after是我jar混淆后的输出目录,第二个文件夹不解释,before是存放混淆之前的Text.jar和pro文件;注意:lib是我的jar需要的一些依赖jar

2. 使用记事本打开test.pro添加如下混淆规则

代码片段:<pre>
-injars before\Test.jar-outjars after\Test.jar//添加支持的jar-libraryjars before\test\android-support-v4.jar    //必需-libraryjars before\test\android.jar                        //必需-libraryjars before\test\xxx.jar               //此处为Test.jar需要的依赖jar-libraryjars before\test\xxx.jar-allowaccessmodification-overloadaggressively-repackageclasses ''# The entry point: ProGuard and its main method.-keep public class proguard.ProGuard {    public static void main(java.lang.String[]);}//android相关的组件不能混淆-keep public class * extends android.app.Activity-keep public class * extends android.app.Application-keep public class * extends android.app.Service// jar提供调用者的方法和属性不做混淆start-keep class com.cn.tiankong.ReaderExtra {    public <fields>;    public static final <methods>;}-keep class com.cn.tiankong.MyClass2{    public private protected <fields>;    public <methods>;}-keep class com.cn.tiankong.MyClass3{    public <fields>;    public <methods>;}-keep class com.cn.tiankong.Ulitily {    public <fields>;    public <methods>;}// jar提供调用者的方法和属性不做混淆end# Also keep - Enumerations. Keep the special static methods that are required in# enumeration classes.-keepclassmembers enum  * {    public static **[] values();    public static ** valueOf(java.lang.String);}// native方法不做混淆# Keep names - Native method names. Keep all native class/method names.-keepclasseswithmembers,allowshrinking class * {    native <methods>;}



注意:去掉中文注释

3. 找到proguardgui.bat(我的目录

D:\eclipse_google\adt-bundle-windows-x86-20131030\sdk\tools\proguard\bin)双击打开

android 混淆jar 或者library混淆

4.点击 Load configration选择你的test.pro

android 混淆jar 或者library混淆

5.检查Input/Output(混淆前和混淆后路径是否正确)添加项目依赖jar

android 混淆jar 或者library混淆


6.检查修改添加编辑不做混淆的类

android 混淆jar 或者library混淆


7.如果没有什么特殊的配置就可以一直下一步到Process

android 混淆jar 或者library混淆


8.将混淆后的jar使用jd-gui打开如下

android 混淆jar 或者library混淆


9.jar导入项目测试是否正常运行,如果保错或者闪退,请根据log异常信息定位查看是否提供给调用者的方法或类被混淆了,如果是请修改pro文件按上面的再次混淆