Android代码混淆

作者: ryanxun | 来源:发表于2021-04-13 16:04 被阅读0次
嘿,今天的你过的还好吗

代码混淆,此处是为了防止被反编译apk直接知晓你得代码和源文件,可怕不.你想一下,辛辛苦苦几个月的代码,让你一小时就搞到了源码,刺激不
关于怎么反编译,emmm,大把的教程等着你,我这里就不多说了,接下来开始正题!!!

首先找到你项目文件中的proguard-rules.pro文件

image.png

他就是需要你编写混淆代码的文件

当然,光知道在哪里写也没用,你还的引用

image.png

引用完成后,那你的代码就可以被混淆了,需要配置混淆文件,混淆的参数比较多,我百度贴出来

-optimizationpasses 5                                                           # 指定代码的压缩级别  
-dontusemixedcaseclassnames                                                     # 是否使用大小写混合  
-dontskipnonpubliclibraryclasses                                                # 是否混淆第三方jar  
-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              # 保持哪些类不被混淆  
  
-keepclasseswithmembernames class * {                                           # 保持 native 方法不被混淆  
    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 * {                                                      # 保持枚举 enum 类不被混淆  
    public static **[] values();  
    public static ** valueOf(java.lang.String);  
}  
  
-keep class * implements android.os.Parcelable {                                # 保持 Parcelable 不被混淆  
  public static final android.os.Parcelable$Creator *;  
}  
  
-keep class MyClass;                                                            # 保持自己定义的类不被混淆  

简单直接,基本所有项目都需要这些基本混淆的.但是这些一定是不够的.有一些第三方资源会有问题.一般第三方光放都会告诉怎么混淆.照葫芦画瓢就完了

image.png

这个要改为true

没更新动态或者频繁更新动态的时候都是在认真生活

相关文章

  • ProGuard详解

    Android分享:代码混淆那些事Android代码混淆之混淆规则Android-Dev-Favorites An...

  • Android代码混淆

    待整理。。。 参考: Android混淆从入门到精通 Android代码混淆之混淆规则 代码混淆规则配置文件:pr...

  • Android混淆

    Android 代码混淆零基础入门

  • 你混淆Android代码多吗?

    ProGuard是一个开源的Java代码混淆器。它可以混淆Android项目里面的java代码,但是不能混淆资源,...

  • Android app代码混淆完整解决方案

    Android app代码混淆完整解决方案

  • Android代码混淆

    什么是代码混淆 删除无用代码,将代码中的各种元素,如包名、类名、函数名、变量名等改成无意义的符号,使得反编译你ap...

  • Android代码混淆

    作为Android开发者,如果你不想开源你的应用,那么在应用发布前,就需要对代码进行混淆处理,从而让我们代码即使被...

  • Android 代码混淆

    代码混淆的作用代码混淆,就是把java文件在生成class文件是,类名,方法名等JAVA元素修改成没有意义的名称,...

  • Android 代码混淆

  • Android代码混淆

    keep 资源文件或者配置文件引用到的类(自定义View,四大组件等等) 反射类 模板

网友评论

    本文标题:Android代码混淆

    本文链接:https://www.haomeiwen.com/subject/bmmykltx.html