Proguard.cfg 配置



    •    -optimizationpasses 5 //代码混淆压缩比 默认为5 一般不需要改 -dontusemixedcaseclassnames //混淆后的类名为小写  如public class a     
    • -dontskipnonpubliclibraryclasses //混淆第三方  库  加上此句后 可再后面配置某些库不混淆 -dontpreverify // 混淆前认证,可去掉加快混淆速度
    •  -verbose //混淆的log 帮助排错
    • -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  //代码混淆采用的算法,一般不改变,用谷歌推荐算即可
    • -keepattributes *Annotation* 假如项目中有用到注解 应用加入
    •    引用外部的jar包 如果不是自己写的 最好不混淆它们,因为外部jar包有可能已经混淆过,根据实际情况来 不混淆某些外部jar
       保持外部jar包不变的方法
    -dontwarn android.support.v4.** //执行下面一行代码如果有警告也不用中止,因为此jar不是我们自己写的,有警告也不处理,故dontwarn
    -keep class android.support.v4.** //项目中用到此jar包,在打包时必须不混淆,否则用ViewPager时必crash,原因很简单,ViewPager是一个自定义view,在布局中用类的全名来
    定义此布局,混淆后类名和包名改变,xml布局无法再通过类名打到此自定义view 
    
    如果你的项目中用到了webview的复杂操作 
    加入此两行代码
    -keepclassmembers class * extends android.webkit.WebViewClient {
         public void *(android.webkit.WebView,java.lang.String,android.graphics.Bitmap);
         public boolean *(android.webkit.WebView,java.lang.String);
    }
    
    -keepclassmembers class * extends android.webkit.WebChromeClient {
         public void *(android.webkit.WebView,java.lang.String);
    }
    
    
    
    经过实战检验,做腾讯QQ登录,如果引用他们提供的jar,若不加防止WebChromeClient混淆的代码,oauth认证无法回调,反编译基代码后可看到他们有用到WebChromeClient,加入此代码即可,
    不过还是建议不要用他们提供的jar包做oauth认证,至于为啥,不解释
    正常开发 系统默认的混淆再加上以上基本的混淆即可满足,更多需求还需要去阅文档
    用到了anroid支持包加入
    -libraryjars   libs/android-support-v4.jar
    -dontwarn android.support.v4.**    
    -keep class android.support.v4.** { *; }  
    -keep interface android.support.v4.app.** { *; }  
    -keep public class * extends android.support.v4.**  
    -keep public class * extends android.app.Fragment
       -optimizationpasses 5 //代码混淆压缩比 默认为5 一般不需要改 -dontusemixedcaseclassnames //混淆后的类名为小写  如public class a     
  • -dontskipnonpubliclibraryclasses //混淆第三方  库  加上此句后 可再后面配置某些库不混淆 -dontpreverify // 混淆前认证,可去掉加快混淆速度
  •  -verbose //混淆的log 帮助排错
  • -optimizations !code/simplification/arithmetic,!field/*,!class/merging/*  //代码混淆采用的算法,一般不改变,用谷歌推荐算即可
  • -keepattributes *Annotation* 假如项目中有用到注解 应用加入
  •    引用外部的jar包 如果不是自己写的 最好不混淆它们,因为外部jar包有可能已经混淆过,根据实际情况来 不混淆某些外部jar
   保持外部jar包不变的方法
-dontwarn android.support.v4.** //执行下面一行代码如果有警告也不用中止,因为此jar不是我们自己写的,有警告也不处理,故dontwarn
-keep class android.support.v4.** //项目中用到此jar包,在打包时必须不混淆,否则用ViewPager时必crash,原因很简单,ViewPager是一个自定义view,在布局中用类的全名来
定义此布局,混淆后类名和包名改变,xml布局无法再通过类名打到此自定义view 

如果你的项目中用到了webview的复杂操作 
加入此两行代码
-keepclassmembers class * extends android.webkit.WebViewClient {
     public void *(android.webkit.WebView,java.lang.String,android.graphics.Bitmap);
     public boolean *(android.webkit.WebView,java.lang.String);
}

-keepclassmembers class * extends android.webkit.WebChromeClient {
     public void *(android.webkit.WebView,java.lang.String);
}



经过实战检验,做腾讯QQ登录,如果引用他们提供的jar,若不加防止WebChromeClient混淆的代码,oauth认证无法回调,反编译基代码后可看到他们有用到WebChromeClient,加入此代码即可,
不过还是建议不要用他们提供的jar包做oauth认证,至于为啥,不解释
正常开发 系统默认的混淆再加上以上基本的混淆即可满足,更多需求还需要去阅文档
用到了anroid支持包加入
-libraryjars   libs/android-support-v4.jar
-dontwarn android.support.v4.**    
-keep class android.support.v4.** { *; }  
-keep interface android.support.v4.app.** { *; }  
-keep public class * extends android.support.v4.**  
-keep public class * extends android.app.Fragment
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在 IDEA 中集成 ProGuard,可以按照以下步骤进行操作: 1. 下载 ProGuard 的最新版本,并将其解压缩到某个文件夹下。 2. 打开 IDEA,选择 File -> Project Structure。 3. 在左侧菜单中选择 Modules,然后选择您要保护的模块。 4. 单击 Dependencies 选项卡,然后单击加号按钮,选择 JARs or directories。 5. 在弹出的对话框中选择您要保护的 JAR 文件或目录,然后单击 OK。 6. 在模块的根目录下创建一个名为 proguard.cfg 的文件。 7. 将以下代码添加到 proguard.cfg 文件中: ``` -injars <path to input jar file> -outjars <path to output jar file> -libraryjars <path to Java runtime library> -dontoptimize -dontshrink ``` 其中,`<path to input jar file>` 是您要保护的 JAR 文件的路径,`<path to output jar file>` 是保护后输出的 JAR 文件的路径,`<path to Java runtime library>` 是 Java 运行时库的路径。 8. 在 IDEA 中选择 Run -> Edit Configurations,然后单击加号按钮创建一个新的运行配置。 9. 在弹出的对话框中选择 Application。 10. 在 Configuration 标签页中,选择您要保护的模块。 11. 在 VM options 栏中添加以下代码: ``` -javaagent:<path to ProGuard jar file>=<path to proguard.cfg file> ``` 其中,`<path to ProGuard jar file>` 是 ProGuard 的 JAR 文件路径,`<path to proguard.cfg file>` 是 proguard.cfg 文件的路径。 12. 单击 OK 保存配置,然后单击 Run 运行您的应用程序。 这样,就可以在 IDEA 中集成 ProGuard 了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值