Android Studio自定义proguard混淆

22 篇文章 0 订阅
8 篇文章 0 订阅

方法一:(失败)

开始的时候感觉有点懵逼,百度上一大堆说去安装目录替换proguard的版本(前提是你下载源码重新编译一个修改好的jar包)

那么问题来了,我压根就不知道studio引用的是那个版本的,人家说也不一定引用最新的,网上查了很久我也没得出答案,我的Android studio是3.2版本的,

后来我三个版本都替换修改的包,搞着搞着,还是果断放弃吧

 

Android studio自带proguard是在安装目录的(gradle\m2repository\net\sf\proguard\proguard-base)

C:\Program Files\Android\Android Studio\gradle\m2repository\net\sf\proguard\proguard-base

下载Proguard源码地址:

https://sourceforge.net/projects/proguard/files/proguard/

 

方法二:(成功)

 

直接在项目的根目录放入修改过的包,然后进行引入

引入的配置:

 

 

具体混淆工具的修改看 https://mp.weixin.qq.com/s/T8CFMjQ5_te1fIHzwzTpUg

主要的修改文件主要是这个(proguard.obfuscate)文件夹的

Obfuscator.java

ClassObfuscator.java

SourceFileRenamer.java

混淆名称的修改

主要是这个SimpleNameFactory.java,  其实实现NameFactory这个接口的,如果重写一个类可以实现NameFactory这个接口就行了,之后需要替换Obfuscator和ClassObfuscator里面的SimpleNameFactory为你新写的类

 

我修改的一个效果:

 

参考:

https://mp.weixin.qq.com/s/T8CFMjQ5_te1fIHzwzTpUg

http://www.jcodecraeer.com/a/anzhuokaifa/Android_Studio/2017/0322/7713.html


 



 

要在 Android Studio 中配置 ProGuard,可以按照以下步骤进行操作: 1. 打开你的 Android 项目,找到 `app` 模块下的 `build.gradle` 文件。 2. 在 `android` 部分的闭包内,找到 `buildTypes` 闭包,一般会有 `release` 和 `debug` 两个构建类型。在 `release` 构建类型下添加以下代码: ```groovy android { // ... buildTypes { release { // ... minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } } } ``` 3. 在项目的根目录下,找到或创建一个名为 `proguard-rules.pro` 的文件。这个文件将包含你的 ProGuard 混淆规则。 4. 在 `proguard-rules.pro` 文件中,添加你的 ProGuard 混淆规则。规则可以根据你的需求进行自定义,以保护你的代码不被反编译。例如: ```proguard # 保留特定的类和方法不被混淆 -keep class com.example.myapp.MyClass { public void myMethod(); } # 移除 Log 相关代码 -assumenosideeffects class android.util.Log { public static boolean isLoggable(java.lang.String, int); public static int v(...); public static int i(...); public static int w(...); public static int d(...); public static int e(...); } ``` 以上示例代码中,我们保留了 `com.example.myapp.MyClass` 类的 `myMethod()` 方法不被混淆,并移除了与 `android.util.Log` 相关的代码。 5. 保存 `proguard-rules.pro` 文件,然后重新构建你的项目。在构建过程中,ProGuard 将会根据你的配置进行代码混淆和优化。 请注意,ProGuard混淆规则需要根据你的项目结构和需求进行适当的调整。可以参考 ProGuard 官方文档和其他资源,了解更多有关 ProGuard 的规则和配置选项。 希望这些信息对你有帮助!如果你有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值