AndroidI每日小技巧I如何更好地维护代码混淆规则文件(Proguard)?

本文介绍如何通过拆分proguard-rules.pro为通用、项目自定义和第三方SDK规则,简化混淆规则维护,提升问题定位效率。

封面图

要启用代码混淆,在build.gradle文件中的最简配置可能是这样的:

    buildTypes {
   
   
        release {
   
   
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

其中,「proguardFiles」属性用于配置「混淆规则文件」,而作为默认文件之一的「proguard-rules.pro」 ,则是在我们创建新模块时自动添加的,通常不包含任何规则,需要我们自己添加。

我们日常添加和维护混淆规则,通常也都是直接在 proguard-rules.pro 文件上进行的。

这样做的弊端就是:

  • 随着引入模块的增加,日渐膨胀的 proguard-rules.pro 文件难以维护
  • 各种规则胡填海塞,当出现因代码混淆导致的问题时,难以定位到具体的混淆规则并修复

解决这个问题的关键就是 proguardFiles 属性,该属性允许我们添加多个混淆规则文件,以此添加额外的混淆规则

我们可以遵循单一职责原则,按照混淆规则大体上的分类,将混淆规则文件拆分为以下三个:

  • 通用混淆规则文件(proguard-common.pro)
#-----------通用基本配置的混淆规则---------------

# 指定不去忽略非公共的库的类
-dontskipnonpubliclibraryclasses

# 指定不去忽略非公共的库的类的成员
-dontskipnonpubliclibraryclassmembers

# 保留了继承自ActivityApplicationFragment这些类的子类
-keep public class * <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值