美文网首页
Android_多模块混淆混淆的正确姿势

Android_多模块混淆混淆的正确姿势

作者: 信仰年輕 | 来源:发表于2021-03-12 19:06 被阅读0次

本文目标

开启多模块混淆的正确姿势,一定能够混淆成功且不会出问题

一.单工程混淆

    buildTypes {
        release {
            minifyEnabled true //开启混淆
            zipAlignEnabled true  //压缩优化
            shrinkResources true  //移出无用资源
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.config//签名文件release和debug保存一致,方便
        }
    }

在app中开启minifyEnabled 为true就开启混淆了,然后需要到proguard-rules.pro文件编辑混淆规则,如果你的项目只有一个app module,那么这样配置混淆就可以了

二.多模块如何混淆

1.在app module中统一配置混淆规则
我们可以直接在app module中build.gradle文件配置所有module需要混淆的规则。这样,其他module中就无需开启混淆。但是并不推荐使用这种方法,当我们取消依赖某些module的时候,这样很容易造成混淆规则冗余,我们还需要删除掉该module相关的混淆配置,很麻烦。

2.各个module单独配置混淆规则(推荐)
我们也可以单独为module配置混淆规则,比较推荐这种做法。每个module管理自己的混淆文件,当我们不依赖该module的时候,就不会发生第一种方法出现的问题了。
我们把app module称作为主模块,其依赖的其他module称作为子模块
经过我的多次实践得出,主模块的混淆开关配置会直接影响到子模块,也就是说如果你的主模块开启的混淆,就算你的子模块关闭混淆开关,最终子模块还是会被混淆的。其次
子模块混淆文件的指定是通过consumerProguardFiles这个属性来指定的,并不是proguardFiles 属性,而且我们无需配置其他的选项,只需要配置consumerProguardFiles属性就可以。该属性表示在打包的时候会自动寻找该module下我们指定的混淆文件对代码进行混淆。

三.总结

一般来说,在组件化开发的情况下,app module的代码是很少的,依赖的第三方库也是很少的。我们可以把通用的混淆规则放到app module中。 这样子module就无需配置通用混淆规则,只需要配置一些该module所需要的混淆规则即可。大大减少了混淆代码。关于自己项目的实体类和依赖的第三方sdk需要自己添加混淆规则,一般开源库都会给出混淆规则,没有的话就要自己上gitHub官网去寻找了

相关文章

  • Android_多模块混淆混淆的正确姿势

    本文目标 开启多模块混淆的正确姿势,一定能够混淆成功且不会出问题 一.单工程混淆 在app中开启minifyEna...

  • 使用allatori对SpringBoot多模块代码进行混淆

    使用allatori对SpringBoot多模块代码进行混淆 代码混淆介绍 1.由于项目需要私有化部署,为了保证代...

  • Android 多模块打包混淆

    最近有个 sdk 的项目使用了多模块(Module)开发,然后提供 jar 包给接入者使用,要求大部分类是混淆过的...

  • android代码混淆个人总结及踩坑

    前言 公司项目使用组件化开发的形式,需要对自己负责的模块进行一些混淆配置,关于混淆相信做android开发的都或多...

  • 个人总结及踩坑:android代码混淆

    前言 公司项目使用组件化开发的形式,需要对自己负责的模块进行一些混淆配置,关于混淆相信做android开发的都或多...

  • Android多模块混淆的问题

    Android在多模块或者组件化的时候,关于混淆的管理,一般常见的做法就是两条。 把所有的混淆规则规则都放在app...

  • js反混淆

    颜文字反混淆颜文字混淆.png 混淆2混淆2.png

  • Android studio3.6.3多模块打包实践

    在子模块中添加下面代码,然后在对应文件中添加相应的第三方混淆规则 与所有混淆规则放在主模块中比较:正式包大小不变 ...

  • Android Proguard混淆小记

    混淆的基本语法 常规不可混淆的代码 1.腾讯系列SDK混淆 2.GSON混淆 3.ButterkKnife混淆 4...

  • Android打包那些事

    目录 一.混淆(Proguard) 混淆是打包过程中最重要的流程之一,这里所说的的混淆是包括代码混淆和资源的“混淆...

网友评论

      本文标题:Android_多模块混淆混淆的正确姿势

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