Android混淆笔记

本文详细介绍了如何在Android Studio中配置混淆规则,以防止apk被反编译并保护关键代码。通过示例展示了如何不混淆特定类、包、子类、方法等,并提供了混淆开关设置以及混淆文件的引用。同时,讲解了minifyEnabled的使用以及proguard-android.txt和proguard-rules.pro文件的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.开启混淆可以防止apk被反编译,但是会使某些类和方法找不到,所以要配置混淆规则使这些类和方法不被混淆

例如:

不混淆某个类 -keep public class name.huihui.example.Test { *; }

不混淆某个包所有的类 -keep class name.huihui.test.** { *; }

不混淆某个类的子类 -keep public class * extends name.huihui.example.Test { *; }

不混淆所有类名中包含了“model”的类及其成员 -keep public class .model. {*;}

不混淆某个接口的实现 -keep class * implements name.huihui.example.TestInterface { *; }

不混淆某个类的构造方法 -keepclassmembers class name.huihui.example.Test { public (); }

不混淆某个类的特定的方法 -keepclassmembers class name.huihui.example.Test { public void test(java.lang.String); }

One类下的所有public方法都不会被混淆 -keep class cn.hadcn.test.One { public ; }

One类下的JSONObject作为入参的构造函数不会被混淆 -keep class cn.hadcn.test.One { public (org.json.JSONObject); }

2.Android Studio配置

    /**
     * minifyEnabled   true为打开,开启混淆会使编译时间变长,默认不开启
     * proguard-android.txt   系统默认的混淆文件,具体在../sdk/tools/proguard/目录下
     * proguard-rules.pro   项目中自定义的混淆规则
     */
 android {
    buildTypes {
        release {
            minifyEnabled true 
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值