Android-Daily-Interview icon indicating copy to clipboard operation
Android-Daily-Interview copied to clipboard

2019-07-30:谈谈代码混淆的步骤?

Open Moosphan opened this issue 5 years ago • 8 comments

Moosphan avatar Jul 30 '19 01:07 Moosphan

混淆,没有啥东西,该留下留下,该混淆混淆,最多问题找不到,我遇到小米手机可以安卓,华为手机不你能安卓,后来检查出来是华为推送问题,加混淆最好是,弄完以后找百度或者360等去免费测试一遍,多机型跑一遍,混淆宁愿多留点,不要干的太彻底,你不确定的就别混淆,

zhaoerlei1989 avatar Jul 30 '19 02:07 zhaoerlei1989

开启混淆开关

需要添加的混淆规则:1、查看项目使用的第三方库哪些需要特殊配置混淆的 2、保持反射 native 对应的类和方法不混淆 3、保持实体类参与系列化的不混淆 4、保持自定义类不混淆 5、系统组件如fragment activity servie等一些固定方法会被系统调用不混淆

MrShuHong avatar Jul 30 '19 10:07 MrShuHong

开启混淆

  1. 查看项目使用的第三方哪些需要设置混淆
  2. 保持反射native对应的类和方法不混淆
  3. 保持自定义类不混淆
  4. 保持实体类参与序列化的不混淆
  5. 系统组件等一些固定方法会被系统调用的不混淆

18361237136 avatar Aug 05 '19 08:08 18361237136

实体类参与序列化的不混淆?? 只有需要用到反射的实体类才不混淆吧,比如没有注解的json,其他的都完全可以混淆 另外补充一点如果是自己的sdk要混淆,注意打release包时添加dontshrink

:octocat: From gitme iOS

weikano avatar Sep 02 '19 22:09 weikano

1,加入基本的混淆规则:优化配置、activity+Fragment等不混淆、序列化的类不混淆这些常见基础配置

2,查看代码中有哪些第三方,将第三方的库对应的代码进行不混淆配置

3,测试,混淆后,将各个模块的代码跑一次,再一个模块一个模块检查

yline avatar Jan 15 '20 07:01 yline

webview设置的JavascriptInterface对象不要混淆

buobao avatar Jul 28 '20 06:07 buobao

代码混淆的目的: 1、代码混淆之后会随机生成难易理解的类名、方法名以及属性名,加大反编译的难度; 2、可以对apk进行优化,缩小包的体积;

代码混淆的步骤: 1、在gradle文件里面打开配置:minifyEnabled true; 2、在proguard-rules.pro 文件里面配置混淆规则; 在配置混淆的时候,需要注意:1、四大组件以及view可以不进行混淆;2、实体类不进行混淆;3、第三方库根据各自的要求配置混淆规则;

xiaoyunfei avatar Aug 03 '20 11:08 xiaoyunfei

配置代码混淆minifyEnabled true 配置混淆规则proguard-rules.pro

mlinqirong avatar Dec 27 '21 06:12 mlinqirong