AndroidStudio module编译aar混淆文件处理

目录

一.背景

二.混淆兼容


一.背景

一般我们在开发应用的时候,可能需要封装对应的功能模块,封装成aar包对外提供,封装成aar对外提供的话,考虑到安全性方面,我们需要对提供的aar包进行混淆,而且要保证aar的release版本保持的不混淆文件不能被app的release版本混淆了;同理,我们要考虑到aar中的依赖包不能在app中没有依赖了,或者说最终的apk中没有此依赖包了。

二.混淆兼容

首先我们需要对混淆进行兼容,我们保持aar中的不混淆文件只需要在原先的proguard-rules.pro中添加自己的规则就行了,一般常用的是将类保持不混淆,或者将内部类保持不混淆,如下是这两个的示例:

复制代码
-keep class com.xxx.xxx.xxx.Xxx{ *; }
-keep class com.xxx.xxx.xxx.Xxx$* { *; }

详细的规则我这边不展开了,网上有很多

然后在buildTypes中添加如下内容,就可以开启了aar包的混淆

复制代码
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }

这样就完成了aar包的混淆,但是我发现一个问题,aar包确实保持住不被混淆的类了,但是在app中集成aar包然后打包成release版本的时候提示找不到类,说明还是被混淆了,说明即使aar中不被混淆,在最终集成到app中也可能被混淆,然后其实我们要做如下处理:

在defaultConfig中添加如下配置:

复制代码
        // 关键配置:此规则文件会打入AAR,并传递给依赖此库的APP
        consumerProguardFiles 'proguard-rules.pro'

上述的proguard-rules.pro文件就是之前配置的保持不混淆文件,也可以自定义这个不混淆文件,我这边使用的是同一个文件,这样就把规则传递给app模块了,release app就不会报错类找不到等问题了

相关推荐
-SOLO-21 小时前
备份apk 工具
android
私人珍藏库1 天前
【Android】BotHub-多模型AI机器人聚合库-内置免费模型
android·人工智能·智能手机·app·工具·多功能
普马萨特1 天前
Wi-Fi 扫描频率限制与 Android 演进全解析
android
张拭心1 天前
Android 17 新特性:后台音频交互限制加强
android·前端
张拭心1 天前
Android 17 新特性:ProfilingManager 新触发器
android·前端
张拭心1 天前
Android 17 新特性:MessageQueue 无锁实现
android·前端
brycegao1 天前
如何搭建标准化 Git 工具流,保障 Android 团队代码质量
android·ci/cd
AI科技星1 天前
数术江湖·全卷合集 - 硬核江湖・数理史诗
android·人工智能·架构·概率论·学习方法
五月君_1 天前
安卓也支持了!微信链接 Claude Code 保姆级教程
android·微信
柚鸥ASO优化1 天前
一篇讲透安卓ASO!开发者千万别只盯着iOS了
android·ios·aso优化