由于apk的反编译比较简单,发布没有混淆过的apk,基本就等于把源码公开了。
对于release版的app,对代码进行混淆是有必要的,市场上发布的apk大部分也都进行了混淆,不过一般都只是对java代码进行混淆。通过没有混淆的资源文件,代码也很容易被破解,为了提高apk的破解难度,res资源文件也应该进行混淆。
下面介绍如何用AndResGuard对资源文件进行混淆
1. 添加依赖包
在Project根目录下build.gradle中添加dependency:
|
在app目录下的build.gradle中添加AndResGuard插件:
|
2. 配置AndResGuard
在app目录下的build.gradle中添加:
|
3. 运行混淆命令
在Project根目录下执行命令:./gradlew resguard在AndResGuard开头的目录下会生成如下6个文件:appname_unsigned.apk //混淆完,未签名appname_signed.apk //签名后的apkappname_signed_7zip.apk //签名压缩后的apkappname_signed_aligned.apk //签名对齐后的apkappname_signed_7zip_aligned.apk //签名压缩对齐后的apk,可供发布resource_mapping_name.txt //生成的映射文件,请保留,下次混淆指定mappingFile为此文件